细粒度的sudoers配置(允许的命令行参数)


20

是否有直接允许用户运行的方式(例如)

/usr/bin/pacman -S -u

作为根,不允许他奔跑

/usr/bin/pacman -S -u some_package

线

user ALL=(root) NOPASSWD: /usr/bin/pacman -S -u

同时允许

user ALL=(root) NOPASSWD: /usr/bin/pacman -S -u ""

在语义上似乎是等效的。

Answers:


27

对于您的情况,请尝试以下操作:

Cmnd_Alias PACMAN = /usr/bin/pacman -S -u, ! /usr/bin/pacman -S -u some_package
user ALL=(root) NOPASSWD: PACMAN

您可以在sudoers文件中使用shell全局模式,例如[az],[0-9]等,以排除与特定模式匹配的软件包。


3

编写一个脚本,该脚本可以执行所需的操作,并对其进行sudo访问。

还要确保在此环境中运行的任何环境都根本无法访问网络,或者他们可以使用自己的dns欺骗镜像,然后在pacman安装该镜像时以root身份运行任意代码。


那不是一种优雅的方式,sudo默认情况下支持确切的给定情况
matthias krull 2010年

1
不是最好的解决方案,但是为安全警告+1
Aaron J Lang
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.