文件系统管理
3.5文件和目录的权限
1.文件的权限
用于控制进程对系统中文件和目录的访问
权限的三个级别
文件主、同组用户、其他用户
每个文件都有唯一的属主
普通文件的执行
读、写、可执行
不可写文件也有可能被删除
可执行文件:
(1)程序文件(可执行文件)
(2)脚本文件:文本文件
默认的解释程序为/bin/bash
可以在脚本文件的第一行自行指定解释程序,必须是第一行
#! /bin/bash
脚本程序运行时,其实是解释程序创建了一个进程
2.目录的权限
目录的读写权限:
(1)读权限:若无读权限,那么目录表文件不许读,ls会失败
(2)写权限:若无写权限,目录表文件不许写。
写权限包括在该目录中创建文件、删除文件、文件重命名,这些都会修改目录文件
而修改文件会修改i节点。
目录无写权限不是指目录下的所有文件禁止写。
目录的x权限(执行权限):
有执行权限意味着分析路径名过程中可检索该目录
例如cat /a/b/c,要求/、/a 、/a/b三个目录都有执行权限,并且c文件有读权限。
例如cd ../file,要求当前文件夹,..,file必须有x 权限。
STICKEY权限(粘着位):
早期Unix具有sticky属性的可执行文件尽量常驻内存或交换区以提高效率
现代Linux对访问过的文件自动缓冲在内存,文件sticky属性被忽略
STICKEY目录
问题:对于公共目录,用户user1和user2没有写权限,就不可以在这个目录下创建新文件;若有写权限,用户user1的文件就算是“只读文件”也可以被user2删除;
STICKEY属性用于解决这个问题:目录有写权限并且自带STICKEY属性,此目录下的文件仅文件主可以删除,其他用户删除操作失效
例如 drwxrwxrwt 13 root root 20480中最后一个字符的t
权限验证顺序
3.权限相关命令
chmod
(1)修改权限(字母形式)
chmod [ugoa][+-=][rwxst] 文件名表
例如:chmod u+rw *
chmod go-rwx *.[ch]
(2)修改权限(八进制数字形式)
chmod 644 xyz1
6:用户权限 110 rw-
4: 组权限 100 r–
4: 其他用户权限 100 r–
注意:只允许文件主和超级用户权限修改文件权限
umask
决定文件、目录的初始权限
umask是进程属性的一部分,是shell的内部命令
(1)进程umask属性的作用
掩码值:022(八进制值) —> 000 010 010 (二进制)
取消新文件/目录的组w权限和其他用户w权限
(2)系统调用umask
修改进程自身的umask属性值
4.SUID权限
SUID使得用户可以通过文件主提供的程序,以文件主的权限访问文件,但这种访问依赖于文件主提供的程序,进行有限的访问。


