Linux文件和目录的访问权限详解

1.访问用户和权限

2.suid和sgid

3.sticky bit(t 或 T ,多被称作”粘着位”或”防删除位”)

访问用户和权限

文件和目录的访问权限对如下3 类用户进行了分别定义:

文件拥有者(u)

文件拥有者所在用户组中的其它成员(g)

所有其它用户(o)

每个文件均拥有下列三种权限:

read (r): 查看文件内容

write (w): 修改文件

execute (x): 如同命令一样执行文件

每个目录均拥有下列三种权限:

read (r): 列出目录内容

write (w): 在目录中增删文件

execute (x): 访问目录中的文件

需要指出的是,对目录的 execute 权限,不仅意味着允许查看目录下文件名,还允许查看文件的其它信息如文件大小、修改时间。

ls 可用来显示目录和文件的这些信息。使用 ls 的-l 选项,就会按如下顺序显示下列信息:

文件类型(第 1 个字符)

-: 普通文件

d: 目录

l: 符号链接

c: 字符型设备节点

b: 块设备节点

p: 命名管道

s: 套接字

文件访问权限(接下来的 9 个字符,每 3 个一组分别表示 user、group 和 other的访问权限)。

文件的硬链接数

文件拥有者 user 的用户名

文件所属工作组 group 的用户组名

文件的字符数大小 (单位为bytes)

文件的时间和日期 (mtime)

文件的名称

Linux/Unix中的权限除了execute (x)这种基本的可执行权限以外,还有另外三种特殊的可执行权限,分别是set user ID (s 或 S 代替 user’s x),set group ID (s 或 S 代替 group’s x)和sticky bit (t 或 T 代替 other’s x),现在我们来分别说明。

suid和sgid

一、execute (x)

众所周知,execute是最基本的可执行权限,对于普通文件比较容易理解,就是文件本身具有可以被执行的权限,如一些二进制文件(例如,bin和sbin目录下的文件)、脚本文件(shell脚本)等等。重点我们注意一下目录的可执行权限,目录无所谓执行不执行,目录只能否被开启(也称作“遍历”或“搜索”)。

简单说明一下,如果某用户对于父目录有开启的权限,那么该用户可能有机会对它的子目录或文件进行读取。否则即使该用户有其子目录或文件的读取权限也不能正常访问子目录或文件。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/28772.html