Sudo
在什麼情況下我可以看到 sudo 的“–preserve-groups”選項的效果?
給定以下使用者:
$ 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
我閱讀選項文件的方式我希望從執行的命令中看到的組列表來自呼叫使用者而不是來自目標使用者。但似乎並非如此。
顯然它確實像我預期的那樣工作,只是
groups
CPython 以一種對 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: ", "))