Linux CentOS 8(用户管理)
目录
- 一、项目描述
- 二、相关知识
- 三、任务分析
- 任务1- 创建用户
- 任务2- 修改用户
- 任务3- 删除用户
一、项目描述
Jan16公司为满足不同部门的人员对计算机系统的访问,需要为这些人员创建用户和配置访问权限。
二、相关知识
CentOS Linux用户中分为三类用户:即超级用户(root用户、根用户,用户UID=0)、普通用户(用户UID>=1000)、伪用户(用户UID=1~999),其中,(User ID,简称 UID);
超级用户:拥有系统的最高权限,甚至可以删除系统;
普通用户:相对于超级用户少了很多权限,比如删除用户,禁止用户,添加用户组,删除用户组,修改系统配置等等;
伪用户:是无法使用密码登陆的,即仅仅用于系统自动的用户,人是无法用于登陆使用的。
三、任务分析
Linux 是一个多用户、多任务、支持多线程和多CPU的操作系统,使用者可以通过创建用户实现对系统的访问。
本任务主要演示用户的创建、修改和删除。
任务1- 创建用户
1.1 查看“useradd”的选项
[root@localhost~]# useradd -h //使用选项“-h”进行查看
Usage: useradd [options] LOGIN
useradd -D
useradd -D [options]
Options:
-b, --base-dir BASE_DIR base directory for the home directory of the new account
-c, --comment COMMENT GECOS field of the new account
-d, --home-dir HOME_DIR home directory of the new account
-D, --defaults print or change default useradd configuration
-e, --expiredate EXPIRE_DATE expiration date of the new account
-f, --inactive INACTIVE password inactivity period of the new account
-g, --gid GROUP name or ID of the primary group of the new account
-G, --groups GROUPS list of supplementary groups of the new account
-h, --help display this help message and exit
-k, --skel SKEL_DIR use this alternative skeleton directory
-K, --key KEY=VALUE override /etc/login.defs defaults
-l, --no-log-init do not add the user to the lastlog and faillog databases
-m, --create-home create the user's home directory
-M, --no-create-home do not create the user's home directory
-N, --no-user-group do not create a group with the same name as the user
-o, --non-unique allow to create users with duplicate (non-unique) UID
-p, --password PASSWORD encrypted password of the new account
-r, --system create a system account
-R, --root CHROOT_DIR directory to chroot into
-P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files
-s, --shell SHELL login shell of the new account
-u, --uid UID user ID of the new account
-U, --user-group create a group with the same name as the user
-Z, --se Linux-user SEUSER use a specific SEUSER for the SE Linux user mapping
useradd命令常用选项,如表1 所示
表1 useradd命令常用选项的用法
选项 | 说明 |
-c | 为新用户进行说明注释 |
-d | 为新用户指定家目录 |
-e | 指定帐号的有效期限 |
-g | 为新用户指定一个组(指定的组必须存在) |
-G | 为新用户指定一个附加组 |
-m | 为新用户创建家目录 |
-M | 不创建用户的家目录(默认创建) |
-s | (shell) 为新用户指定登录后使用的shell |
-u | (UID) 为新用户指定一个UID |
注:
useradd命令用来创建新的用户或更改用户的信息。
useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。
1.2 在字符界面下,使用root用户登录,创建用户“jan16”,并且查看
[root@localhost~]# useradd jan16
[root@localhost~]# ll /home
total 0
drwx------. 2 jan16 jan16 62 Jun 7 02:49 jan16
1.3 设置用户密码:
方法一:
[root@localhost ~]# echo "123456" |passwd --stdin jan16
Changing password for user jan16.
passwd: all authentication tokens updated successfully.
[root@localhost ~]#
方法二:
[root@localhost ~]# passwd jan16
Changing password for user jan16.
New password: 123456
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
Sorry, passwords do not match.
New password: centosab
BAD PASSWORD: The password fails the dictionary check - it is based on a dictionary word
Retype new password: centosab
passwd: all authentication tokens updated successfully.
[root@localhost ~]#
1.4 查看密码文件
[root@localhost ~]# tail -5 /etc/shadow
unbound:!!:18781::::::
sshd:!!:18781::::::
rngd:!!:18781::::::
jan_14:!!:18784:0:99999:7:::
jan16:$6$bqQsEXZq7A7tYhTx$ufDrTuSYHOmOESsCdS./j/0DZ2zxUlwTj/slkwnxhtIAuz7AuV23jIzeJRe82ixyFWp27rEZDhrcgKVN5U6DK/:18784:0:99999:7:::
1.5 在tty4虚拟终端中登录jan16用户,并解释登录后的显示信息;按住Alt+F4键,切换到虚拟终端,输入用户名及密码,如图1所示。
图1 用户信息
1.6 创建用户“jan15”,设其UID为“555”;
[root@localhost ~]# useradd -u 555 jan15
[root@localhost ~]# id jan15
uid=555(jan15) gid=2225(jan15) groups=2225(jan15)
[root@localhost ~]#
1.7 创建用户“user01”,设其宿主目录为“/home/tests”,并查看密码文件;
[root@localhost ~]# useradd -d /home/tests user01
[root@localhost ~]# tail -1 /etc/passwd
user01:x:2225:2227::/home/tests:/bin/bash
1.8 创建用户“user02”,设其指定用户组为“users”
[root@localhost ~]# useradd -g users user02
[root@localhost ~]# id user02
uid=2226(user02) gid=100(users) groups=100(users)
任务2- 修改用户
2.1 查看usermod的选项
[root@localhost~]# usermod -h
Usage: usermod [options] LOGIN
Options:
-c, --comment COMMENT new value of the GECOS field
-d, --home HOME_DIR new home directory for the user account
-e, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE
-f, --inactive INACTIVE set password inactive after expiration to INACTIVE
-g, --gid GROUP force use GROUP as new primary group
-G, --groups GROUPS new list of supplementary GROUPS
-a, --append append the user to the supplemental GROUPS
mentioned by the -G option without removing
the user from other groups
-h, --help display this help message and exit
-l, --login NEW_LOGIN new value of the login name
-L, --lock lock the user account
-m, --move-home move contents of the home directory to the
new location (use only with -d)
-o, --non-unique allow using duplicate (non-unique) UID
-p, --password PASSWORD use encrypted password for the new password
-R, --root CHROOT_DIR directory to chroot into
-P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files
-s, --shell SHELL new login shell for the user account
-u, --uid UID new UID for the user account
-U, --unlock unlock the user account
-v, --add-subuids FIRST-LAST add range of subordinate uids
-V, --del-subuids FIRST-LAST remove range of subordinate uids
-w, --add-subgids FIRST-LAST add range of subordinate gids
-W, --del-subgids FIRST-LAST remove range of subordinate gids
-Z, --se Linux-user SEUSER new SE Linux user mapping for the user account
useradd命令常用选项,如表2 所示。
表2 usermod命令常用选项的用法
选项 | 说明 |
-c | 修改用户帐号的备注文字 |
-d | 修改用户登入时的目录 |
-e | 修改帐号的有效期限 |
-f | 修改在密码过期后多少天即关闭该帐号 |
-g | 修改用户所属的群组 |
-G | 修改用户所属的附加群组 |
-l | 修改用户帐号名称 |
-L | 锁定用户密码,使密码无效 |
-s | 修改用户登入后所使用的shell |
-u | 修改用户ID |
-U | 解除密码锁定 |
注:
usermod命令用于修改用户账号 。usermod可用来修改用户账号的各项设定,修改系统账号文件来反映通过命令行指定的变化。
2.2 将用户“user02”的登录目录修改为“/home/jan”,并查看密码文件;
[root@localhost ~]# usermod -d /home/jan user02
[root@localhost ~]# tail -1 /etc/passwd
user02:x:2226:100::/home/jan:/bin/bash
2.3 将“user02”的用户名修改为“user_02”,并进行验证;
[root@localhost ~]# usermod -l user_02 user02 // usermod -l user_02(新用户名称) user02(原来用户名称)
[root@localhost ~]# id user02
id: ‘user02’: no such user
[root@localhost ~]# id user_02
uid=2226(user_02) gid=100(users) groups=100(users)
2.4 将“user_02”的有效期设置到2021-06-06,并验证结果;
[root@localhost ~]# tail -1 /etc/shadow
user_02:!!:18784:0:99999:7:::
[root@localhost ~]# usermod -e 2021-06-06 user_02
[root@localhost ~]# tail -1 /etc/shadow
user_02:!!:18784:0:99999:7::18784:
2.5 将“user_02”的所属组“users”修改为“root”(前提是有这个组),并进行验证;
[root@localhost ~]# id user_02 //所属组原本为“users”
uid=2226(user_02) gid=100(users) groups=100(users)
[root@localhost ~]# usermod -g root user_02
[root@localhost~]# id user_02 //所属组已变为“root”
uid=2226(user_02) gid=0(root) groups=0(root)
2.6 首先给“user_02”设置密码,使用选项“-L”将用户“user_02”锁定,再进行验证状态,之后将用选项“-U”将用户“user_02”解锁。
[root@localhost~]# echo “123456” |passwd --stdin user_02
Changing password for user user_02.
passwd: all authentication tokens updated successfully.
[root@localhost~]# usermod -L user_02
[root@localhost~]# passwd -S user_02 //检查用户的锁定状态
user_02 LK 2021-06-06 0 99999 7 -1 (Password locked.)
[root@localhost~]# usermod -U user_02
注: 可使用passwd命令检查用户帐户锁定状态:
# passwd -S user_02
或者:
# passwd --status user_02
这将输出有关给定帐户的密码状态的简短信息:LK:密码锁定、NP:没有密码、PS:密码设置。
或者:使用“passwd”命令进行锁定、解锁用户;
[root@localhost~]# passwd -l user_02 //锁定用户
Locking password for user user_02.
passwd: Success
[root@localhost~]# passwd -S user_02 //检查用户的锁定状态
user_02 LK 2021-06-06 0 99999 7 -1 (Password locked.)
[root@localhost~]# grep user_02 /etc/shadow //使用 /etc/shadow 文件检查锁定的用户帐户状态,感叹号即可说明账户已被锁定。
user_02:!$6$Z7QgOBz5F29oBhDX$zyhWxZyVD88t0Lt.ccPJDtm0S3LR5gRzTX7IvOYVuSSasRZXyTRllUO6Z42xCOO1aG7/wrVmrIdFhDUWX8Bxe/:18784:0:99999:7::18784:
[root@localhost~]# passwd -u user_02
Unlocking password for user user_02.
passwd: Success
passwd常见的选项,如表3 所示。
表3 passwd常见的选项
选项 | 说明 |
-d | 清空指定用户的密码,仅使用用户名即可登录系统 |
-l | 锁定用户账户 |
-S | 查看用户账户的状态(是否被锁定) |
-u | 解锁用户账户 |
2.7 将“user_02”的UID修改为“2333”;
[root@localhost ~]# id user_02
uid=2226(user_02) gid=0(root) groups=0(root)
[root@localhost ~]# usermod -u 2333 user_02
[root@localhost ~]# id user_02
uid=2333(user_02) gid=0(root) groups=0(root)
2.8 “user01”的GID修改为“2666”,前提是“2666”这个组存在;
[root@localhost ~]# id user01
uid=2225(user01) gid=2227(user01) groups=2227(user01)
[root@localhost ~]# groupadd -g 2666 userss
[root@localhost ~]# usermod -g 2666 user01
[root@localhost ~]# id user01
uid=2225(user01) gid=2666(userss) groups=2666(userss)
任务3- 删除用户
3.1 查看userdel的选项
[root@localhost~]# userdel -h
Usage: userdel [options] LOGIN
Options:
-f, --force force some actions that would fail otherwise
e.g. removal of user still logged in
or files, even if not owned by the user
-h, --help display this help message and exit
-r, --remove remove home directory and mail spool
-R, --root CHROOT_DIR directory to chroot into
-P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files
-Z, --se Linux-user remove any SElinux user mapping for the user
userdel命令常用选项,如表4 所示。
表4 userdel命令常用选项的用法
选项 | 说明 |
-f | 强制删除用户账号 |
-r | 删除用户主目录及其中的任何文件 |
-h | 显示命令的帮助信息 |
注:
userdel命令用于删除指定的用户及与该用户相关的文件,英文全称即“user delete”。其实userdel命令实际上是修改了系统的用户账号文件 /etc/passwd、/etc/shadow以及/etc/group文件。
值得注意的是,但是如果有该要删除用户相关的进程正在运行,userdel命令通常不会删除一个用户账号。如果确实必须要删除,可以先终止用户进程,然后再执行userdel命令进行删除。但是userdel命令也提供了一个面对该种情况的参数,即”-f”选项。
3.2 删除用户“jan_14”,但不删除其家目录及文件,并检验;
[root@localhost ~]# ls /home/
jan jan13 jan_14
[root@localhost ~]# userdel jan_14
[root@localhost ~]# ls /home/
jan jan13 jan_14
3.3 删除用户“jan16”,并将其家目录及文件一并删除,并检验;
[root@localhost ~]# ls /home/
jan jan13 jan_14 jan16
[root@localhost ~]# userdel -r jan16
[root@localhost ~]# ls /home/
jan jan13 jan_14
[root@localhost ~]#