根据/etc/sudoers
(Fedora 13) 中的评论:
## Syntax:
##
## user MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
Run Code Online (Sandbox Code Playgroud)
我的两个相关问题:
ALL=(ALL) ALL
以下行中的含义是什么:
root ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)我已经测试了这两行,但我无法弄清楚它们在功能上有何不同:
superadm ALL=(ALL) ALL
superadm ALL=ALL
Run Code Online (Sandbox Code Playgroud)我已经阅读了手册,但语法规范很难遵循。我已经得出该(ALL) ALL
部分是命令和标签规范,但我仍然无法理解它。
Sté*_*nez 97
注意:我正在回答1.,因为 Ignacio已经回答了 2. .
在以下sudo
条目中:
superadm ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)
有四个字段:
ALL
.superadm
将能够以更高权限运行。ALL
表示所有命令。否则使用逗号分隔的命令列表。(…)
是可选的)指定superadm
用户将能够以哪些用户(和组)运行以下命令。ALL
意味着他们可以选择任何东西(不受限制)。如果省略该字段,则与(root)
.例子:
alan ALL = (root, bin : operator, system) /bin/ls, /bin/kill
Run Code Online (Sandbox Code Playgroud)
在这里,alan
允许运行两个命令/bin/ls
和/bin/kill
as root
(或bin
),可能具有附加operator
或system
组权限。
因此alan
可以选择以用户身份运行ls
,bin
并具有这样operator
的组权限:
sudo -u bin -g operator /bin/ls /whatever/directory
Run Code Online (Sandbox Code Playgroud)
如果-u
省略,则与-u root
. 如果-g
省略,则不会授予额外的组权限。
从sudoers(5)
手册页,说明部分,Runas_Spec小节:
第一Runas_List指示哪些用户的命令可以被执行为经由
sudo
的-u
选项。
...
如果未指定 Runas_Spec,则命令可以作为运行,
root
并且可以不指定组。
因此,尝试将命令作为 运行时没有功能差异root
,即,不使用-u
with 时sudo
。尝试以其他用户身份运行命令时,差异很重要;后者会阻止这种情况,但前者会允许。
归档时间: |
|
查看次数: |
48745 次 |
最近记录: |