第5章 用户身份与文件权限
5.1 用户身份与能力
管理员UID为0:系统的管理员用户。
系统用户UID为1~999: Linux系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围。
普通用户UID从1000开始:是由管理员创建的用于日常工作的用户。
1.useradd命令用于创建新的用户,格式为“useradd [选项] 用户名”。
2.groupadd命令用于创建用户组,格式为“groupadd [选项] 群组名”。
3.usermod命令用于修改用户的属性,格式为“usermod [选项] 用户名”。
4.passwd命令用于修改用户密码、过期时间、认证信息等,格式为“passwd [选项] [用户名]”。
5.userdel命令用于删除用户,格式为“userdel [选项] 用户名”。
5.2 文件权限与归属
文件的读、写、执行权限可以简写为rwx,亦可分别用数字4、2、1来表示,文件所有者,所属组及其他用户权限之间无关联,如表5-5所示。
5.3 文件的特殊权限
1.SUID——执行者临时获取命令的所有者的权限
查看passwd命令属性时发现所有者的权限由rwx变成了rws,其中x改变成s就意味着该文件被赋予了SUID权限。
如果原先权限位上没有x执行权限,那么被赋予特殊权限后将变成大写的S。
2.SGID——目录内新建文件所有组,继承原有目录所有组的名称
chmod命令——用来设置文件或目录的权限,格式为“chmod [参数] 权限 文件或目录名称”。
chown命令——设置文件或目录的所有者和所属组,其格式为“chown [参数] 所有者:所属组 文件或目录名称”。
chmod和chown命令是用于修改文件属性和权限的最常用命令,它们还有一个特别的共性,就是针对目录进行操作时需要加上大写参数-R来表示递归操作,即对目录内所有的文件进行整体操作。
3.SBIT——特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。(粘滞位、保护位 o+t)
当目录被设置SBIT特殊权限位后,文件的其他人权限部分的x执行权限就会被替换成t或者T,原本有x执行权限则会写成t,原本没有x执行权限则会被写成T。
5.4 文件的隐藏属性
1.chattr命令用于设置文件的隐藏权限,格式为“chattr [参数] 文件”。
2.lsattr命令用于显示文件的隐藏权限,格式为“lsattr [参数] 文件”。
5.5 文件访问控制列表
1.setfacl命令用于管理文件的ACL规则,格式为“setfacl [参数] 文件名称”。
2.getfacl命令用于显示文件上设置的ACL信息,格式为“getfacl 文件名称”。
想要设置ACL,用的是setfacl命令;要想查看ACL,则用的是getfacl命令。
5.6 su命令与sudo服务
1.su命令可以解决切换用户身份的需求,使得当前用户在不退出登录的情况下,顺畅地切换到其他用户
su命令与用户名之间有一个减号(-),这意味着完全切换到新的用户,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息。
2.sudo命令用于给普通用户提供额外的权限来完成原本root管理员才能完成的任务,格式为“sudo [参数] 命令名称”。