Linux 中的用户和组管理
用户和组管理
由于 Linux 是一个多用户操作系统,因此可能有几个人同时登录并在给定的计算机上工作。从安全角度来看,允许用户共享同一帐户的凭据绝不是一个好主意。事实上,最佳实践要求使用与需要访问计算机的人数相同的用户帐户。
同时,可以预料到两个或更多用户可能需要共享对某些系统资源(如目录和文件)的访问权限。Linux 中的用户和组管理使我们能够实现这两个目标。
关于超级用户权限的说明
添加新用户需要处理您自己的帐户以外的帐户,这需要超级用户(即root)权限。这同样适用于其他用户或组管理任务,例如删除帐户、更新帐户以及创建和删除组。
这些操作使用以下命令执行:
adduser:向系统添加用户。
userdel:删除用户账户及相关文件。
addgroup:向系统添加一个组。
delgroup:从系统中删除一个组。
usermod:修改用户账户。
chage:更改用户密码过期信息。
sudo:以另一个用户的身份运行一个或多个命令(通常具有超级用户权限)。
相关文件:/etc/passwd(用户信息)、/etc/shadow(加密密码)、/etc/group(组信息)和/etc/sudoers ( sudo的配置)。
可以通过使用su命令切换到 root 用户或使用sudo来获得超级用户权限。Ubuntu 及其衍生版本默认使用后一种方法,在其他发行版中也比前一种方法更受欢迎。
还需要注意的是,与其他 Linux 版本不同,首次安装 Ubuntu 时创建的用户具有开箱即用的超级用户权限。您可以通过运行以下命令来验证您的计算机上是否安装了sudo
which sudo
在终端上。如果此命令返回关联文件的绝对路径(通常为/usr/bin/sudo),则表示软件包已安装。否则,您可以使用
apt-get install sudo
在 Debian 上,或者
yum install sudo
在 CentOS 或类似系统中。
添加新常规帐户
首先,让我们使用 Ubuntu 和 CentOS 作为代表性发行版创建一个名为pluralsight的新用户。
在 Ubuntu 或其衍生产品中,这很简单(您需要输入密码才能运行sudo):
sudo adduser pluralsight
在其他发行版中,首先以 root 身份登录并执行以下操作:
adduser pluralsight
系统可能会提示您设置新用户的初始密码和其他可选信息(例如全名、工作电话等)。这些信息将存储在/etc/passwd中,使用冒号作为字段分隔符。如果没有,您可以使用以下命令为新创建的名为pluralsight的帐户分配密码
passwd pluralsight
并输入两次。不用说,如果您使用的是 Ubuntu,则必须在上述命令前面加上sudo 。
当添加新用户时,会自动创建一个同名的组。这称为主要组。
/etc/sudoers 文件
现在我们已经创建了一个常规用户帐户,我们将解释如何使用它来执行用户管理任务。
要授予pluralsight超级用户权限,我们需要在/etc/sudoers中为其添加一个条目。此文件用于指示哪些用户可以以提升的权限(最有可能以 root 身份)运行哪些命令。
步骤 1 - 使用 visudo 打开 /etc/sudoers
尽管/etc/sudoers只是一个纯文本文件,但不能使用常规文本编辑器对其进行编辑。相反,我们将使用visudo命令。与其他文本编辑器不同,通过使用visudo,我们将确保 1) 没有其他人可以同时修改该文件,并且 2) 在保存更改时检查文件语法。
要启动visudo,只需输入命令并按 Enter。别忘了执行
sudo visudo
如果您使用的是 Ubuntu,则不是。无论如何,该文件将使用您的默认文本编辑器打开。
第 2 步 - 在 /etc/sudoers 中为新用户帐户添加条目
授予pluralsight超级用户权限的最简单方法是在/etc/sudoers底部添加以下行:
pluralsight ALL=(ALL) ALL
让我们解释一下这一行的语法:
首先,我们指出该规则指的是哪个用户(pluralsight)。
第一个ALL表示规则适用于使用相同/etc/sudoers文件的所有主机。现在,这意味着当前主机,因为同一文件不与其他机器共享。
接下来,(ALL) ALL告诉我们,pluralsight将被允许以任何用户身份运行所有命令。从功能上讲,这相当于(root) ALL。
步骤 3(可选):创建命令别名
除了使用上面概述的广泛权限之外,我们还可以通过将命令分组为称为别名的集合来限制特定用户可以执行的命令列表。
例如,我们可能希望只允许用户pluralsight使用adduser和usermod,而不使用其他命令。为此,我们可以在同一条目的末尾逐一列出命令(使用相应的绝对路径):
pluralsight ALL=(root) /usr/sbin/adduser, /usr/sbin/usermod
或者定义一个别名(我们可以随意命名,只要全部大写,例如USERMANAGEMENT):
Cmnd_Alias USERMANAGEMENT = /usr/sbin/adduser, /usr/sbin/usermod
pluralsight ALL=(root) USERMANAGEMENT
虽然后者需要两行,但人们通常更倾向于使用后者,因为它有助于保持/etc/sudoers更干净。无论如何,pluralsight将无法以 root 身份执行除上述命令之外的任何其他命令。
有关 /etc/sudoers 中可用选项的更多信息,请参阅man sudoers。
保存时,如果在文件中发现语法错误, visudo会提醒您,并指出发现错误的行,以便您更轻松地识别它。
切换用户
如果在保存/etc/sudoers中的最新更改时没有发现任何错误,我们就可以开始使用pluralsight执行用户管理任务了。为此,请使用su命令更改为该帐户。请注意,从这一点开始,如果您使用的是 CentOS 或类似系统,则无需使用 root 帐户。
此外,-l选项将允许提供类似于用户直接登录时所期望的环境:
su -l pluralsight
然后按 Enter。
请继续阅读本系列的下一篇指南《Linux 管理用户管理入门》。
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~