介绍
在本实验中,你将学习如何在 Linux 系统上管理用户账户,包括创建、修改和删除用户账户,以及理解用户权限和特权。你还将实施密码策略和用户管理实践。本实验涵盖了 useradd、passwd 和 cat /etc/passwd 命令的基础知识,并提供实际示例,帮助你有效地管理 Linux 机器上的用户。
在本实验中,你将学习如何在 Linux 系统上管理用户账户,包括创建、修改和删除用户账户,以及理解用户权限和特权。你还将实施密码策略和用户管理实践。本实验涵盖了 useradd、passwd 和 cat /etc/passwd 命令的基础知识,并提供实际示例,帮助你有效地管理 Linux 机器上的用户。
在这一步中,你将学习如何在 Linux 系统上管理用户账户。我们将涵盖创建、修改和删除用户账户,以及理解用户权限和特权。
首先,让我们创建一个新的用户账户:
sudo useradd -m -s /bin/bash newuser
示例输出:
useradd 命令创建了一个名为 newuser 的新用户账户。-m 选项为新用户创建了一个主目录,而 -s 选项将默认 shell 设置为 /bin/bash。
接下来,让我们为新用户设置密码:
sudo passwd newuser
示例输出:
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:密码更新成功
为了验证新用户账户,你可以列出系统中的所有用户:
sudo cat /etc/passwd
示例输出:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
systemd-timesync:x:102:104:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:103:106::/nonexistent:/usr/sbin/nologin
syslog:x:104:110::/home/syslog:/usr/sbin/nologin
_apt:x:105:65534::/nonexistent:/usr/sbin/nologin
tss:x:106:111:TPM software stack,,,:/var/lib/tpm:/bin/false
uuidd:x:107:112::/run/uuidd:/usr/sbin/nologin
tcpdump:x:108:113::/nonexistent:/usr/sbin/nologin
landscape:x:109:115::/var/lib/landscape:/usr/sbin/nologin
pollinate:x:110:1::/var/cache/pollinate:/bin/false
sshd:x:111:65534::/run/sshd:/usr/sbin/nologin
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
labex:x:1000:1000:labex,,,:/home/labex:/bin/bash
newuser:x:1001:1001::/home/newuser:/bin/bash
你可以看到新用户 newuser 已经被添加到 /etc/passwd 文件中。
要删除用户账户,你可以使用 userdel 命令:
sudo userdel -r newuser
-r 选项会删除用户的主目录和邮件池。
在这一步中,你将学习 Linux 中的用户权限和特权。我们将涵盖如何查看和管理用户权限,以及如何授予和撤销特权。
首先,让我们创建一个新用户和一个新组:
sudo useradd -m -s /bin/bash newuser
sudo groupadd devgroup
接下来,将 newuser 添加到 devgroup 组中:
sudo usermod -a -G devgroup newuser
为了验证用户和组成员关系,我们可以使用 id 命令:
id newuser
示例输出:
uid=1001(newuser) gid=1001(newuser) groups=1001(newuser),1002(devgroup)
我们可以看到,newuser 现在是 devgroup 组的成员。
现在,让我们创建一个新目录并设置其权限:
sudo mkdir /opt/myapp
sudo chown newuser:devgroup /opt/myapp
sudo chmod 770 /opt/myapp
chown 命令将目录的所有者和组分别设置为 newuser 和 devgroup。chmod 命令将权限设置为 rwxrwx---,这意味着所有者和组成员可以读取、写入和执行,但其他用户没有访问权限。
为了验证权限,我们可以使用 ls -l 命令:
ls -l /opt
示例输出:
total 4
drwxrwx--- 2 newuser devgroup 4096 Apr 17 12:34 myapp
现在,让我们尝试以另一个用户的身份访问该目录:
sudo -u otheruser ls -l /opt/myapp
示例输出:
ls: cannot open directory '/opt/myapp': Permission denied
如你所见,otheruser 无法访问 myapp 目录,因为他们不是 devgroup 组的成员。
在这最后一步中,你将学习如何实施密码策略并更有效地管理用户账户。
首先,让我们使用 pam_cracklib 模块配置密码策略。该模块提供密码强度检查,并可以强制执行诸如最小长度、字符要求和密码历史记录等规则。
使用文本编辑器打开 /etc/pam.d/common-password 文件:
sudo nano /etc/pam.d/common-password
并添加以下行:
password requisite pam_cracklib.so retry=3 minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1
password [success=1 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512
此配置要求密码至少为 8 个字符长,并且至少包含一个数字、一个大写字母、一个小写字母和一个特殊字符。
接下来,让我们创建一个新用户并测试密码策略:
sudo useradd -m -s /bin/bash newuser2
sudo passwd newuser2
示例输出:
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
抱歉,密码不匹配。
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
密码太弱:基于字典单词
passwd:认证令牌操作错误
如你所见,密码策略已强制执行,用户无法设置弱密码。
最后,让我们探索一些用户管理命令:
## 锁定用户账户
sudo usermod -L newuser2
## 解锁用户账户
sudo usermod -U newuser2
## 使用户密码过期
sudo passwd -e newuser2
## 设置用户密码永不过期
sudo chage -M -1 newuser2
这些命令允许你更有效地管理用户账户,例如锁定账户、强制更改密码以及设置密码过期策略。
在本实验中,你学习了如何在 Linux 系统上管理用户账户,包括创建、修改和删除用户账户,以及理解用户权限和特权。你创建了一个新用户账户,为新用户设置了密码,并通过列出系统中的所有用户来验证新用户账户。
实验还涵盖了实施密码策略和用户管理。你学习了如何强制执行密码要求,并有效地管理用户账户,以维护 Linux 系统的安全性和完整性。