sudoers
파일 에서 옵션 없이 실행 중인 명령을 제한할 수 있습니다.
예를 들어 /bin/su
실패하고 su
4자를 초과하는 모든 항목이 실행되어야 합니다. 예:
sudo su daniel
실행해야
michael ALL=(ALL) NOPASSWD:ALL, /bin/su [a-z]{5,}
이 용어를 사용해 보세요
어쨌든 이것을 달성 할 수 있습니까?
답변1
sudoers 명령 사양에 와일드카드 문자를 사용할 수 있습니다. /bin/su
5개의 소문자로 시작하고 그 뒤에 임의 개수의 다른 인수가 오는 인수로만 실행을 허용하려면 다음을 사용할 수 있습니다 .
michael ALL=(ALL) NOPASSWD: /bin/su [a-z][a-z][a-z][a-z][a-z]*
가변 길이 문자열과 일치할 수 있는 유일한 와일드카드는 *
인수 경계와도 일치하므로 인수가 고정 크기가 아닌 한 단일 인수로 제한할 수 없습니다.
더 복잡한 규칙이 필요한 경우 래퍼 스크립트 실행을 허용하고 래퍼 스크립트에서 매개변수 검사를 수행하도록 sudo를 구성합니다.
…: ALL, /bin/su …
임의의 명령이 이미 허용되어 있으므로 의미가 없습니다 ALL
. 와 같습니다 …: ALL
.
sudoers 구성에서 원하는 의미가 무엇인지 명확하지 않습니다.목표보다는 구체적인 구현에 중점을 둡니다.. Michael이 비밀번호 없이 일부 사용자로서 임의의 명령을 실행하도록 허용하려는 경우 호출은 su
이상한 간접 방법입니다. sudo는 이미 권한을 높였습니다. 왜 여전히 su를 사용해야 합니까? 일련의 사용자를 정의하고 Michael이 이들 중 하나로 임의의 명령을 실행할 수 있도록 허용합니다.
User_Alias target_users = alice, charlie, dominique
michael ALL = (target_users) NOPASSWD: ALL