sudoers에서 규칙을 취소하는 방법은 무엇입니까?

sudoers에서 규칙을 취소하는 방법은 무엇입니까?

이제 sudoers는 /etc/sudoers.d개인화 규칙을 설정할 수 있는 하위 폴더를 지원합니다.

나는 이것을 사용하고 메인 /etc/sudoers파일을 변경하지 않고 싶습니다.

따라서 파일에서 /etc/sudoers.d/99_adjusts기본 사용자 지정 규칙을 설정 해제하고 싶습니다.

ALL   ALL=(ALL) ALL

나는 그것에 대해 언급을 피하려고 노력하고 있습니다 /etc/sudoers.
이전에 설정된 규칙을 취소할 수 있는 기능을 원합니다.

!ALL   ALL=(ALL) ALL

하지만 안타깝게도 위의 방법은 작동하지 않습니다. 매뉴얼 페이지를 보면 이 작업을 수행하는 데 어떤 트릭이 있는지 궁금합니다.

답변1

이전에 설정된 규칙을 취소할 수 있는 기능을 원합니다.

!ALL ALL=(ALL) ALL

하지만 안타깝게도 위의 방법은 효과가 없습니다

당연히 아니지. !ALL시작은 "모든 사용자에게 sudo 권한 부여"를 의미하므로 규칙은 아무 작업도 수행하지 않습니다. 그 줄을 따르는 것은 중요하지 않으며 어떤 것과도 일치하지 않습니다.

예를 들어 /etc/sudoers재정의하여 이 작업을 수행할 수 있습니다 ./etc/sudoers.dsudoers매뉴얼 페이지:

여러 항목이 사용자와 일치하면 순차적으로 적용됩니다. 일치하는 항목이 여러 개인 경우 마지막 항목이 사용됩니다(가장 구체적인 항목일 필요는 없음).

디렉터리 내용은 일반적으로 파일 끝에 있는 지시문을 통해 최상위 파일로 가져오기 때문에 sudoers.d규칙을 추가하면 최상위 파일에서 동일하게 일치하는 모든 규칙이 재정의됩니다.sudoers#includedir/etc/sudoers.d/*

관련 규칙을 재정의하는 올바른 구문은 다음과 같습니다.

ALL ALL = (ALL) !ALL

이 문장은 왼쪽에서 오른쪽으로 다음을 의미합니다.

  1. ALL사용자...
  2. ALL호스트 에서 ...
  3. 다음 명령은 사용자 집합 ALL중 하나로 실행할 수 있으며 기본값은 루트입니다...
  4. 어떤 명령은!ALL

마지막 비트는 "명령 없음"을 의미하므로 main 의 "모든 사람에게 모든 명령을 실행할 수 있는 모든 권한 부여" 규칙을 완전히 무시합니다 sudoers file.

/etc/sudoers그런 다음 권한 부여를 복원하려면 기본 파일에서 원하는 규칙을 추가 해야 합니다 . 파일에서 선택적으로 복사하여 붙여넣기만 하면 됩니다 /etc/sudoers. 기억하세요: 마지막 게임이 승리합니다.

경고하다:위 줄 뒤에 아무것도 넣지 않으면 sudo 권한이 제거됩니다.모두사용자. root사용자가 비활성화된 시스템 에서는 이 su명령이 작동하지 않으며, 이를 조작하면 실수로 컴퓨터가 잠길 위험이 높습니다. root다른 터미널에서 테스트하는 동안 별도의 터미널을 열어 두는 것이 좋습니다 .


이는 macOS 10.12 시스템에서 확인되었지만 #includedir기본 파일 하단에 이 지시어가 있는 모든 시스템 에서 작동합니다 sudoers.

답변2

AFAIK, sudo 구성 파일의 sudo 규칙은 삭제할 수 없습니다.

기본 구성 파일을 삭제 /etc/sudoers하고 해당 파일만 사용해야 합니다 /etc/sudoers.d/*. 두 가지를 동시에 사용하면 혼란이 생길 ​​수 있습니다.

관련 정보