用户
1. 账号存储在 /etc/passwd 文件下,密码存储在 /etc/shadow 文件下
2. 每个用户都有 UID 和 GID , 分别标识 用户id和用户组id, 文件上的所属的用户和用户组记录的就是 UID 和 GID.
3.root用户的UID是0,换句话说,只要UID是0就可以分配用于访问所属人是root的文件和文件夹的权限.
4. 一般情况下不直接修改/etc/shadow文件去修改密码,用root用户登录系统后,使用passwd修改密码即可.
用户相关命令:
1 useradd 创建用户
2. passwd [用户] 给用户分配密码
3. useradd创建的用户 使用的是 /etc/default/useradd 的模板
4. chage [用户] 根据不同的参数进行不同用户密码操作.
5. usermod [用户] 可以在 useradd 创建用户后进行调整.
6. userdel [用户] 删除用户
7. id [用户] 列出 相关用户的 uid 和 gid
8. finger [用户] 查询 需要先用 yum 安装 finger软件, 可以列出 passwd文件相关的东西
9. chfn [用户] 修改 finger输出的信息.
10. chsh -s [shell] 设置自己的shell,目前没看出来有什么用.
11. /sbin/nologin 利用 useradd -s /sbin/nologin设置后,该用户就无法登陆系统
用户组
1.在用户有多个用户组的情况下,创建的文件的所属用于组是哪一个取决于用户组,就是 groups 命令输出后的第一个用户组.
2.newgrp可以切换有效用户组,但是无法切换不支持的用户组.
用户组相关命令
1. groupadd [用户组名称] 添加一个新的用户组
2. groupmod -g [新gid] -n [新用户组名称] [用户组] 修改用户组信息
3. groupdel [用户组] 删除用户组,没有用户使用用户组为初始用户组的情况下才可以删除
4. gpasswd 建立用户组管理员,管理用户组
外部权限
比如使用外部系统如LDAP登陆,在centos系统下,可以使用 authconfig-tui命令
直接使用这个命令设置就可以
详细权限规划:ACL
因为用户组和用户的权限比较单一,不能根据不同用户和不同用户组进行额外的设置,所以有了 ACL访问控制列表
1. 查看系统是否支持 ACL, dmesg | grep -i acl
2. 读取ACL信息 getfacl
3. 设置ACL setfacl
比如:
setfacl -m u:vbird1:rwx acl_test1 给vbird1用户分配acl_test1的读写执行权限
我们可以看到在权限最后出现了+号. 格式为 [u:用户:权限].
其他情况:
特定单一用户组权限设置: setfacl -m g:mygroup:rx file_test
有效权限: setfacl -m m:r file_test file_test的最大权限只有读权限,mask代表了最大权限
权限继承: setfacl -m d:u:myuser:rx /srv/project /srv/project下面的目录和文件都会继承u:myuser:rx权限.
权限取消: 所有权限-b , -x 单一权限的取消.