Linux 目录的权限
目录的读写权限
读权限
- 若无读权限,那么“目录表”文件不许读,ls会失败
写权限
- 若无写权限,那么“目录表”文件不许写
- 创建文件,删除文件,文件改名会修改目录文件
- 修改文件不需要修改目录文件,需要修改i节点
- 目录无写权限不是指目录下所有文件禁止写
目录的x权限
执行权限
- 有执行权限意味着分析路径名过程中可检索该目录
- cat /a/b/c
- 要求/,/目录下的a目录,/目录下的a目录下的b目录,这三目录有x权限,c文件有读权限;否则,命令执行失败
cd ../st8
要求当前目录,..
和st8
必须有x权限
STICKY权限(粘着位)
STICKY文件
- 早期Unix具有sticky属性的可执行文件尽量常驻内存或交换区以提高效率
- 现代Linux对访问过的文件自动缓冲在内存,文件sticky属性被忽略
STICKY目录
- 问题:对于公共目录,用户user1和user2没有写权限,就不可以在这个目录下创建新文件;若有写权限,用户user1的文件就算是“只读文件”也可以被user2删除
- STICKY属性用于解决这个问题:目录有写权限并且带STICKY属性,此目录下的文件仅文件主可以删除,其他用户删除操作会失败
- 例如:/tmp目录, ls -ld /tmp,输出的第一列最后字符为t:
drwxrwxrwt 13 root root 20480 Mar 22 06:11 /tmp
权限验证的顺序
每个文件都有文件主和组的属性(文件节点中)
每个进程也有进程主和组的属性(进程PCB中)
这四个属性都是整数,uid和gid的编号与名字对应关系见/etc下passwd和group文件
文件主与进程主相同
直接使用文件主的权限,不再查看组和其他用户的权限
文件主与进程主不同,但文件主与进程主同组
只使用组权限,不使用关于其他用户的权限
文件主与进程主不同,文件主与进程主又不同组
使用文件关于其他用户的权限。
注意:超级用户root不受权限的限制
例:权限---r--rw-
,文件主不可读但同组用户可读,即使文件主是该组用户之一也不行