Linux文件权限

文件类型:

-:普通文件。 d:目录文件。 l :链接文件。 b:块设备文件。 c:字符设备文件。 p:管道文件。 S : 套接字文件

在Linux系统中,每个文件都有所属的所有者和所有组,并且规定了文件的所有者、所有组以及其他人对文件所拥有的可读(r)、可写(w)、可执行(x)等权限。

对于一般文件来说,权限比较容易理解:“可读”表示能够读取文件的实际内容;“可写”表示能够编辑、新增、修改、删除文件的实际内容;“可执行”则表示能够运行一个脚本程序。

对目录文件来说,“可读”表示能够读取目录内的文件列表;“可写”表示能够在目录内新增、删除、重命名文件;而“可执行”则表示能够进入该目录。

例:[root@node1 ~]# ll /etc/fstab -rw-r--r--. 1 root root 465 Oct 27 11:10 /etc/fstab

该文件的类型为普通文件,所有者权限为可读、可写(rw-),所属组权限为可读(r--),除此以外的其他人也只有可读权限(r--),文件的磁盘占用大小是465字节,最近一次的修改时间为12月27日的11:10,文件的名称为fstab。

文件的特殊权限

SUID

SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。查看passwd命令属性时发现所有者的权限由rwx变成了rws,其中x改变成s就意味着该文件被赋予了SUID权限。如果原先权限位上没有x执行权限,那么被赋予特殊权限后将变成大写的S。

[root@node1 opt]# ll
total 0
-rw-r--r-- 1 root root 0 Dec 12 03:05 test.txt
[root@node1 opt]# chmod +751 test.txt 
[root@node1 opt]# ll
total 0
-rwxr-xr-x 1 root root 0 Dec 12 03:05 test.txt
[root@node1 opt]# chmod u+s test.txt 
[root@node1 opt]# ll
total 0
-rwsr-xr-x 1 root root 0 Dec 12 03:05 test.txt

SGID

让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置); 在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。

[root@node1 opt]# ll
total 0
drwxrwsrwx 2 root root 22 Dec 12 03:38 test
[root@node1 opt]# chmod -Rf g+s test/
[root@node1 opt]# ll
total 0
drwxrwsrwx 2 root root 22 Dec 12 03:38 test
[root@node1 opt]# cd test/
[root@node1 test]# ll
total 0
-rwxrwsrwx 1 root root 0 Dec 12 03:38 test.txt
​
[root@node1 opt]# chmod -Rf 2000 test/
[root@node1 opt]# ll
total 0
d-----S--- 2 root root 22 Dec 12 03:38 test
[root@node1 opt]# cd test/
[root@node1 test]# ll
total 0
------S--- 1 root root 0 Dec 12 03:38 test.txt
[root@node1 opt]# chmod o+w -Rf share/
[root@node1 opt]# ll
total 0
drwxr-srwx 2 root root 6 Dec 12 05:40 share
[pxm@node1 opt]$ cd share/
[pxm@node1 share]$ 
[pxm@node1 share]$ touch test.txt
[pxm@node1 share]$ ll
total 0 
-rw-rw-r-- 1 pxm root 0 Dec 12 05:41 test.txt   ##发现由普通用户创建的文件夹的所属组没有发生改变

SBIT

SBIT特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。

[root@node1 opt]# chomod 1777 share/
[lyw@node1 opt]$ ll
total 0
drwxrwxrwt 2 root root 22 Dec 12 05:58 share
[lyw@node1 opt]$ Cd share
[lyw@node1 share]$ ll
total 0
-rw-rw-r-- 1 pxm root 0 Dec 12 05:41 test.txt
​
[lyw@node1 share]$ rm -rf test.txt 
rm: cannot remove ‘test.txt’: Operation not permitted
[lyw@node1 share]$ ll
total 0
-rw-rw-r-- 1 pxm root 0 Dec 12 05:41 test.txt
[lyw@node1 share]$ touch a.txt
[lyw@node1 share]$ rm -rf a.txt
[lyw@node1 share]$ ll
total 0
-rw-rw-r-- 1 pxm root 0 Dec 12 05:41 test.txt

文件的隐藏权限

chattr

chattr命令中用于隐藏权限的参数及其作用 | i | 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件 | | a | 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only) | | S | 文件内容在变更后立即同步到硬盘(sync) | | s | 彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域) | | A | 不再修改这个文件或目录的最后访问时间(atime) | | b | 不再修改文件或目录的存取时间 | | D | 检查压缩文件中的错误 | | d | 使用dump命令备份时忽略本文件/目录 | | c | 默认将文件或目录进行压缩 | | u | 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复 | | t | 让文件系统支持尾部合并(tail-merging) | | x | 可以直接访问压缩文件中的内容 |

lsattr

文件的隐藏权限必须使用lsattr命令来查看,用于显示文件的隐藏权限

文件访问控制列表

setfacl命令用于管理文件的ACL规则,格式为“setfacl [参数] 文件名称”。文件的ACL提供的是在所有者、所属组、其他人的读/写/执行权限之外的特殊权限控制,使用setfacl命令可以针对单一用户或用户组、单一文件或目录来进行读/写/执行权限的控制。其中,针对目录文件需要使用-R递归参数;针对普通文件则使用-m参数;如果想要删除某个文件的ACL,则可以使用-b参数。

[pxm@node1 opt]$ ll
total 0
d--------- 2 root root 22 Dec 12 05:58 share
[pxm@node1 opt]$ cd share/
bash: cd: share/: Permission denied
[pxm@node1 opt]$ exit
exit
[root@node1 opt]# ll
total 0
d--------- 2 root root 22 Dec 12 05:58 share
[root@node1 opt]# setfacl -Rm u:pxm:rwx share/
[root@node1 opt]# su pxm
[pxm@node1 opt]$ ll
total 0
d---rwx---+ 2 root root 22 Dec 12 05:58 share
[pxm@node1 opt]$ cd share/
[pxm@node1 share]$ ll
total 0
-rw-rwxr--+ 1 pxm root 0 Dec 12 05:41 test.txt
[pxm@node1 share]$ getfacl ../share/
# file: ../share/
# owner: root
# group: root
user::---
user:pxm:rwx
group::---
mask::rwx
other::---

sudo

点击这里点击这里
参数作用
-h列出帮助信息
-l列出当前用户可执行的命令
-u 用户名或UID值以指定的用户身份执行命令
-k清空密码的有效时间,下次执行sudo时需要再次进行密码验证
-b在后台执行指定的命令
-p更改询问密码的提示语

[root@node1 ~]# visudo
99## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
pxm   ALL=(ALL) ALL  
##  pxm  ALL=(ALL)      /usr/bin/cat
##  pxm  ALL=NOPASSWD:   /usr/sbin/poweroff
[root@node1 ~]# su pxm
[pxm@node1 root]$ sudo ls
airplane-game.tar.gz  docker.io-mysql-mysql-server.tar  docker.io-nginx.tar  ip_forward~  k8s  pod-infrastructure.tar
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值