Sudo

在什麼情況下我可以看到 sudo 的“–preserve-groups”選項的效果?

  • April 13, 2022

給定以下使用者:

$ whoami
admin
$ groups
staff everyone admin groupA

$ whoami
user
$ groups
staff everyone groupB

我試圖了解該--preserve-groups選項的確切影響。

$ whoami
admin

$ sudo --preserve-groups -u user groups
staff everyone groupB

$ sudo --preserve-groups -u user -s groups
staff everyone groupB

$ sudo --preserve-groups -u user -i groups
staff everyone groupB

我閱讀選項文件的方式我希望從執行的命令中看到的組列表來自呼叫使用者而不是來自目標使用者。但似乎並非如此。

顯然它確實像我預期的那樣工作,只是groupsCPython 以一種對 sudo 工作一無所知的方式檢索組。

CPython (3.8.9) 將返回目標使用者組,無論--preserve-groups

python3 -c "import os; print(os.getgroups())"

但以下 Swift 程序將按預期工作:

import Darwin

let count = Int(getgroups(0, nil))
var groups = [gid_t](repeating: 0, count: count)
getgroups(Int32(count), &groups)
print(groups.map({"\($0)"}).joined(separator: ", "))

引用自:https://unix.stackexchange.com/questions/698894