一、linux系统使用了不同的字符来区分文件:
-:普通文件
d:目录文件
l:链接文件
b:块设备文件
c:字符设备文件
p:管道文件
文件权限的字符与数字表示
权限分配 | 文件所有者 | 文件所属组 | 其他用户 | ||||||
---|---|---|---|---|---|---|---|---|---|
权限项 | 读 | 写 | 执行 | 读 | 写 | 执行 | 读 | 写 | 执行 |
字符表示 | r | w | x | r | w | x | r | w | x |
数字表示 | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
文件权限的数字表示法基于字符表示的权限计算出来的。目的是简化权限表示。
二、特殊权限
1.SUID
SUID是一种对二进制程序进行设置的特殊权限,可以让二进制的执行者临时拥有属主权限。
[root@linuxprobe ~]# ls -l /etc/shadow
----------. 1 root root 1133 Jun 20 09:42 /etc/shadow
[root@linuxprobe ~]# ls -l /bin/passwd
-rwsr-xr-x. 1 root root 27832 Jan 30 2014 /bin/passwd
x变为s意味该文件被赋予了SUID权限
2.SGID
主要两个功能:
让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置);
在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。
[root@linuxprobe ~]# cd /tmp
[root@linuxprobe tmp]# mkdir testdir
[root@linuxprobe tmp]# ls -ald testdir
drwxr-xr-x. 2 root root 6 Jun 20 10:57 testdir
[root@linuxprobe tmp]# chmod -Rf 777 testdir
[root@linuxprobe tmp]# chmod -Rf g+s testdir
[root@linuxprobe tmp]# ls -ald testdir
drwxrwsrwx. 2 root root 6 Jun 20 10:57 testdir
在设置好目录的777权限(确保普通用户可以向其中写入文件),并为该目录设置SGID特殊权限位后,就可以切换至一个普通用户,然后尝试着该目录中创建文件,并查看新创文件的是否会继承新创建的文件所在的目录的所属组名称:
[root@linuxprobe tmp]# su - linuxprobe
Last login: Wed Jun 20 10:33:19 WST 2018 on :0
[linuxprobe@linuxprobe ~]$ cd /tmp/testdir
[linuxprobe@linuxprobe testdir]$ echo "linuxprobe,com" > test
[linuxprobe@linuxprobe testdir]$ ls -al test
-rw-rw-r--. 1 linuxprobe root 15 Jun 20 11:31 test
chmod命令,设置文件或目录的权限,格式为:chmod[参数]权限 文件或目录名称
chown命令,设置文件或目录的所有者和所属组,格式:chown[参数] 所有者:所属组 文件或目录名称
3.SBIT
确保用户只能删除自己的文件而不能删除其他的文件。
三、文件的隐藏属性
1.chattr
用于设置文件的隐藏权限,格式“chattr[参数] 文件”
参数 | 作用 |
---|---|
i | 无法对文件进行修改,若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件 |
a | 仅允许补充内容,无法覆盖内容 |
S | 文件内容在变更后立即同步到硬盘 |
s | 彻底从硬盘中删除,不可恢复 |
A | 不再修改这个文件或目录的最后访问时间 |
b | 不再修改文件或目录的存取时间 |
D | 检查压缩文件中的错误 |
d | 使用dump命令备份时忽略本文件/目录 |
c | 默认将文件或目录进行压缩 |
u | 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复 |
t | 让文件系统支持尾部合并 |
X | 可以直接访问压缩文件中的内容 |
2.lsattr 命令
用于显示文件的隐藏权限
格式:lsattr[参数]文件