그룹(이름 "group1", id = 1234라고 가정)과 사용자(이름 "user1", id = "4321"이라고 가정)가 있습니다. 나는 두 가지 일을 하고 싶다:
- 사용자가 그룹 내 다른 구성원의 비밀번호를 변경하도록 하고 싶지만오직이 그룹에서.
- 그룹의 모든 구성원이 매번 암호를 사용하지 않고도 재부팅/종료 명령을 사용할 수 있기를 바랍니다.
나는 이 페이지를 읽었습니다(https://help.ubuntu.com/community/Sudoers) 하지만 여전히 문제를 해결할 수 없습니다.
답변1
그룹 ID가 "foo"라고 가정합니다.
visudo를 사용하여 sudo 설정을 변경합니다.
% 기호는 그룹을 식별합니다.
%foo ALL = (root) /usr/bin/reboot
비밀번호 변경의 경우 활동을 제한하는 스크립트를 사용해야 합니다. sudo가 모든 작업을 수행할 수는 없습니다.
visudo add를 사용하여 특수 사용자가 peewee라고 가정합니다.
User_Alias SPECIAL peewee
SPECIAL ALL = (root) NOPASSWD: /root/special_passwd.shl
루트 사용자로서:
mkdir /root
chmod 750 /root
이것은 완전히 테스트되지 않았습니다. 이 스크립트의 이름을 Special_passwd.shl로 지정하고 루트 디렉터리에 배치합니다. 권한 = 750
#!/bin/bash
if [ $# -eq 2 ] ; then
# echo username:passwd | chpasswd is the syntax
grp=$(/usr/bin/id -g "$1")
if [ "$grp" = "1234" ]; then
echo ${1}:${2} | /usr/bin/chpasswd
[ $? -eq 0 ] || echo 'password change failed'
fi
else
echo 'No password change: requires username, new password'
fi
이에 대한 시도를 보여주는 것을 고려해야 합니다. 이 스크립트는 시작 버전이며 프로덕션용이 아닙니다.