目录
Linux系统是多用户、多任务、支持多线程和多CPU的操作系统,任何需要访问系统资源的用户,都需要先向管理员申请一个账户,然后通过该账户进入系统。用户的账户一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制它们对系统资源的访问,另一方面,可以帮助用户组织文件,并为用户提供安全性保护。本篇将对Red Hat Enterprise Linux系统中的用户和组进行管理,主要演示如何增加、管理和删除用户和组。
1 用户和组介绍
用户和组,都有一个唯一的标识用于表示,分别为UID和GID,对于这些ID,其中有一部分作为保留的用户和组,可在文件/etc/login.defs进行查看。
每当创建一个新用户,都会自动创建一个对应的用户组,组名和用户名相同,而且该组只有一个用户,该用户组称为用户私有组(UPG)。用户组对应的信息保存在文件/etc/group中。当然,每个用户都有自己的密码,由于Linux是多用户环境,为了更好的安全性,密码对应的信息保存在文件/etc/shadow中,该文件只有root用户可读取。
2 用户管理
2.1 新增用户
2.1.1 语法
默认情况下,useradd命令创建一个锁定的用户,如需解锁,使用passwd命令。
useradd [options] LOGIN
其中,常用的选项如下:
选项 |
描述 |
-c 'comment' |
增加描述信息; |
-d home_directory |
指定home目录,而不是使用默认的/home/LOGIN; |
-e date |
用户账户失效的时间,格式为YYYY-MM-DD; |
-g group_name |
指定用户的默认主组; |
-G group_list |
指定用户所属的附加组,多个附加组以逗号分隔; |
-m |
如果用户的home目录不存在则创建对应的目录; |
-M |
不创建home目录; |
-N |
不创建用户私有组; |
-p password |
指定用户密码,以crypt加密; |
-r |
创建系统账户,但不创建home目录; |
-s |
指定用户的登录shell,默认是/bin/bash; |
-u uid |
指定用户的UID; |
2.1.2 示例
[root@strong ~]# useradd oracle
执行上述命令后,
- /etc/passwd对应的如下记录:
- /etc/shadow对应的记录如下:
- 用户Oracle对应的目录:
- /home/oracle对应的文件:
2.2 修改密码
2.2.1 语法
passwd [options] LOGIN
其中,常用的选项如下:
选项 |
描述 |
-l |
锁定口令,即禁用账户; |
-u |
解锁口令; |
-e |
使口令失效,强制修改密码; |
-d |
使账号无口令; |
-S |
查看账户状态; |
2.2.2 示例
1)查看账户状态
[root@strong ~]# passwd -S oracle
oracle LK 2019-09-23 0 99999 7 -1 (Password locked.)
2)设置密码
[root@strong ~]# passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
3)删除口令
[root@strong ~]# passwd -d oracle
Removing password for user oracle.
passwd: Success
2.3 修改用户
2.3.1 语法
usermod [options] LOGIN
其中,选项和useradd命令的选项一样,可参考。
2.3.2 示例
锁定用户账户:
[root@strong ~]# passwd -S oracle
2.4 查看用户
2.4.1 语法
id [OPTION]... [USER]
2.4.2 示例
[root@strong ~]# id oracle
uid=1001(oracle) gid=1001(oracle) groups=1001(oracle)
2.5 删除用户
2.5.1 语法
userdel [options] LOGIN
其中,常用选项是-r,表示将用户的主目录一起删除。
2.5.2 示例
删除用户Oracle :
[root@strong ~]# userdel -r oracle
[root@strong ~]# ll /home/
total 4
drwx------. 15 alen alen 4096 Sep 23 21:17 alen
3 用户组管理
3.1 创建用户组
3.1.1 语法
groupadd [options] group
其中,常用的选项如下:
选项 |
描述 |
-f |
当使用-g gid并且gid存在,该命令会选择另一个gid; |
-g gid |
指定gid; |
-o |
允许创建GID相同的组; |
-r |
创建系统组; |
3.1.2 示例
1)新建用户组
[root@strong ~]# cat /etc/group |grep dba
dba:x:1002:
2)为用户指定组
[root@strong ~]# usermod -G dba oracle
[root@strong ~]# id oracle
uid=1001(oracle) gid=1001(oracle) groups=1001(oracle),1002(dba)
3.2 修改用户组
3.2.1 语法
groupmod [options] GROUP
其中,常用的选项如下:
选项 |
描述 |
-g gid |
指定gid; |
-o |
允许创建GID相同的组; |
-n |
重命名用户组; |
3.2.2 示例
1)修改用户组gid
[root@strong ~]# groupmod -g 1005 dba
2)重命名用户组
[root@strong ~]# groupmod -n dbanew dba
3)查看修改后的用户组
[root@strong ~]# cat /etc/group |grep dba
dbanew:x:1005:oracle
3.3 删除用户组
3.3.1 语法
groupdel [options] GROUP
3.3.2 示例
[root@strong ~]# groupdel dbanew