用户管理
前言
Linux 是一个多用户、多任务的操作系统,可以让多个用户同时使用系统。为了保证用户之间的独立性,允许用户保护自己的资源不受非法访问。为了使用户之间共享信息和文件,允许用户分组工作。
当安装好 RHEL/Centos 后,系统默认的账号为 root,该账号是系统管理员账号,对系统有完全的控制权限,可以对系统进行任何的设置和修改。本篇将介绍用户管理与组的相关命令及使用方法。
用户管理
将介绍的命令:useradd 、userdel、usermod、passwd,chage
在Linux系统中,存在三种用户: root 用户 、系统用户、普通用户。
系统中的每一个用户都有一个 ID (UID)、UID是区分用户的唯一标志;
1)root 用户的 UID 为0
2)系统用户的 UID 范围是 1~999(大多数系统用户是不能直接登录,它们的登录 shell 为 /sbin/nologin )
3)普通用户的 UID 范围是 1000~60000
用户默认的配置信息是从 /etc/login.defs 文件中读取的。用户的基本信息保存在 /etc/passwd 文件中,用户密码等安全信息保存在 /etc/shadow 文件中。
1. useradd 命令
语法如下:
useradd [选项] [用户账号] (可不加选项,即直接创建普通用户)
作用:建立用户账号。
账号建立好后,再使用 passwd 命令设定账号的密码。可以用 userdel 命令删除账号。使用 useradd 命令建立的账号会被保存在 /etc/passwd 文件中。下面列出 useradd 命令各选项及其作用:
选项 | 功能 |
---|---|
-c | 加上备注文字,备注文字保存在 passwd 的备注信息栏中(美国通用电器系统) |
-d | 指定用户登录时的出事目录 |
-D | 变更默认值 |
-e | 指定账号的有效期 (以 1970.1.1来计算) |
-f | 指定在密码过期后多少天关闭该账号 |
-g | 指定用户所属的群组 |
-G | 指定用户所属的附加群组 |
-m | 自动创建用户的主目录 |
-M | 不要自动建立用户的主目录 |
-n | 取消建立以用户名称为群组 |
-r | 建立系统账号 |
-s | 指定用户登录后所使用的shell |
-u | 指定用户 ID |
tips:用 useradd useranme 命令可以添加一个名为 username 的用户。 useradd 命令会自动把 /etc/skel 目录中文件复制到用户的主目录,并设置适当的权限(除非添加用户时用 -m 选项,比如 useradd -m xxx)。
一个人是否能够使用 Linux 系统,取决于该用户在系统中有没有账号。
2 passwd 命令
语法如下:
passwd [选项] 用户账户 (可不加选项,即直接修改密码)
作用:
passwd 命令可以更改自己的密码(口令),也可以更改别人的密码。如果后面没有跟用户账户,就是更改当前所登录用户的密码。当然,这个用户必须是已经存在在系统中才可以进行此操作,且只有超级用户可以修改其用户口令,普通用户只能执行不带参数的
在早期的 Linux 系统中,经过加密处理的密码存放在 /etc/passwd 文件中(第二个字段)。而现在为了防范人为恶意破解密码,Linux 将这些加密过的密码字符存放在 /etc/shadow 文件中,而原来的 /etc/passed 文件放置密码的地方只保留一个 x 字符。如下图 /etc/passwd 中 root 账户第二个字段为 x
下图为 /etc/shadow 文件,可见 root 用户的口令被加密
passwd命令及选项见下表:
选项 | 功能 |
---|---|
-d | 删除账号的密码,只有具备超级用户权限的用户才可以使用 |
-l | 锁定已经命名的账号名称,只有具备超级用户才可以使用 |
-n /(–minimum=days) | 最小密码使用时间(天),只有具备超级用户才可以使用 |
-S | 检查指定使用者的密码认证种类,只有具备超级用户才可以使用 |
-u | 解开账号锁定状态,只有具备超级用户才可以使用 |
-x /(–maximum=days) | 最大密码使用时间(天),只有具备超级用户才可以使用 |
(实例) 添加用户
第一步:添加用户账号 xiaoming
如下图:
使用 useradd 命令添加账户 xiaoming ,会自动在 /home 目录下产生一个 xiaoming 的目录来放置用户文件,即为 xiaoming 用户的主目录(Home Directory)。创建其他用户也是如此。
但是超级用户(root)的主目录却不一样,如图
第二步:为用户设置口令
给用户设置、修改口令的方式有很多种,下面列出几种常用的方式:
passwd 命令(手动修改):
passwd xiaoming
passwd 命令(命令行修改):
echo 'enteryourpassword' | passwd --stdin xiaoming
chpasswd 命令(命令行修改);
echo 'xiaoming:enteryourpassword' | chpasswd
第三步:观察 passwd 与 shadow 文件的变化
cat /etc/passwd
/etc/passwd 文件中的字段结构(冒号为间隔,无其他意思)
用户名:密码:UID:GID:用户描述:用户主目录:用户登录 shell
创建用户 xiaoming 前:
仔细查看下图,没有关于 xiaoming 的字符
创建用户 xiaoming 后:
添加用户后,可见用户 xiaoming 相关的字符
cat /etc/shadow
/etc/shadow 文件中字段结构:
账号名称:密码:上次更改密码日期:密码不可被动的天数:密码需要重新变更的天数:密码需要变更期限前的警告权限:账号失效期限:账号取消日期:保留字段(暂时没有作用)
tips:如果创建的用户 UID 与 GID 没有指定,系统将会自动指定从编号 1000 开始且未使用的号码
设置用户 xiaoming 口令前:
设置用户 xiaoming 口令后:
3 userdel 命令
语法如下:
userdel [-r] [用户账号]
作用:删除用户账号及其相关文件。如果不加 -r 参数,那么只删除用户账号,而不删除该账号的相关文件。
实例:删除用户
第一步:执行 ls /home 用户主目录
第二部:执行带 -r 选项的 userdel 命令(删除 xiaoming)
带 -r 参数删除后,会发现 home 目录下 xiaoming的目录已经被删除
如不带参数删除用户 (删除 xiaohong)
如图可见,不带 -r 参数删除用户,用户相关的文件还在
4 usermod 命令:
语法如下:
usermod [选项] 用户账户
作用:修改用户信息。
usermod 命令各下选项及其作用见下表:
选项 | 功能 |
---|---|
-c | 改变用户的描述信息 |
-d | 改变用户的主目录,如果加上 -m 则会将旧目录移动到新目录中去 (-m 需在新目录之后添加) |
-e | 设置用户账户的过期时间 (xxxx年xx月xx日) |
-g | 改变用户的主属组 |
-G | 设置用户的扩展组 |
-l | 改变用户的登录名 |
-s | 改变用户默认 shell |
-u | 改变用户的 UID |
-L | 锁定用户密码,将不可用 |
-U | 为用户密码解锁 |
5 chage 命令:
语法如下:
chage [选项] username
作用:更改用户密码过期信息。
chage 命令选项及功能见下表:
选项 | 功能 |
---|---|
-l | 列出用户及密码的有效期限 |
-m | 密码可更改的最小天数。为 0 时,可随时更改 |
-M | 密码保持有效期的最大天数 |
-I | 停滞时期,如果密码过期,此用户不可用 |
-d | 指定密码最后修改日期 |
-E | 账号到期的日期,0 表示立即过期,-1表示永不过期 |
-W | 用户密码到期提前收到警告信息的天数 |