Linux命令解释
第一章 用户权限
前言
随着工作时间的累计,愈发觉得要卷起来了。学起来!
一、文件权限ACL
ACL(access control list):访问控制列表
语法:setfacl [选项] 用户.组:权限 文件对象
选项解释:-b:设置;-x:删除;-b:全部删除
#栗子1:
setfacl -m d5000:d5000:rwx /home/d5000 #设置权限
getfacl /home/d5000 #查看/home/d5000的权限
#栗子2:
setfacl -m o::rw /home/d5000 /home/d5000 #给其他人赋权限
setfacl -m u:rocky:rw /home/d5000 /home/d5000 #给rocky用户赋权限
setfacl -m g:nusp:rw /home/d5000 /home/d5000 #给nusp组赋权限
#栗子3:
setfacl -x u:rocky /home/d5000 #删除rocky用户的权限
setfacl -b /home/d5000 #恢复默认权限
#栗子4
watch -n1 ‘ls -l /home/d5000’ #每隔1秒看下/home/d5000的权限
目录权限默认会加上x权限,如果修改x权限,我们会无法对目录进行操作。
二、特殊权限
三种特殊权限
SUID:让执行者临时拥有所属主的权限,权限的x改变成s就意味着该文件被赋予了SUID权限,原先权限位上没有x执行权限,那么被赋予特殊权限后将变成大写的S。
SGID:让执行者临时拥有所属组的权限。
SBIT:Sticky Bit 粘滞位,对某个目录设置了SBIT权限后,该目录中的文件只能被其所有者执行删除操作。文件的权限部分的x权限会被替换成t或者T,原本有x执行权限则会写成t,原本没有x执行权限会被写成T。
(suid是针对文件所设置的一个特别权限,其功能是使调用文件的用户临时具备文件属主的权限。suid,sgid针对文件、程序,具备临时提升权限。)
三种特殊权限可以通过chmod添加,umask为4位,其中第一位表示三种特殊权限,比如7777代表rwsrwsrwt,4777代表rwxrwsrwt,1777代表rwxrwxrwt。创建文件时,系统会默认将x权限都去掉。
#栗子1
[root@localhost]su - rocky
[rocky@localhost]cat /etc/passwd #显示权限不足无法观看
[rocky@localhost]su - root
[root@localhost]chmod u+s /usr/bin/cat
[root@localhost]su - rocky
[rocky@localhost]cat /etc/passwd #提权后可以查看passwd文件
文件的特殊权限命令
chattr 设置文件的隐藏权限
语法:chattr [参数] 文件
lsattr 用于显示文件的隐藏权限
chattr +i 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中 的子文件内容 而不能新建或者删除文件
chattr +a 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only)
chattr +S 文件内容在变更后立即同步到硬盘(sync)
chattr +s 彻底从硬盘中删除 , 不可恢复(用0填充原文件所在的硬盘区域)
chattr +A 不在修改这个文件或目录的最后访问时间(atime)
chattr +b 不再修改文件或目录的存取时间
chattr +D 检查压缩文件中的错误
chattr +d 使用dump备份时忽略本文件或目录
chattr +c 默认将文件或目录进行压缩
chattr +u 当删除该文件后依然保留其在硬盘中的数据,方便恢复
chattr +t 让文件系统支持尾部合并(tail-merging)
chattr +X 可以直接访问压缩文件中的内容