文件特殊权限
SUID 是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。
原先权限位上没有 x 执行权限,那么被赋予特殊权限后将变成大写的 S。有 x 权限,赋予特殊权限后为小写 s 。
SGID 主要实现如下两种功能:
1:让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置)。
2:在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。
原先权限位上没有 x 执行权限,那么被赋予特殊权限后将变成大写的 S。有 x 权限,赋予特殊权限后为小写 s 。
SBIT 特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。即当对某个目录设置了 SBIT 粘滞位权限后,那么该目录中的文件就只能被其所有者执行删除操作了。
当目录被设置 SBIT 特殊权限位后, 和SUID、SGID不同,文件的其他人权限部分的 x 执行权限就会被替换成 t 或者 T,原本有 x 执行权限则会写成 t,原本没有 x 执行权限则会被写成 T。
《Linux就该这么学》学习笔记8_第1张图片
chmod 命令能够用来设置文件或目录的权限,格式为“chmod [参数] 权限 文件或目录名称”。
chown 命令可以设置文件或目录的所有者和所属组,这里使用的,其格式为“chown [参数] 所有者:所属组 文件或目录名称”。
chmod 和 chown 命令针对目录进行操作时需要加上大写参数-R 来表示递归操作,即对目录内所有的文件进行整体操作。

文件的隐藏属性
chattr 命令用于设置文件的隐藏权限,格式为“chattr [参数] 文件”。
如果想要把某个隐藏功能添加到文件上,则需要在命令后面追加“+参数”,如果想要把某个隐藏功能移出文件,则需要追加“-参数”。
《Linux就该这么学》学习笔记8_第2张图片
《Linux就该这么学》学习笔记8_第3张图片
lsattr 命令用于显示文件的隐藏权限,格式为“lsattr [参数] 文件”。
Linux隐藏权限必须使用lsattr,使用ls无法查看。可以按照显示的隐藏权限的类型(字母),使用 chattr 命令将其去掉。

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

su 命令与 sudo 服务
su 命令与用户名之间有一个减号(-),这意味着完全切换到新的用户,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息。强烈建议在切换用户身份时添加这个减号(-)。
sudo 服务的配置原则是在保证普通用户完成相应工作的前提下,尽可能少地赋予额外的权限。
sudo 命令用于给普通用户提供额外的权限来完成原本 root 管理员才能完成的任务,格式为“sudo [参数] 命令名称”。《Linux就该这么学》学习笔记8_第4张图片
sudo 命令具有如下功能:
1限制用户执行指定的命令:
2记录用户执行的每一条命令;
3配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数;
4验证密码的后 5 分钟内(默认值)无须再让用户再次验证密码。
如果担心直接修改配置文件会出现问题,可以使用 sudo 命令提供的 visudo 命令来配置用户权限。这条命令在配置用户权限时将禁止多个用户同时修改 sudoers 配置文件,还可以对配置文件内的参数进行语法检查,并在发现参数错误时进行报错。
只有 root 管理员才可以使用 visudo 命令编辑 sudo 服务的配置文件。
在 sudo 命令的配置文件中,使用方法类似vim编辑器,将第 99 行(大约)填写上指定的信息,格式:谁可以使用 允许使用的主机=(以谁的身份) 可执行命令的列表。
每次执行 sudo 命令后都会要求验证一下密码,可以添加 NOPASSWD 参数,使得用户执行 sudo 命令时不再需要密码验证。