사용자에게 다른 사용자의 비밀번호를 변경할 수 있는 권한을 부여하려고 하지만 루트의 비밀번호는 변경할 수 없습니다.
/etc/sudoers 파일을 편집 visudo
하고 다음 줄을 추가했습니다.
myuser ALL=/usr/bin/passwd
이제 작동합니다. 사용자 "myuser"는 명령을 통해 자신의 비밀번호를 변경할 수 있지만
sudo passwd otheruser
루트의 비밀번호도 변경할 수 있습니다!
루트 비밀번호 변경 옵션을 제외하는 방법은 무엇입니까?
답변1
이것sudoers 매뉴얼 페이지(v1.9.1 링크) 실제로 다음과 같은 예가 있습니다.
pete HPPA = /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd *root*
사용자 pete는 HPPA 컴퓨터에서 루트를 제외한 모든 사람의 비밀번호를 변경할 수 있습니다. 명령줄 매개 변수는 단일 연결 문자열로 일치하므로 "*" 와일드카드는 여러 단어와 일치합니다. 이 예에서는 passwd(1)가 명령줄에서 여러 사용자 이름을 사용하지 않는다고 가정합니다. GNU 시스템에서는 passwd(1) 옵션을 사용자 매개변수 뒤에 지정할 수 있습니다. 따라서 이 규칙은 다음 사항도 허용합니다.
passwd username --expire
이는 바람직하지 않을 수 있습니다.
이 예를 상황에 맞게 조정할 수 있습니다.
myuser ALL=/usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd *root*
...설명서의 경고에 유의하세요.