用户信息
/etc/passwd保存着用户账号信息,内容包括账号,密码,用户ID,用户组ID,用户主目录,shell登录,举个例子:john:x:1005:1005::/home/john:/bin/bash,各个参数说明如下:
- john : 用户名,
- x : 密码,对应/etc/shadow
- 1005 : UID, 用户ID, 0表示系统管理员,例如root, 1-999系统账号, 1000 – 60000 可登录账号
- 1005 : GID, 用户组ID,对应/etc/group
- /home/john : 使用者主文件夹
- /bin/bash : shell环境,如果是/sbin/nologin表示账号无法取得shell环境登录动作
用户相关命令
- grep john/etc/passwd /etc/shadow /etc/group : 查看john用户对应信息内容
- ll -d /home/john : 查看john主文件夹信息
- id <username> : 查看用户相关uid,gid信息
目录管理
更改目录所有者
chown -R <user> <directory>
# ch表示修改,own是所有者,目录放最后
更改用户组
chgrp -R <group> <directory>
# ch修改,grp是用户组,目录放最后
用户组管理
增加用户组
groupadd <group>
删除用户组
groupdel <group>
修改用户组名称
groupmod -n <newname> <group>
用户管理
新增用户
useradd -g <group> <user>
# -g表示初始化群组,新用户需要设置密码(passwd <user>)才能登录
删除用户
userdel -r <user>
新增用户,并且指定多个附加群组
useradd -G <group1>,<group2>,<group3> <user>
用户加入新群组
usermod -a -G <group> <user>
# -a表示追加
# -G表示附加群组
查看当前用户群组
groups
# 列出当前用户所在的用户组,第一个群组为用户的有效群组
切换当前用户的有效群组
newsgrp <group>
# 有效群组是用户创建文件或文件夹时显示那个用户组,切换群组时,只能在用户已有的群组中切换
修改用户的有效群组
usermod -g <group> <user>
# 其他附加组会被清空掉
从群组中删除某个用户
gpasswd -d <user> <group>