注意:
- 此教程在 Oracle 提供的免费实验室环境中提供。
- 它使用 Oracle Cloud Infrastructure 身份证明、租户和区间的示例值。完成练习后,将这些值替换为特定于云环境的值。
在 Oracle Linux 上创建用户和组
简介
以下教程分步介绍在 Oracle Linux 上执行用户和组管理的过程。您将创建用户和组、实施用户专用组并授予用户提升的权限。
目标
在本实验室中,您将:
- 创建新用户并浏览用户的主目录
- 创建新组并将用户添加到组
- 使用用户专用组方案并实现对目录的写入访问
- 管理
sudo
命令以授予 root 特权
需要做哪些准备?
- 安装了 Oracle Linux 的系统
注意:使用免费实验室环境时,请参见 Oracle Linux Lab Basics 了解连接和其他使用说明。
管理用户帐户
在本节中,您将使用命令行实用程序创建新的用户帐户,查看在添加新用户时更新的文件,修改用户帐户,设置新用户的口令,以及以新用户身份登录。
-
打开终端并连接到 Oracle Linux 实例。
-
成为 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 使用用户专用组 (user private group,UG) 方案,因此在创建 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 组中具有辅助组成员资格。
-
查看价格的主要组成员资格。
grep alice /etc/passwd
alice 用户的主组仍为
1001
。
实施用户专用组
在本节中,您将使用“用户专用组”方案向不同的用户授予对单个目录中文件的写入访问权限。
-
以 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 用户。系统不会提示您输入 alice 口令,因为您当前是 root 用户。确认您是 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 用户。系统不会提示您输入 alice 口令,因为您当前是 root 用户。确认您是 alice 用户。
su - alice whoami
-
作为 alice 用户,使用
sudo useradd
命令添加 第三方用户。如果出现提示,请提供AB*gh246
的口令。sudo useradd thirduser
-
验证是否已添加 第三方用户。在插入
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-05
July 2022
Copyright © 2021, Oracle and/or its affiliates.