Linux

為什麼我不能執行 sudo -g?

  • April 5, 2012
$ 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

-g 選項的用途是什麼,為什麼我不能使用它?RHEL 順便說一句。

大概是因為您的 sudoers 文件沒有指定這一點。這是兩行之間的區別:第一行是預設行,但第二行也允許您以任何組的身份執行命令,這正是您想要的。

  • 史蒂夫 ALL=(ALL) …
  • 史蒂夫 ALL=(ALL:ALL) …

出現一個狂野的手冊頁!

-g group 通常,sudo 將主要組設置為 passwd 數據庫為執行命令的使用者指定的組(預設情況下,root)。-g(組)選項使 sudo 執行指定的命令並將主要組設置為組。要指定 gid 而不是組名,請使用 #gid。當以 gid 形式執行命令時,許多 shell 要求使用反斜杠 (’') 對“#”進行轉義。如果未指定 -u 選項,則該命令將以呼叫使用者(而非 root)身份執行。在任何一種情況下,主組都將設置為組。

您可能無法使用它,因為您沒有權限。如果我正在閱讀sudoers(5) 手冊頁,您需要明確指定一個組列表到Runas_usersudoers 條目的一部分,以便能夠使用-g

如果只指定了第一個,則該命令可以作為列表中的任何使用者執行,但不能指定 -g 選項。

引用自:https://serverfault.com/questions/376864