Linux用户管理
一、查看用户
who am i
# 或
who mom likes
# 或
who -m
# 输出
shiyanlou pts/0 2021-04-25 15:16 (:1.0)
-
第一列表示打开当前伪终端的用户的用户名(要查看当前登录用户的用户名,去掉空格直接使用
whoami即可) -
第二列的
pts/0中pts表示伪终端,所谓伪是相对于/dev/tty设备而言的,pts/0后面那个数字就表示打开的伪终端序号 -
第三列则表示当前伪终端的启动时间
who 命令其它常用参数
| 参数 | 说明 |
|---|---|
-a |
打印能打印的全部 |
-d |
打印死掉的进程 |
-m |
同am i,mom likes |
-q |
打印当前登录用户数及用户名 |
-u |
打印当前登录用户登录信息 |
-r |
打印运行等级 |
二、创建用户
-
su,su- 与 sudo
su <user>可以切换到用户 user,执行时需要输入目标用户的密码sudo <cmd>可以以特权级别运行 cmd 命令,需要当前用户属于 sudo 组,且需要输入当前用户的密码su - <user>命令也是切换用户,但是同时用户的环境变量和工作目录也会跟着改变成目标用户所对应的
-
新建用户:
sudo adduser <username>- 首先输入当前用户密码
- 其次输入新用户密码
- 之后的选项可直接回车使用默认值
这个命令不但可以添加用户到系统,同时也会默认为新用户在 /home 目录下创建一个工作目录
adduser和useradd的区别:useradd只创建用户,不会创建用户密码和工作目录,创建完了需要使用passwd <username>去设置新用户的密码。adduser在创建用户的同时,会创建工作目录和密码(提示你设置),做这一系列的操作。
-
切换登录用户:
su -l <username> -
退出当前用户:
exit或Ctrl+D
三、用户组
- 查看用户所在用户组
- 使用
groups命令
其中冒号之前表示用户,后面表示该用户所属的用户组。每次新建用户若不指定用户组,默认会自动创建一个与用户名相同的用户组groups <username> # 输出 <username> : <group_name>
如果没有指定用户名则默认为当前进程用户- 查看
/etc/group文件
每条记录格式为grep shiyanlou /etc/group # 输出 shiyanlou:x:5000:group_name:password:GID:user_list,如果用户的 GID 等于用户组的 GID,那么最后一个字段 user_list 就是空的- 通过
id命令
id shiyanlou # 输出 uid=5000(shiyanlou) gid=5000(shiyanlou) 组=5000(shiyanlou) - 使用
- 将其它用户加入sudo用户组
执行groups lilei # 输出 lilei : lileisudo usermod -G sudo lileigroups lilei # 输出 lilei : lilei sudo
四、删除用户和用户组
- 删除用户
使用 --remove-home 参数在删除用户时候会一并将该用户的工作目录一并删除sudo deluser lilei --remove-home - 删除用户组
删除用户组可以使用 groupdel 命令,倘若该群组中仍包括某些用户,则必须先删除这些用户后,才能删除群组