Linux 用户管理完整指南
管理用户是每个 Linux 系统管理员都应该精通的一项重要任务。这是 Linux 的终极用户管理指南。
用户帐户管理是 Linux 系统管理员面临的众多挑战之一。系统管理员的一些职责包括启用/禁用用户帐户、保留主目录、设置用户权限、为用户分配组/shell 以及管理密码。
只有熟悉 Linux 帐户管理的基础知识后,才能有效控制用户帐户。因此,本文是保护用户帐户安全的垫脚石。它演示了如何创建、删除和修改用户帐户以及管理预定义的设置或文件,以构建最适合 Linux 用户的安全环境。
如何在 Linux 中添加用户帐户
作为预防措施,任何使用 Linux 计算机的用户都必须有一个单独的用户帐户。用户帐户允许您将文件分隔在安全的空间中,并能够定制您的主目录、路径、环境变量等。
在开始创建新用户之前,请借助 cut 命令列出可用的用户帐户,如下所示:
cut -d: -f1 /etc/passwd
在 Linux 中创建新用户帐户的最简单方法是借助 useradd。该实用程序提供各种参数来在添加新用户时指定附加信息。一些选项是:
-c:向用户帐户添加描述/评论。
useradd -c "John Wise" john
-d:设置指定用户的主目录。默认情况下,useradd 命令将其设置为用户名 (/home/john),但您可以将其替换为您选择的目录,如下所示:
useradd -d /mnt/home/john
-g:允许您设置用户的主要组。如果您在创建过程中不添加用户,则默认将用户添加到一个组中。
-G:将用户添加到多个组。
useradd -G juice,apple,linux,tech john
-o:使用现有用户的 UID 创建新用户帐户。
-p:用于为帐户添加加密密码。您还可以稍后使用 passwd 命令添加密码。
passwd john
例如,以下是如何使用 useradd 命令和上述一些参数来添加新用户:
useradd -g tech -G apple,linux -s /bin/zsh -c "James Adem" adem
在用户创建过程中,上述命令执行几个操作:
将 tech 设置为用户的主要组
将 Zsh 设置为用户的默认 shell
将 adem 添加到 apple 和 linux 组。此操作还会在 /etc/group 文件中创建新条目。
将 /home/adem 设置为默认主目录
在 /etc/passwd 和 /etc/shadow 文件中创建新条目。该命令将以下行添加到 /etc/passwd 文件中:
adem:x:1002:1007:James Adem:/home/sara:/bin/zsh
修改默认用户设置
useradd 命令从 /etc/login.defs、/etc/useradd 和 /etc/default/useradd 读取默认值。您可以在 Linux 中使用您喜欢的文本编辑器打开文件,在使用该命令之前进行并保存适当的更改。
您可以使用以下命令查看 login.defs 中的一些可用设置:
cat /etc/login.defs | grep 'PASS\|UID\|GID'
未注释的行是带有值的关键字。例如,PASS_MAX_DAYS 关键字设置密码过期期限最长为 9999 天。同样,PASS_MIN_LEN 关键字要求密码长度至少为五个字符。最后,UID 和 GID 关键字允许为任何新用户帐户自定义用户和组 ID 范围。
您还可以使用带有 -D 标志的 useradd 命令来查看/修改文件中存在的默认设置。
请注意,您不使用 -D 标志来创建新帐户。相反,它只允许您更改默认设置。此外,它仅支持更改 useradd 命令用于创建帐户的几个参数。
Flags | Description |
---|---|
-b | Modifies the default home directory (/home) for new user accounts. |
-g | Modifies the default new user primary group (username) with another default group. |
-s | Replaces the default /bin/bash shell with another default shell. |
-e | Modifies the default expiration date to disable a user account in YYYY-MM-DD format. |
-f | Allows to set inactive days before the account is disabled and after password expiration |
例如,以下命令将默认 shell 更改为 /bin/sh,并将主目录更改为 /home/new:
useradd -D -b /home/new -s /bin/sh
修改Linux上的用户组
usermod 是另一个简单而直接的 Linux 实用程序,用于修改用户帐户详细信息。它支持与 useradd 命令类似的参数或标志,这就是它的用法非常简单的原因。
例如,您可以将用户 adem 的默认 shell 从 /bin/sh 更改为 /bin/bash,如下所示:
usermod -s /bin/bash adem
现在,要将 adem 包含在 sales 组中,您需要使用 -aG 标志作为简单的 -G 标志将从之前添加的补充组中删除用户:apple 和 linux。
usermod -aG sales adem
cat /etc/group | grep adem
相关:在 Linux 中查看文件内容的最佳命令行实用程序
如何在 Linux 上删除用户帐户
Linux 提供了另一个命令行实用程序userdel 来删除任何用户帐户。这是基本语法:
userdel username
但是,它只会从 /etc/passwd 文件中删除帐户详细信息。要同时删除用户的主目录,请使用 -r 标志,如下所示:
userdel -r username
作为预防措施,我们建议查找用户拥有的所有文件并将它们重新分配给任何其他现有用户帐户。使用 find 命令列出用户拥有的或分配给已删除或不与任何用户关联的用户 ID 的所有文件。
find / -user username -ls
find / -uid 504 -ls
find / -nouser -ls
Linux 用户帐户管理简而言之
本文演示了 Linux 用户帐户创建、删除和修改示例,并为任何想要进行系统管理和学习用户帐户管理的 Linux 初学者提供提示和技巧。
它还展示了如何编辑配置文件来定义 UID 和 GID 范围以及更改 Linux 中用户帐户创建的默认设置。