用户管理
创建用户
在Linux系统中,root
用户拥有整个系统最高的权限,是系统的超级管理员,可以新建和添加用户 。
一般登录系统时都是以普通账户的身份登录的,普通用户创建用户时,需要获取到root
权限,此时可以使用sudo
命令。
sudo
普通用户使用sudo
命令获取root权限来创建用户时,必须有两个前提条件:
- 知道当前登录用户的密码
- 当前用户必须在
sudo
用户组
输入以下命令,新建用户"lilei":
$ sudo adduser lilei
该命令不仅可以添加用户到系统,还会为新用户默认 在`/home目录下创建一个工作目录.
$ ls /home
默认新创建的用户不具有root权限,也不在sudo
用户组
切换用户
su <user>
切换到用户user
,工作目录依旧在当前用户下。su - <user>
也是切换到用户user
,但是同时用户的环境变量和工作目录也会切换到新的目标用户
退出用户,使用命令exit
或快捷键Ctrl+D
删除用户
$ sudo deluser lilei --remove-home
使用 --remove-home
参数在删除用户时候会一并将该用户的工作目录一并删除。如果不使用该参数那么系统会自动在 /home 目录为该用户保留工作目录
用户组
在linux
里面每个用户都有一个归属(用户组),一个用户是可以属于多个用户组的。
用户如何知道自己属于哪一个用户组呢?
方法一:使用groups
命令:groups <user>
$ groups shiyanlou
冒号之前是用户名,后面表示该用户所属的用户组。
每次新建用户如果不指定用户组的话,默认会自动创建一个与用户名相同的用户组
方法二:查看/etc/group
文件
$ cat /etc/group | sort
这里 cat
命令用于读取指定文件的内容并打印到终端输出,后面会详细讲它的使用。 | sort
表示将读取的文本进行一个字典排序再输出。
也使用grep
过滤掉一些不想看到的结果:
$ cat /etc/group | grep -E "shiyanlou"
/etc/group
文件格式说明
/etc/group
的内容包括用户组(Group)、用户组口令、GID(组 ID) 及该用户组所包含的用户(User),每个用户组一条记录。格式如下:
group_name:password:GID:user_list
password为x 表示密码不可见。
如果用户的 GID
等于用户组的 GID
,那么最后一个字段 user_list 就是空的,
可以使用id
命令查看GID
$ id shiyanlou
添加用户到sudo用户组
使用 usermod
命令可以为用户添加用户组,同样使用该命令你必需有 root
权限,可以直接使用 root
用户为其它用户添加用户组,或者用其它已经在 sudo
用户组的用户使用 sudo
命令获取权限来执行该命令。
如下:
shiyanlou
用户在sudo
用户组,通过用户shiyanlou
添加用户lilei
到sudo
用户组,获得root
权限
$ su - shiyanlou
$ sudo usermode -G sudo lilei