示例:
1)-u 指定用户的UID
[root@localhost ~]# useradd -u 2000 helen //添加helen用户,并指定UID为2000 [root@localhost ~]# tail -1 /etc/passwd //查看passwd中helen的信息 helen:x:2000:2000::/home/helen:/bin/bash 复制代码
2)-d 指定用户的宿主目录
[root@localhost ~]# useradd -d /home/test/ user04 //创建用户,并指定家目录 [root@localhost ~]# tail -1 /etc/passwd user04:x:2003:2003::/home/test/:/bin/bash 复制代码
3)-e 指定用户的账户失效时间
[root@localhost ~]# useradd -e 2022-6-30 user05 //创建用户并指定账户失效时间为2022年6月30日 [root@localhost ~]# tail -1 /etc/shadow //查看shadow文件,19173表示距离1970年1月1日的19173天 user05:!!:19044:0:99999:7::19173: 复制代码
4)-g 指定用户基本组
[root@localhost ~]# useradd -g hr user06 //创建用户并指定用户基本组为hr组 [root@localhost ~]# id user06 //查看用户信息,基本组为hr组 uid=2005(user06) gid=1002(hr) 组=1002(hr) 复制代码
5)-G 指定用户附加组
[root@localhost ~]# useradd -G hr user07 //创建用户并指定用户附加组为hr组 [root@localhost ~]# id user07 //查看用户信息,附加组为hr组 uid=2006(user07) gid=2006(user07) 组=2006(user07),1002(hr) 复制代码
6)-M 不建立家目录
[root@localhost ~]# useradd -M user08 //创建用户且不建立家目录 [root@localhost ~]# ls /home //查看/home下没有user08的目录 alice jack nancy user05 user07 Amy helen user01 user06 zhangsan 复制代码
7)-s 指定用户的登录shell(一般用于程序用户)
[root@localhost ~]# useradd -s /sbin/nologin apache //创建用户并指定登录shell为/sbin/nologin,该用户无法登录系统 [root@localhost ~]# tail -1 /etc/passwd apache:x:2008:2008::/home/apache:/sbin/nologin 复制代码
2.3 设置/更改用户口令 passwd
root用户可以指定用户名作为参数,对指定账号的密码进行管理。不指定用户名时,修改当前账号的密码。
普通用户只能执行单独的passwd命令修改自己的密码。
命令格式:
passwd [用户名] 复制代码
常用选项:
选项 | 作用 |
-d | 清空指定用户的密码,仅使用用户名即可登录系统 |
-l | 锁定用户密码,锁定的用户账号将无法再登录系统。(一定要事先设好密码) |
-u | 解锁用户密码 |
-S | 查看用户账户的状态(是否被锁定) |
示例:
1)设置或修改用户密码
[root@localhost ~]# passwd nancy //设置或修改nancy用户的密码 更改用户 nancy 的密码 。 新的 密码: 重新输入新的 密码: passwd:所有的身份验证令牌已经成功更新。 [root@localhost ~]# echo "linux666" | passwd --stdin nancy //简便设置用户密码 更改用户 nancy 的密码 。 passwd:所有的身份验证令牌已经成功更新。 复制代码
2)-d 清除用户密码,使用用户名可直接登录
[root@localhost ~]# passwd -d nancy //清除nancy用户的密码 清除用户的密码 nancy。 passwd: 操作成功 复制代码
3)锁定和解锁用户
[root@localhost ~]# passwd -l nancy //锁定用户密码,锁定后用户无法登陆 锁定用户 nancy 的密码 。 passwd: 操作成功 [root@localhost ~]# passwd -u nancy //解锁用户,因nancy无密码,系统提示不安全,必须使用-f才能解锁 解锁用户 nancy 的密码。 passwd: 警告:未锁定的密码将是空的。 passwd: 不安全的操作(使用 -f 参数强制进行该操作) [root@localhost ~]# passwd -S nancy //查看nancy用户状态,仍为锁定状态 nancy LK 2022-02-21 0 99999 7 -1 (密码已被锁定。) 复制代码
2.4 修改用户账号的属性 usermod
命令格式:
usermod [选项]... 用户名 复制代码
常用选项:
选项 | 作用 |
-l | 更改用户账号的登录名称。格式:usermod -l 新名称 旧名称 |
-L | 锁定用户账户 |
-U | 解锁用户账户 |
以下选项与useradd命令中的含义相同 | |
-u | 修改用户的UID号 |
-d | 修改用户的宿主目录位置 |
-e | 修改用户的账户失效时间,可使用YYYY–MM-DD的日期格式 |
-g | 修改用户的基本组名(或使用GID号) |
-G | 修改用户的附加组名(或使用GID号) |
-s | 指定用户的登录Shell |
示例:
[root@localhost ~]# usermod -l sasha helen //将helen的用户名改成sasha [root@localhost ~]# usermod -L sasha //锁定用户sasha [root@localhost ~]# passwd -S sasha //查看sasha状态,已被锁定 sasha LK 2022-02-21 0 99999 7 -1 (密码已被锁定。) [root@localhost ~]# usermod -U sasha //解锁用户sasha [root@localhost ~]# passwd -S sasha //查看sasha状态,正常状态 sasha PS 2022-02-21 0 99999 7 -1 (密码已设置,使用 SHA512 算法。) 复制代码
2.5 删除用户 userdel
命令格式:
userdel [-r] 用户名 //结合-r可以删除宿主目录 复制代码
示例:
[root@localhost ~]# userdel user05 //删除用户user05,不加-r会保留家目录 [root@localhost ~]# ls /home //查看/home下user05的家目录仍存在 alice jack nancy user05 user07 yuji Amy helen user01 user06 zhangsan [root@localhost ~]# userdel -r user06 //删除用户user06及其家目录 [root@localhost ~]# ls /home //查看/home下user06的家目录不存在 alice jack nancy user05 user07 yuji Amy helen user01 zhangsan 复制代码
2.6 用户账号的初始配置文件
文件来源:
新建用户账号时,从 /etc/skel 目录中复制而来, 比如默认bin/bash,默认家目录。
用户宿主目录下的初始配置文件只对当前用户有效。
主要的用户初始配置文件:
- ~/.bash_profile : 这个文件是为系统全局变量配置文件,可以通过重启系统或者执行 ”source /etc/profile“ 命令使profile文件被读取。
- ~/.bashrc: 这个文件实际上是/etc/profile的子目录,存放的是一些应用程序所需的启动脚本。
- ~/.bash_logout: 每一个允许bash shell 的用户都会执行此文件。可通过执行bash命令打开一个新的bash,使bashrc文件被读取。
备注:
- 修改/etc/profile文件中相关配置,切换bash或者用户后都需要source /etc/profile才生效;
- 修改/etc/bashrc文件中相关配置,切换bash或者用户后直接生效。
3 组管理
3.1 组账号文件
(1)文件位置:
- /etc/group:保存组账号基本信息。
- /etc/gshadow:保存组账号的密码信息。
(2)/etc/group文件内容:
[root@localhost ~]# head -3 /etc/group //查看group文件前三行 root:x:0: bin:x:1: daemon:x:2: 复制代码
group文件每行分成了4段,每个字段含义如下:
- 字段1:组账号名称。
- 字段2:密码占位符x;通常不需要设置组密码。由于安全原因,该密码被记录在/etc/gshadow中,因此显示为'x'。类似/etc/shadow文件。
- 字段3:组编号GID。
- 字段4:本组的成员用户列表 (一般不包括基本组对应的用户帐号),多个成员之间以逗号“,"分隔 。