了解 Sudoers 文件中的权限

了解 Sudoers 文件中的权限

我正在尝试理解sudo的文档Debian 维基。对此,它使用了下面的两个示例。但是我不明白它们之间的区别。与 root 的ALL:ALL( ) 选项相比,为什么组 sudo 具有 ( ) ALL?命令的每个部分的作用是什么。

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

#Default rule for root.
root    ALL=(ALL) ALL

答案1

解释%sudo ALL=(ALL:ALL) ALL:-

  • %sudo- 这团体(命名sudo)允许使用sudo

  • 一个ALL表示允许sudo从任何终端或任何主机(在任何机器上)

  • (ALL:ALL)表示命令可以运行为(User:Group)
  • 最后All表示所有命令都可以执行

解释root ALL=(ALL) ALL

  • root- 这用户(root) 允许以任何用户身份在任何机器上执行所有操作

解释(ALL:ALL):(运行为(User:Group)

  • 一个“ALL”表示用户(如果是root)或组成员(如果是%admin)可以运行命令和所有用户一样

  • 第二“ALL”表示用户(即root)或组成员(即%admin)可以运行命令和所有团体一样。

如果仅(ALL)使用,那么它不允许作为另一个组运行,而(ALL:ALL)以所有用户和所有组身份运行

答案2

ALL:ALLALLin的区别在于RunAs可以使用的用户和组的组合。例如:

# sudo -u muru -g git id
Sorry, user root is not allowed to execute '/usr/bin/id' as muru:git on muru-laptop.
# sudo -u muru -g muru id
uid=1000(muru) gid=1000(muru) groups=1000(muru),10(wheel),21(locate),102(polkitd),190(systemd-journal)
$ sudo -u muru -g git id
uid=1000(muru) gid=997(git) groups=997(git),10(wheel),21(locate),102(polkitd),190(systemd-journal),1000(muru)
$ id    
uid=1000(muru) gid=1000(muru) groups=1000(muru),10(wheel),21(locate),102(polkitd),190(systemd-journal)

前两个命令是root在我的普通用户下运行的,第三个和第四个命令是(ALL:ALL).

对于 only ALL-g只能用于指定用户的主要组 - 这并不比-g根本不指定好。ALL:ALL可用于给出有效用户和组的任意组合。

我不知道为什么会有这个(人为的)限制。

相关内容