Linux操作系统 sudo
命令用于 root
普通用户的特权。 /etc/sudoers
文件用于配置 sudo
. Sudoers文件提供了可以运行 sudo
命令。Sudoers还用于限制用户可以运行的命令。
用Sudo运行命令
Sudo命令将接受给定的命令并查看sudoers文件。如果给定用户有权使用sudo运行命令,则会询问密码。如果允许使用无密码sudo,命令将以root权限运行。
现在我们要跑了 cat /etc/shadow
命令将列出用户密码哈希。普通用户无权打印密码哈希。
$ sudo cat /etc/shadow

指定用户
如果我们逃跑 sudo
命令而不显式指定用户名将使用当前用户帐户。但是我们也可以用 -u
选项。
在本例中,我们将运行 ls /
用户帐户为ismail的命令。
$ sudo -u ismail ls /
Sudoers文件
Sudoers文件是 sudo
命令。所有指定的规则都将在 sudo
用法。这里是默认的Sudoers文件。
# User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL # See sudoers(5) for more information on "#include" directives: #includedir /etc/sudoers.d
一般语法非常简单。我们首先指定要应用规则的用户名或组名。然后我们提供用户可以运行的命令。在这个配置文件中,所有命令都可以在给定的用户和组中运行。
相关文章: Linux用户管理
授予用户Sudo权限
我们可以向sudoers文件添加新规则。首先,我们将打开sudoers文件 visudo
命令。
$ sudo visudo
我们将为可以运行所有命令的用户mike添加以下行。
mike ALL=(ALL:ALL) ALL
赋予组Sudo权限
我们还可以使用以下命令提供组sudo权限。组名为 operator
. 我们补充说 %
在组名之前。
%operator ALL=(ALL) ALL
无密码Sudo
每次我们发布 sudo
命令我们需要提供用户的密码。这可能会成为普通人的噩梦 sudo
命令用户。我们将添加 NOPASSWD
到 ALL
规则的一部分。
在本例中,我们配置 sudo
对于用户帐户 ismail
无密码。
ismail ALL = (ALL) NOPASSWD: ALL
列出Sudo允许的命令
Sudo命令可以限制给定用户使用命令的权限。我们可以用 -l
选项列出sudo允许的命令。实际上,将列出允许运行的目录或命令。
$ sudo -l
