在《Linux --- 文件与目录管理(三)》提到过什么是UID和GID,用户权限是通过创建用户时分配的用户ID(UID)来跟踪的,UID是数值,每个用户都有唯一的UID,这篇文章将对前面的知识点做一个补充:
/etc/passwd 文件:专门用来将用户的登录名匹配到对应的UID值。root用户账户是Linux系统的管理员,固定分配给它的UID是 0 Linux为系统账户预留了 500 以下的UID值用于创建普通用户:
在 /etc/passwd 文件中除了很多用户登录名和UID之外的信息,/etc/passwd 文件中的密码字段都被设置成了 x ,现在大多数Linux系统都将用户密码保存在另一个单独的文件中(叫做 shadow 文件,位置在 /etc/shadow)只有特定的程序(比如登录程序)才能访问这个文件。
shadow 文件
useradd 创建用户 ,用 tail 命令查看用户信息
除了用 tail 命令还可以使用 cat 命令查看:
用 passwd 命令 接 -S 参数列出用户密码的状态:
用 passwd 命令 接 -uf 参数为用户解锁,再切换到 Chuid 用户,whoami 命令查看当前用户:
groups(群组)及 group 和 gshadow 文件:Linux系统中,每一个用户都一定隶属于至少一个群组(group),而每一个群组(group)都有一个group标识符,即:GID。所有的群组和对应的GIDS都存放在根目录下的 /etc/group 文件中。
如果想删除其他人文件的话,要设置 SBIT 位,也叫粘滞位
删除该文件时会提示错误,所以即便给了充足的文件权限,但因为特殊权限 SBIT 的原因依然无法删除其他人的文件。
文件的隐藏属性:文件权限除了读写执行与 SUID、SGID、SBIT 外还有一种隐藏权限,(例:有权限删除某个文件却报错,或者只能在某个文件里添加内容却不能删除内容)
新增文件 text6 ,用rm命令删除,再新增文件后用 chattr +a 命令设置隐藏权限,再次删除就会报错:
用 lsattr 命令查看隐藏权限
用 lsattr -a 命令去除对 text6 文件设置的隐藏权限:(去除隐藏权限后又可以对文件进行删除操作了)
su 与 sudo 服务:su 命令用于切换使用者身份(登录者),格式:su [-] 用户名
sudo 命令用于给普通用户提供额外权限来完成原本超级用户才能完成的任务,格式:sudo [参数] 命令名称:
ACL 文件访问控制列表:ACL 就是设置特定的用户或者用户组对某个文件的操作权限。前面讲的 rwx 权限、特殊权限、隐藏权限都是对某一类用户设置的,如果希望对某个指定的用户进行单独的权限设置,就需要用文件的访问控制列表来实现:
getfacl 命令用于显示文件的ACL规则,格式为:getfacl 文件:
切换到 chd 用户 用 cd /root 命令是进不了root用户的家目录的,会提示权限不够:
返回到 root 用户后设置 chd 用户对 /root 有 rwx 权限,再切换到 chd 用户就可以进入到 /root 目录了:
用 getfacl 命令看到 /root 目录下多了一条内容: user:chd:rwx