文章目录
1.文件权限
# ls -l
总用量 40
drwxr-xr-x 2 tech tech 4096 8月 27 13:08 Desktop
drwxr-xr-x 2 tech tech 4096 8月 26 19:50 Documents
drwxr-xr-x 2 tech tech 4096 8月 26 19:50 Downloads
...
第一列drwxr-xr-x:
首字母 | 表示 |
---|---|
- | 普通文件。 |
d | 目录文件。 |
l(link) | 链接文件。 |
b | 块设备文件。 |
c | 字符设备文件。 |
p | 管道文件。 |
接下来每3个字符分别表示所有者权限、所属组权限、其他用户权限,分别为:
字母 | 含义 | 值 |
---|---|---|
r | 对目录而言:表示可以浏览文件列表 对文件而言:表示可以浏览文件内容 | 4 |
w | 对目录而言:表示可以增加、删除、重命名文件 对文件而言:表示可以修改文件内容 | 2 |
x | 对目录而言:表示可以进入该目录 对文件而言:表示该文件是个可执行文件 | 1 |
第二列数字2表示文件的硬链接数,第三列为文件所有者,第四列为该文件或目录所属的组,第五列为占用磁盘大小,第六列为最后修改日期,最后一列是文件或目录名
如drwxr-xr-x 2 tech tech 4096 8月 27 13:08 Desktop
表示Desktop文件是一个目录,该文件权限的数字表示法为755,所有者为tech,所属组为tech,占用磁盘大小4096字节,最后修改时间为8月27日。
2.特殊权限
2.1SUID
允许二进制程序的执行者临时拥有所有者
的权限,该程序需拥有执行(x属性)权限。
如果文件具有该属性,原本的所有者
的执行权限位将变为小写字母s(如果文件原本拥有x,如rwx变为rws)或者大写字母S(如果文件原本无执行权限,如rw-变为rwS)
2.2SGID
1.允许二进制程序的执行者临时拥有所属组
的权限,该程序需拥有执行(x属性)权限。
2.在拥有该属性的目录下创建的文件自动继承该目录的所属组(只可对目录设置)。
如果文件具有该属性,原本的所属组
的执行权限位将变为小写字母s(如果文件原本拥有x,如rwx变为rws)或者大写字母S(如果文件原本无执行权限,如rw-变为rwS)
2.3SBIT
非目录的所有者
不得删除该目录下的所有文件
如果文件具有该属性,原本的其他用户
的执行权限位将变为小写字母t(如果文件原本拥有x,如rwx变为rwt)或者大写字母T(如果文件原本无执行权限,如rw-变为rwT)
2.4修改特殊权限的命令
2.4.1修改所有者和所属组命令chown
格式:chown 所有者:所属组 文件
oot@Machine:~# mkdir test
root@Machine:~# ls -l
drwxr-xr-x 2 root root 4096 9月 4 00:28 test
root@Machine:~# chown tech:tech test
root@Machine:~# ls -l
drwxr-xr-x 2 tech tech 4096 9月 4 00:28 test
2.4.2修改文件权限命令chmod
格式:chmod [选项] 模式 文件名
参数 | 作用 |
---|---|
-R | 递归设置子文件 |
-f | 抑制大部分错误消息 |
-v | 对每个文件输出过程 |
模式 | 作用 |
---|---|
三位有效数字 | 设置普通权限 |
u+s | 设置SUID属性 |
g+s | 设置SGID属性 |
o+t | 设置SBIT属性 |
设置文件普通权限:
root@Machine:~# mkdir MyFile
root@Machine:~# ls -l
drwxr-xr-x 2 root root 4096 9月 3 23:53 MyFile
root@Machine:~# chmod -Rf 770 MyFile/
root@Machine:~# ls -l
drwxrwx--- 2 root root 4096 9月 3 23:53 MyFile
设置文件特殊权限:
root@Machine:~# ls -ld MyFile
drwxrwx--- 2 root root 4096 9月 3 23:53 MyFile
root@Machine:~# chmod -Rf g+s MyFile
root@Machine:~# ls -ld MyFile
drwxrws--- 2 root root 4096 9月 3 23:53 MyFile
3.隐藏属性
lsattr查看文件隐藏属性命令
格式:lsattr [参数] 文件
参数 | 作用 |
---|---|
-R | Recursively list attributes of directories and their contents. |
-V | Display the program version. |
-a | List all files in directories, including files that start with . or .. |
-d | List directories like other files, rather than listing their contents. |
-l | Print the options using long names instead of single character abbreviations. |
-p | List the file’s project number. |
-v | List the file’s version/generation number. |
chattr设置文件隐藏权限命令
格式:chattr [参数] 文件
参数 | 作用 |
---|---|
i | 对文件设置:无法对文件进行修改 对目录设置:不能新增或删除文件,能修改子文件内容, |
a | 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only) |
S | 文件内容在变更后立即同步到硬盘(sync) |
s | 彻底从硬盘中删除,不可恢复(用 0 填充原文件所在硬盘区域) |
A | 不再修改这个文件或目录的最后访问时间(atime) |
b | 不再修改文件或目录的存取时间 |
D | 检查压缩文件中的错误 |
d | 使用 dump 命令备份时忽略本文件/目录 |
c | 默认将文件或目录进行压缩 |
u | 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复 |
t | 让文件系统支持尾部合并(tail-merging) |
X | 可以直接访问压缩文件中的内容 |
root@Machine:/home/tech/program# touch test
root@Machine:/home/tech/program# lsattr
--------------e----- ./test
root@Machine:/home/tech/program# chattr +a test
root@Machine:/home/tech/program# lsattr
-----a--------e----- ./test
root@Machine:/home/tech/program# rm -f test
rm: cannot remove 'test': Operation not permitted
+a表示增加a属性,-a表示移除a属性,=a表示设置a属性(其他属性均被移除)
4.文件访问控制列表(file access control lists)
如果希望对某个指定的用户进行单独的权限控制,就需要用到文件的访问控制列表(ACL)了。
1.对目录设置了 ACL,目录下的文件会继承ACL
2.对文件设置了ACL,文件不再继承所在目录的ACL
设置及获取命令
setfacl设置ACL属性命令
格式:setfacl [参数] 文件
参数 | 作用 |
---|---|
-R | 递归设置 |
-m | 修改ACL属性,命令行中ACL消息紧跟其后 |
-M | 修改ACL属性,从文件或标准输入中读取ACL |
-x | 移除ACL属性,移除不存在的属性不是错误,命令行中ACL消息紧跟其后 |
-X | 移除ACL属性,移除不存在的属性不是错误,从文件或标准输入中读取ACL |
--set 或--set-file | 设置文件或目录的ACL。以前的ACL被替换 |
getfacl 显示文件 ACL 属性命令
格式:getfacl 文件名称
例子
赋予tech用户读取/root文件的权限:
root@Machine:~# setfacl -m u:tech:r /root
撤消所有组和所有命名用户的写访问权限(使用有效权限掩码):
root@Machine:~# setfacl -m m::rx file
从文件的ACL中删除命名的组条目:
root@Machine:~# setfacl -x g:staff file
将一个文件的ACL复制到另一个文件:
root@Machine:~# getfacl file1 | setfacl --set-file=- file2
将访问ACL复制到默认ACL:
root@Machine:~# getfacl -a dir | setfacl -d -M- dir
注意:设置过ACL的文件使用ls -l命令可以看到普通权限属性后面多了一个+号
5资料来源
1.《Linux就该这么学》刘遄
2.man参考手册Ubuntu20.04
3.网络搜索