我不明白这两个命令的区别
USER ALL=(ALL) NOPASSWD: ALL
和
USER ALL=(OTHERUSER) NOPASSWD: ALL
有人能解释一下 () 的变化吗?谢谢
答案1
用户规范的基本结构是
who where = (as_whom) what
。
和
保留字
ALL
是一个内置别名,它总是导致匹配成功。
就您而言,区别在于(as_whom)
领域:
(ALL)
意味着可以USER
以任何用户身份运行命令。(OTHERUSER)
意味着可以以USER
如下方式运行命令OTHERUSER
(例如sudo -u OTHERUSER whoami
)。注意,这并不意味着
USER
不能以 的形式运行命令YETANOTHERUSER
。如果USER
尝试以 的形式运行某些命令,则YETANOTHERUSER
中的行将(OTHERUSER)
不匹配,解析器将继续;后面的某行可能会匹配。