学科分类
目录
Linux编程

用户管理

用户管理即用户的账号管理,包括账号的添加、修改和删除。下面分别对这三种操作进行讲解。

1、 用户账号添加

用户账号添加,即在系统中创建一个新账号,并为该账号设置用户号、用户组、主目录、登陆shell等资源。添加新账号时使用useradd命令,其命令格式如下:

useradd 选项 用户名

useradd命令常用的选项如表1所示。

表1 useradd命令常用选项

参数 说明
-d 指定用户登入时的目录
-c 指定账户的备注文字
-e 指定账号的有效期限
-f 缓冲天数,密码过期时在指定天数后关闭该账号
-g 指定用户所属组
-G 指定用户所属的附加用户组
-m 自动建立用户的登入目录
-r 创建系统账号
-s 指定用户的登陆shell
-u 指定用户的用户ID。若添加-o选项,则用户ID可与其它用户重复

普通用户的账号通常要求不以数字和下划线作为账户名的第一个字符。

案例1:创建新用户bxg,指定用户的主目录/usr/bxg;若指定主目录不存在,则创建主目录。

[root@localhost ~]# useradd -d /usr/bxg -m bxg

案例2:创建新用户wdjl,指定其登陆shell和所属组。

[root@localhost ~]# useradd -s /bin/sh -g itheima wdjl

案例3:创建新用户kdy,并设置其用户ID。

[root@localhost ~]# useradd kdy –u 876

需要注意的是,1~499为系统用户ID,为避免ID冲突,用户ID应取500~60000之间的数值。若创建账户时未指定用户ID、用户组、用户目录和登陆shell等信息,系统会自动为新账号指定相关信息,并同时更新用户组配置文件。

添加新用户账号的实质,是在/etc/passwd文件中新添一条记录,因此使用tail命令查看/etc/passwd文件末尾的三行数据,便可看到以上新建的三个账户的账号信息,查询结果如下:

[root@localhost itheima]# tail -3 /etc/passwd
bxg:x:501:501::/usr/bxg:/bin/bash
wdjl:x:502:500::/home/wdjl:/bin/sh
kdy:x:876:876::/home/kdy:/bin/bash

以上所示结果中,每一行为一个账号的相关信息,每个账号信息由“:”分割为7项,依次为:用户名、密码位、用户ID、用户组ID、注释信息(即备注信息)、用户主目录、shell。

新增的用户若未指定UID,则其UID为前面一条记录的UID加1。此时新建的账号是无法使用的,因为尚未为该账号设置密码,该账号尚处于锁定状态。下面来讲解设置用户密码的方法。

2、 设置用户密码

设置用户密码的命令是passwd,该命令用于设置用户的认证信息,包括用户密码、密码有效期等。其命令格式如下:

[root@localhost ~]# passwd [选项] [用户名]

passwd命令常用的选项如表2所示。

表2 passwd命令常用选项

参数 说明
-l 锁定密码,锁定后密码失效,无法登陆(新用户默认锁定)
-d 删除密码,仅系统管理员可使用
-S 列出密码相关信息,仅系统管理员可使用
-f 强行执行

系统管理员可以修改所有用户的密码,普通用户只能修改自己的密码。

案例4:为案例1中创建的用户bxg指定密码。

[root@localhost ~]# passwd bxg
Changing password for user bxg.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

Linux中也有一定的密码验证机制。在root用户下可以随意修改密码,即便系统会出现警告,密码仍能成功保存;但是普通用户在修改自己的密码时,应尽量复杂(至少6位、由字母与数字组成),避免与用户名相同。

若要修改当前登陆账户的密码,可以缺省用户名。当密码被设置或修改时,系统会自动更新etc目录下存放密码的文件shadow。

在root用户下使用tail命令查看/etc/shadow文件末尾的三行数据,打印结果如下:

[root@localhost itheima]# tail -3 /etc/shadow
bxg:$1$75kWGjw6$j9JsJH4yEUngpB36clRIA.:17085:0:99999:7:::
wdjl:!!:17084:0:99999:7:::
kdy:!!:17085:0:99999:7:::

这三行数据分别为案例1~3中创建的账户所对应的密码信息,密码信息中的每一项以“:”分割,其中第二项为加密后的用户密码。

3、 删除用户

若一个用户账号不再使用,可以使用userdel命令,将该用户从系统中删除。userdel命令可以删除指定用户及与该用户相关的文件和信息。其命令格式如下:

userdel [选项] [用户名]

userdel命令常用的选项如表3所示。

表3 userdel命令常用选项

参数 说明
-f 强制删除用户,即便该用户为当前用户
-r 删除用户的同时,删除与用户相关的所有文件

案例5:删除账号bxg,并删除相关文件。

[root@localhost itheima]# userdel -r bxg
userdel: user bxg is currently used by process 3860
[root@localhost itheima]# userdel -rf bxg
userdel: user bxg is currently used by process 3860
[root@localhost itheima]# userdel -f bxg
userdel: user 'bxg' does not exist

案例5中共使用了3次userdel命令:第一次删除bxg账号时,提示该账号正被进程3860使用;第二次添加“-f”参数,强制删除账号;第三次使用userdel命令时,提示bxg账号不存在,表明该账号在第二次使用删除命令时被强制删除。

4、 修改用户账号

修改用户账号信息,即修改账号的属性,如用户ID、主目录、用户组、登陆shell等。修改用户账号信息的命令为usermod,其命令格式如下:

usermod [选项] [参数]

在使用usermod命令修改用户账号信息时,必须先确认该用户没有在电脑上执行任何程序。usermod命令的常用选项如表4所示。

表4 userdel命令常用选项

参数 说明
-c 修改用户账号的备注信息
-d 修改用户的登入目录
-e 修改账号的有效期限
-f 修改缓冲天数,即修改密码过期后关闭账号的时间
-g 修改用户所属组
-l 修改用户账号名称
-L 锁定用户密码,使密码失效
-s 修改用户登陆后使用的shell
-u 修改用户ID
-U 解除密码锁定

案例6:修改账户kdy的用户ID为678。

[root@localhost itheima]# usermod -u 678 kdy

查看账户kdy的相关信息,输出结果如下:

[root@localhost itheima]# cat /etc/passwd | grep kdy
kdy:x:678:876::/home/kdy:/bin/bash

根据输出结果可知,当前kdy账户的UID已被修改为678。

点击此处
隐藏目录