注:
- Oracle 提供的免费实验室环境中提供了本教程。
- 它使用 Oracle Cloud Infrastructure 身份证明、租户和区间示例值。完成实验室后,请使用特定于您的云环境的这些值替换这些值。
在 Oracle Linux 上创建用户和组
简介
以下教程分步介绍在 Oracle Linux 上执行用户和组管理的过程。您将创建用户和组、实施用户专用组并授予用户提升的权限。本教程针对 Oracle Linux 8 用户,但其他 Oracle Linux 发行版也提供了这些命令。
目标
在此实验室中,您将:
- 创建新用户并浏览用户的起始目录
- 创建新组并将用户添加到组
- 利用用户专用组方案并实施对目录的写入访问权限
- 管理
sudo
命令以授予 root 特权
需要做哪些准备?
- 安装了 Oracle Linux 8 的系统
注意:使用免费实验室环境时,请参见 Oracle Linux Lab Basics 了解连接和其他使用情况说明。
管理用户帐户
在此部分中,您将使用命令行实用程序创建新用户帐户、查看添加新用户时更新的文件、修改用户帐户、为新用户设置密码以及以新用户身份登录。
-
打开终端并连接到 Oracle Linux 8 实例。
-
成为 root 用户。
sudo su -
-
以 root 用户身份添加一个名为 alice 的用户。
useradd alice
用户将添加到
/etc/passwd
文件中。 -
查看
/etc/passwd
文件中的 alice 项。grep alice /etc/passwd
输出显示如下:
- 新用户的 UID 和 GID 相同 (
1001
)。 - 已为新用户 (
/home/alice
) 创建起始目录。 - 新用户的缺省 shell 为
/bin/bash
。
- 新用户的 UID 和 GID 相同 (
-
查看起始目录。
ls -l /home
在此示例中,opc 用户已存在。
因为/etc/login.defs
中的 CREATE_HOME 参数设置为yes
,所以为新用户创建了起始目录。 -
查看
/etc/login.defs
文件中的 CREATE_HOME 参数。grep CREATE_HOME /etc/login.defs
-
查看
/etc/default/useradd
中存储的新用户的默认设置。cat /etc/default/useradd
SKEL 参数设置为
/etc/skel
。 -
查看
/etc/skel
目录的内容。ls -la /etc/skel
-
查看 alice 主目录的内容。
ls -la /home/alice
SKEL (
/etc/skel
) 的内容将复制到新用户的起始目录中。 -
在
/etc/group
文件中查看新的 alice 条目。grep alice /etc/group
由于 Oracle Linux 8 使用用户专用组 (user private group, UPG) 方案,因此在创建 alice 用户时会创建一个新的专用组 (alice,GID=1001)。
-
修改 alice 用户的 GECOS 信息。在修改 GECOS 信息之前和之后,查看
/etc/passwd
文件中的 alice 项。grep alice /etc/passwd usermod -c "Alice Smith" alice grep alice /etc/passwd
-
为 alice 用户创建口令
AB*gh246
。在为 alice 创建口令之前和之后,查看/etc/shadow
文件中的 alice 项。grep alice /etc/shadow passwd alice grep alice /etc/shadow
alice 的
!!
将替换为散列口令值。 -
退出 root 登录并以 alice 用户身份登录。在出现提示时提供
AB*gh246
的口令。exit su - alice
-
验证您是 alice 用户,并且您的当前目录是 alice 用户的起始目录。
whoami pwd
-
退出 alice 用户的 shell 并成为 root 用户。
exit sudo su -
-
以 root 用户身份添加一个名为 oracle 的用户,该用户将在本练习的后面使用。
useradd oracle
-
为 oracle 用户创建密码
XY*gh579
。passwd oracle
管理组帐户
在此部分中,您将创建新组帐户并将用户添加到此新组。
-
以 root 用户身份添加名为 staff 的组。
groupadd staff
该组将添加到
/etc/group
文件中。 -
查看
/etc/group
文件中的最后 10 个条目。tail /etc/group
新组的 GID (
1003
) 将增加 1。 -
将 alice 用户添加到 staff 组。在
/etc/group
文件中查看 staff 组项。usermod -aG 1003 alice grep staff /etc/group
alice 用户在 staff 组中具有辅助组成员资格。
-
查看 alice 的主组成员资格。
grep alice /etc/passwd
alice 用户的主组仍为
1001
。
实施用户专用组
在本节中,您将使用 "User Private Groups"(用户专用组)方案向不同的用户授予对单个目录中文件的写入访问权限。
-
以 root 用户身份创建
/staff
目录。mkdir /staff
-
查看
/staff
目录及其权限。ls -ld /staff
-
将
/staff
目录的组所有权更改为 staff 组。-R
选项(递归)为/staff
中的文件和目录设置组。更改组所有权后,查看/staff
目录及其权限。chgrp -R staff /staff ls -ld /staff
/staff
目录的所有者仍为 root,但组现在为 staff。 -
在
/staff
目录上设置 setgid 位。然后查看/staff
目录的权限。chmod -R 2775 /staff ls -ld /staff
/staff
目录上的组权限已更改。 -
将 oracle 用户添加到 staff 组。添加 oracle 用户后,查看
/etc/group
文件中的 staff 项。usermod -aG staff oracle grep staff /etc/group
alice 和 oracle 用户在 staff 组中都具有辅助组成员资格。
-
成为 oracle 用户。系统不会提示您输入 oracle 用户的密码,因为您当前是 root 用户。验证您是 oracle 用户,并且您的当前目录是 oracle 用户的起始目录。
su - oracle whoami pwd
-
显示 oracle 用户的组成员资格。
groups
oracle 用户属于 oracle 和 staff 这两个组。
-
转至
/staff
目录。在/staff
目录中创建一个名为oracle_file
的新文件。显示新文件的权限和所有权。cd /staff touch oracle_file ls -l oracle_file
staff 组的权限为读 / 写。
-
成为 alice 用户。在出现提示时提供
AB*gh246
的口令。确认您是 alice 用户。su - alice whoami
-
显示 alice 用户的组成员资格。
groups
alice 用户属于两个组 -alice 和 staff。
-
转至
/staff
目录。在/staff
目录中创建一个名为alice_file
的新文件。显示新文件的权限和所有权。cd /staff touch alice_file ls -l
对 staff 组的两个文件具有读 / 写权限。
-
作为 alice 用户,使用
touch
命令更新oracle_file
上的时间戳。查看文件以验证时间是否已更改。touch oracle_file ls -l
更新时间戳意味着对文件具有 alice 用户的写入权限,即使该文件由 oracle 用户创建也是如此。
-
退出 alice 用户的 shell 和 oracle 用户的 shell,以返回到 root 用户的 shell。确认您是 root 用户。
exit exit whoami
选项 1:向用户授予提升的权限
在本节中,通过向 /etc/sudoers
文件添加条目向用户授予 sudo
权限。
-
成为 alice 用户。由于您当前是 root 用户,因此不会提示您输入 alice 密码。确认您是 alice 用户。
su - alice whoami
-
作为 alice 用户,尝试添加 newuser。
useradd newuser
alice 用户没有添加 newuser 的权限。
-
在上一个
useradd
命令之前插入sudo
命令以添加 newuser。在出现提示时提供AB*gh246
的口令。sudo useradd newuser
/var/log/secure
文件中会报告在未正确授权的情况下发出此管理员命令的尝试。 -
退出 alice 用户的 shell 以返回到 root 用户的 shell。查看
/var/log/secure
文件中的 sudoers 项。exit grep sudoers /var/log/secure
尝试使用
/sbin/useradd
命令的 alice : user NOT in sudoers 条目位于/var/log/secure
文件中。示例中显示了多个条目。您可能只有一个条目。 -
以 root 用户身份,使用
visudo
命令编辑/etc/sudoers
文件。visudo
此命令使用
vim
编辑器打开/etc/sudoers
文件。 -
在
/etc/sudoers
文件中,添加以下行以授予 alice 用户运行/sbin/useradd
命令的权限。alice ALL=(ALL) /sbin/useradd
将突出显示新条目。保存更改并退出
visudo
命令。 -
成为 alice 用户。尝试在不使用
sudo
命令的情况下添加 newuser。插入sudo
命令并再次尝试添加 newuser。在出现提示时提供AB*gh246
的口令。su - alice useradd newuser sudo useradd newuser
-
验证是否已添加 newuser。
grep newuser /etc/passwd ls -l /home
newuser 现在存在。使用
/etc/sudoers
文件中的 alice 项,alice 用户具有sudo
特权来运行/sbin/useradd
命令。 -
退出 alice shell 以返回到 root shell。使用
visudo
命令并从之前在此练习中添加的/etc/sudoers
文件中删除 alice 条目。exit visudo
突出显示要删除的条目。删除整个行,或者如本示例所示,插入
#
字符以注释掉该行。保存更改并退出visudo
命令。 -
确认 alice 用户无法再添加新用户。成为 alice 用户。尝试使用
sudo
命令添加 anotheruser。su - alice sudo useradd anotheruser
/var/log/secure
文件中会报告在未正确授权的情况下发出此管理员命令的尝试。 -
退出 alice 用户的 shell 以返回到 root 用户的 shell。
exit
选项 2:向用户授予提升的权限
在本节中,通过将用户添加到 wheel 组来授予 sudo
特权。
-
以 root 用户身份查看
/etc/sudoers
文件中的 wheel 项。grep wheel /etc/sudoers
/etc/sudoers
文件中的 %wheel ALL=(ALL) ALL 项允许 wheel 组的任何成员执行任何命令(前面带有sudo
)。 -
将 alice 用户添加到 wheel 组中。确认 alice 用户位于 wheel 组中。
usermod -aG wheel alice grep wheel /etc/group
用户 alice 在 wheel 组中具有辅助组成员关系。
-
成为 alice 用户。由于您当前是 root 用户,因此不会提示您输入 alice 密码。确认您是 alice 用户。
su - alice whoami
-
作为 alice 用户,使用
sudo useradd
命令添加 lastuser。如果出现提示,请提供口令AB*gh246
。sudo useradd thirduser
-
验证是否已添加 lastuser。在插入
sudo
并提供 alice 密码之前,ls
命令将失败。这将确认 alice 用户具有sudo
特权。grep thirduser /etc/passwd ls -la /home/thirduser sudo ls -la /home/thirduser
更多学习资源
在 docs.oracle.com/learn 上浏览其他实验室,或者在 Oracle Learning YouTube 渠道上访问更多免费学习内容。此外,访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Create users and groups on Oracle Linux
F49505-04
May 2022
Copyright © 2021, Oracle and/or its affiliates.