루트가 아닌 사용자의 비밀번호를 관리할 권한이 있는 사용자

루트가 아닌 사용자의 비밀번호를 관리할 권한이 있는 사용자

사용자에게 다른 사용자의 비밀번호를 변경할 수 있는 권한을 부여하려고 하지만 루트의 비밀번호는 변경할 수 없습니다.

/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*

...설명서의 경고에 유의하세요.

관련 정보