Ste*_*ett 3 linux redhat sudo groups
$ sudo -u fish -g fish bash
Sorry, user steve is not allowed to execute '/bin/bash' as fish:fish on myserver.
$ sudo -u fish bash
$ groups
fish
Run Code Online (Sandbox Code Playgroud)
-g 选项的用途是什么,为什么我不能使用它?RHEL 顺便说一句。
大概是因为您的 sudoers 文件没有指定这一点。这是两行之间的区别:第一行是默认值,但第二行也允许您作为任何组运行命令,这正是您想要的。
史蒂夫 ALL=(ALL) ...
史蒂夫 ALL=(ALL:ALL) ...
一个狂野的手册页出现了!
-g group 通常,sudo 将主要组设置为 passwd 数据库为运行命令的用户指定的组(默认为 root)。-g (group) 选项使 sudo 在主要组设置为 group 的情况下运行指定的命令。要指定 gid 而不是组名,请使用 #gid。当以 gid 运行命令时,许多 shell 要求使用反斜杠 ('\') 对“#”进行转义。如果未指定 -u 选项,则该命令将作为调用用户(不是 root)运行。在任何一种情况下,主要组都将设置为组。
您可能无法使用它,因为您没有权限。如果我正在正确阅读sudoers
(5) 联机帮助页,则需要将组列表显式指定到Runas_user
sudoers 条目的一部分,以便能够使用-g
:
如果只指定了第一个,则可以以列表中的任何用户身份运行该命令,但不能指定 -g 选项。