Linux 文件隐藏权限 文件访问控制列表(ACL)

文件的隐藏属性:
chattr命令:
chattr命令用于设置文件的隐藏权限
格式 char[参数] 文件
需要在命令后面追加”+参数”
想要把某个隐藏命令移除“-参数”

i:无法对文件进行修改;最目录设置了该参数,则只能修改其中的子文件内容
而不能新建或者删除文件
a:仅允许补充(追加内容),无法覆盖/删除内容
S:文件内容在更改后立即同步到硬盘
s:彻底从硬盘删除,不可恢复
A:不在修改这个文件或目录的最后访问时间(atime)
b:不在修改文件或目录的存取时间
D:检查压缩文件的错误
d:使用dump命令备份是忽略本文件/目录
c:默认将文件/或者目录进行压缩
u:当删除该文件后依然保留其在硬盘中的数据,方便恢复
t:让文件系统支持尾部合并
X:可以直接访问压缩文件的内容

例如:
echo "for test" > linux
chattr +a linux
rm linux
//不可删除的


lsattr命令:
显示文件的隐藏属性 格式为:"lsattr [参数] 文件"
lsattr linux
-----a--------- linux
chattr -a linux
lsattr linux
--------------- linux
rm linux
//现在成功了

文件访问控制列表:
如果想要对某个指定的用户进行单独的权限控制,就需要用到文件的访问
控制列表(ACL)了。

setfacl命令:
setfacl命令用于管理文件的ACL规则,格式为:setfacl[参数] 文件名称

它可以针对单一用户或者是用户组、单一文件或者是目录来进行读/写/执行权限    
的控制。

针对目录文件需要使用-R递归参数;
针对普通文件则使用-m参数,
如果想删除某个文件的ACL,使用-b参数

setfacl -Rm u:username:rwx /root
su - username
cd /root
ls
cat ananconda-ks.cfg
exit
ls -ld /root
dr-xrwx---+//'+'表示该文件已经设置了ACL了

getfacl命令:
用于显示文件上设置的ACL信息 ,格式为”getfacl 文件名称”
getfacl /root
setfcal -b /root

su命令和sudo服务:

su命令:
id //查看信息
su - username//切换用户
id//查看信息

sudo命令:
格式sudo[参数] 命令名称
参数:
-h 列出帮助信息
-l 列出当前用户可执行的命令
-u 用户名或者UID值:以指定的用户身份执行命令
-k 清空密码的有效时间
-b 在后台执行指定的命令
-p 更改询问密码的提示语

总体来说,sudo命令具有如下功能:
限制用户执行指定的命令
记录用户执行的每一条命令
配置文件,提供集中的用户管理、权限与主机等参数
验证密码的后5分钟内,无需在让用户在此验证密码

visudo命令配置用户权限,可以在配置用户权限时将禁止多个用户
修改sudoers配置文件(root)

例如:
谁可以使用 允许使用的主机=(以谁的方式) 可执行命令的列表
visudo
root ALL=(ALL) ALL
username ALL=(ALL) ALL

更改完成之后,使用sudo -l就可以查看到所有可执行的命令了
su -username
sudo -l

例如://修改完之后
ls /root
sudo ls /root

再次改变:
su - root
whereis cat
visudo
username ALL=(ALL) /usr/bin/cat

:wq!



//修改为执行poweroff不需要验证密码
whereis poweroff
visudo
username ALL=NOPASSWD: /usr/sbin/poweroff
技术不分国界
原文地址:https://www.cnblogs.com/angels-yaoyao/p/12443635.html