Linux系统下用户和用户组的管理
-
首先,管理用户和用户组需要获得root权限,以下操作是CentOS7系统中使用root用户登录时的操作
su # 输入密码后切换到root用户
一、新建
-
新建用户
adduser newuser # 新建一个newuser用户 useradd -m newuser # 新建一个newuser用户(需使用 -m 参数) passwd newuser # 给newuser用户设置密码 useradd -g groupname newuser # 新建newuser用户并增加到groupname工作组中 id username # 查看username用户归属,等同于命令 cat /etc/passwd | grep username
-
新建工作组
groupadd newgroup # 新建一个newgroup工作组 cat /etc/group | grep groupname # 查看groupname工作组添加了哪些用户
-
为已有用户添加工作组
usermod -G gruopname username # username用户离开原来的用户组,进入groupname用户组 usermod -a gruopname username # username用户不离开原来的用户组,直接进入groupname用户组
二、删除
-
结束username用户占用的进程
pkill -9 -u username # 结束username用户占用的进程,并踢出username用户的登陆状态
-
删除用户
userdel username # 删除username用户 userdel -r username # 完全删除username用户
注:
userdel username
删除用户时,只是删除了/etc/passwd,/etc/shadow,/etc/group/,/etc/gshadow四个文件里的用户和用户组信息,加上参数 -r 则会额外删除家目录以及用户邮箱(邮箱路径:/var/spool/mail/username) -
删除用户组
groupdel groupname # 删除名为groupname的用户组
三、修改用户名
-
结束掉oldname用户占用的进程
pkill -u oldname # 结束oldname用户占用的进程 pkill -9 -u oldname # 结束oldname用户占用的进程,并踢出oldname用户的登陆状态
-
修改用户名
usermod -l newname oldname # 将用户名从oldname改为newname
注:这仅仅只会改变用户名,而GID,UID,家目录等都将保持不变
-
修改UID为2020,或者其它未被占用的UID
usermod -u 2020 newname # 将newname用户的UID改为2020
注:也可以不修改,使用原UID作为newname用户的UID
-
修改用户组名和GID
groupmod -n newname oldname # 将原名为oldname用户组修改为名为newname用户组 groupmod -g 2020 newname # 将newname用户组GID改为2020,与用户名保持一致
注:也可以不修改,使用原GID作为newname用户组的GID
-
修改家目录
usermod -d /home/newname -m newname # 将家目录下的文件夹名称改为newname
四、用户间的切换
-
su 只获得切换后该用户的执行权限,不能获得其环境变量
su # 默认切换到root用户 su otheruser # 将登陆用户切换到otheruser用户,拥有执行权限,但不拥有其环境变量
-
su - 获得切换后该用户的执行权限以及其环境变量
su - # 默认切换到root用户 su - otheruser # 将登陆用户切换到otheruser用户,拥有执行权限以及其环境变量