Linux users 命令及实用示例

LinuxLinuxBeginner
立即练习

介绍

在本实验中,你将学习如何在 Linux 系统上管理用户账户,包括创建、修改和删除用户账户,以及理解用户权限和特权。你还将实施密码策略和用户管理实践。本实验涵盖了 useraddpasswdcat /etc/passwd 命令的基础知识,并提供实际示例,帮助你有效地管理 Linux 机器上的用户。

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 命令将目录的所有者和组分别设置为 newuserdevgroupchmod 命令将权限设置为 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 系统的安全性和完整性。

Linux 命令速查表