文件权限与归属
Linux中一切皆文件,系统使用了不同的字符来加以区分,常见的字符如下所示:
字符 | 属性 |
---|
- | 普通文件 |
d | 目录文件 |
l | 链接文件 |
b | 块设备文件 |
c | 字符设备文件 |
p | 管道文件 |
Linux系统中每个文件都有所属的所有者和所有组,并规定了相应的权限:可读®、可写(w)、可执行(x)等权限.对于可读表示能够读取文件的实际内容;对于可写表示能够编辑、新增、修改、删除文件的实际内容;可执行则表示能够运行一个脚本程序.
文件权限的字符与数字表示
权限分配 | 文件所有者权限 | 文件所属组 | 其他用户 |
权限项 | 读 | 写 | 执行 | 读 | 写 | 执行 | 读 | 写 | 执行 |
字符表示 | r | w | x | r | w | x | r | w | x |
数字表示 | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
SUID
SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主权限(仅对拥有执行权限的二进制程序有效)
所有者权限由rwx变成rws,其中x变为s表示该文件被赋予了SUID权限.如果没有x执行权限的情况下,将变为rwS.如下:
$ ls -l /bin/passwd
-rwsr-xr-x root root 27832 Jan 29 2017 /bin/passwd
SGID
SGID主要实现如下两种功能:
- 让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置)
- 在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)
$ cd /tmp
$ mkdir testdir
$ ls -ald testdir/
drwxr-xr-x. 2 root root 6 Feb 11 11:50 testdir/
$ chmod -Rf 777 testdir/
$ chmod -Rf g+s testdir/
$ ls -ald testdir/
drwxrwsrwx. 2 root root 6 Feb 11 11:50 testdir/
SBIT
SBIT特殊权限可确保用户只能删除自己的文件,而不能删除其他用户的文件.同样若原本无x执行权限则会被变为T
$ mkdir linux
$ chmod -R o+t linux/
$ ls -ld linux/
drwxr-xr-t. 2 root root 6 Feb 11 19:34 linux/