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

nis*_*isc 21 linux security sudo console permissions

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

/usr/bin/pacman -S -u
Run Code Online (Sandbox Code Playgroud)

以 root 身份,不允许他运行

/usr/bin/pacman -S -u some_package
Run Code Online (Sandbox Code Playgroud)

?

线

user ALL=(root) NOPASSWD: /usr/bin/pacman -S -u
Run Code Online (Sandbox Code Playgroud)

允许两者,并且

user ALL=(root) NOPASSWD: /usr/bin/pacman -S -u ""
Run Code Online (Sandbox Code Playgroud)

似乎在语义上是等价的。

mat*_*ull 29

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

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

您可以在 sudoers 文件中使用 [az]、[0-9]、* 等 shell glob 模式来排除匹配特定模式的包。