Sudo
sudoers 文件和密碼僅適用於選定組
我在“生產”組中有 3 個使用者:John、Steve 和 Bob。在“銷售”組中有:Sam 和 Jack。
現在,我想允許 John 更改所有使用者的密碼,但僅限於“生產”組,因此他將無法對 Sam 和 Jack 進行任何更改。
在我的 /etc/sudoers 文件中,我有“生產”組中所有使用者的別名:
User_Alias PRODUCTION = %production
問題是我不知道如何寫這個:
john ALL =(root) /usr/bin/passwd steve, (root) /usr/bin/passwd bob, (root) /usr/bin/passwd jack
…使用我的 PRODUCTION 別名,所以如果有新人添加到該組中,也無需手動將他添加到 sudoers 文件中。
我已經在很多變體中嘗試過這樣的事情:
john ALL =(root) /usr/bin/passwd PRODUCTION
但它不起作用,此時我沒有更多的想法。
我將不勝感激任何線索,非常感謝!
這對於
sudoers
.您必須編寫一個腳本來檢查使用者是否屬於該組,
passwd
如果是則呼叫。
sudoers
然後必須進行配置,以便john
可以以 root 身份執行此腳本。當然,這個腳本的路徑必須只能對root
.#! /bin/bash group="groupname" test $# -ne 1 && exit 2 user="$1" if id "$user" | grep -qF "(${group})"; then echo passwd "$user" else echo "User '${user}' is not in group '${group}'." fi
稱為
./testscript username
我知道這個查詢已有 2 年的歷史,但我確實找到了一個不涉及腳本的答案。
您應該使用
visudo
來更新/etc/sudoers
文件。請參見sodoers(5)
手冊頁。你應該看到一個你應該能夠很容易地利用的例子:USER HOST = /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
定義為 USER 的使用者可以更改任何人的密碼,除了主機上的 root 使用者。請注意,這假設 passwd(1) 不會在命令行上使用多個使用者名。