Chapter 3. 用户和用户组管理
由于Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以该账号身份进入系统。
3.0 用户与用户组相关信息
- 用户名:代表用户账号的字符串,最好不好包含
.
、-
、+
开头,不能含义:
。 - 口令:存放加密后的用户口令字,真正的加密后的用户口令字存放在
/etc/shadow
文件中,而在/etc/passwd
文件的口令字段只存放一个特殊的字符,如'x'
或'*'
。 - 用户标识号:一般而言,它与用户名是一一对应,但若几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但它们可以拥有不同口令、不同主目录及不同的登录Shell等。
- 注释性描述:存放的是一段任意的注释性描述文字。
用户的基本属性存放在
/etc/passwd
文件中,用户组的所有信息都存放在/etc/group
文件中。
3.1 用户账号的管理
以下指令,若遇到这类提示,一般需要管理员的权限,即
$ sudo ....
3.1.0 切换与查看
-
查看用户的id:
$ id [用户名]
-
️切换用户的身份:
$ su [选项] [用户名]
常用选项:
-
-
:代表连带用户的环境变量一同切换。普通用户切换至root用户需要输入密码;root用户切换普通用户无需密码。
-
3.1.1 添加新的用户账号
语法格式为:
$ useradd 选项 用户名
选项有:
-d
:指定用户的家目录,若此目录不存在,则需同时使用-m
选项创建主目录。-c
:(commend)指定一段注释性描述-g
:指定用户所属的用户组-G
:指定用户所属的附加组-s
:指定用户的登录Shell-u
:指定用户的UID
执行权限:root
$ sudo useradd -s /bin/sh -g group -G adm,root Nami
#新建用户Nami,登录Shell为/bin/sh,属于group用户组(作为主组),又属于adm和root用户组
增加用户账号就会在
/etc/passwd
文件中为该新用户增加一条记录,同时更新其他系统文件如/etc/shadow
,/etc/group
等。
3.1.2 管理用户的密码
语法格式为:
$ passwd 选项 用户名
选项有:
-l
:暂时锁定用户,使其不能登录-u
:解锁用户-S
:查询用户密码的密码状态
执行权限:root
修改用户密码:
#root用户可修改任何用户的密码
$ sudo passwd Zoro
#普通用户只能修改自己的密码,同时命令会询问普通用户的原口令
$ sudo passwd
3.1.3 修改用户的信息
语法:
$ usermod 选项 用户名
修改用户账号即是根据实际情况更改用户的有关属性。
执行权限:root
选项:(基本上与 useradd
命令对应选项一致)
-
-u [UID]
:修改用户的UID号 -
-c [用户说明]
:修改用户的说明信息 -
-G [组名]
:修改用户的附加组 -
-l [新用户名称]
:修改用户的名称
$ usermod -s /bin/ksh -d /home/z -g developer Sam
3.1.4 删除用户账号
语法:
$ userdel 选项 用户名
常用选项为:
-
-r
:将用户的主目录一同删除
$ userdel -r tom
#此命令删除用户tom在系统文件中(如/etc/passwd,/etc/shadow等)的记录,同时删除用户的主目录
3.2 用户组的管理
每个用户均有用户组,系统可对一个用户组中的所有用户进行集中管理。
用户属于与它同名的用户组,该用户组在创建用户时同时创建了。
3.2.1 增加新的用户组
语法:
$ groupadd 选项 用户组
可使用的选项:
-
-g
:指定新用户组的组标识号(GID); -
-o
:一般与-g
选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同
$ groupadd -g 101 group2
3.2.2 修改用户组
语法:
$ groupmod 选项 用户组
可使用的选项:
-
-g
:为用户组指定新的组标识号。 -
-o
:一般与-g
选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同 -
-n
:将用户组的名字改为新名字
$ groupmod -g 10000 -n group3 group2
#组group2的标识号改为10000,且组名修改为group3
3.2.3 删除用户组
语法:
$ groupmod 用户组