오류 /etc/sudoers SSH 세션이 실행 중인 동안 마지막 관리자 액세스 권한이 제거될 수 있습니다. 이러한 위험은 종종 잘못 작성된 규칙, 잘못된 명령 경로 또는 너무 빨리 추가된 파일에서 비롯됩니다. /etc/sudoers.d.
저는 편집기를 파일에서 직접 실행하여 sudoers 파일을 수정하는 일은 절대 없습니다. 비쥬도 편집 중에는 설정을 잠그고 저장하기 전에 구문을 확인하십시오. 원격 서버에서는 최종 테스트를 할 때까지 두 번째 루트 세션을 열어 두는 것도 중요합니다. 이러한 안전 장치는 명령 자체만큼이나 중요합니다.

규칙을 수정하기 전에 sudo 권한이 있는지 확인하세요.
먼저, 계정에 sudo 권한이 여전히 있는지 확인하고 사용할 수 있는 명령어가 무엇인지 확인하십시오.
sudo -v
sudo -l
여러 떼
sudo -v 민감한 명령을 실행하지 않고 인증 정보를 검증합니다. sudo -l 계정에 실제로 적용된 규칙을 표시합니다. 이 단계가 실패하면 이 세션에서 sudoers를 변경하지 마십시오.
다음으로, 두 번째 터미널을 열고 그곳에서 루트 세션을 유지하십시오.
sudo -i
WHO
편집하는 동안 이 세션을 닫지 마십시오. 원격 컴퓨터에서는 콘솔, KVM 또는 복구 패널에 대한 액세스 권한도 확인하십시오. 가이드를 참조하십시오. Linux 계정 및 그룹 권한을 부여하기 전에 대상 계정을 확인하는 데 도움이 될 수 있습니다.
sudoers 파일의 권한을 변경하지 않고 저장하세요.
편집하기 전에 메인 파일을 루트 사용자 전용 폴더에 복사하세요. -가지다
sudo cp -a /etc/sudoers "/root/sudoers.backup-$(date +%F-%H%M)"
sudo stat -c '%A %a %U:%G %n' /etc/sudoers /etc/sudoers.d
많은 배포판에서, /etc/sudoers ~에 속하다 루트:루트 모드가 있는 사백사십사용하는 배포판의 정책이 다른 경우 권한을 임의로 수정하지 마십시오. 먼저 현재 상태를 확인하고 백업 파일의 정확한 경로를 보관하십시오.
메인 설정 화면을 열려면 다음 명령을 실행하십시오.
이 도구는 두 개의 동시 편집을 방지하기 위해 잠금 기능을 사용합니다. 닫을 때 구문을 분석하고 일반적으로 유효하지 않은 구성은 설치를 거부합니다. 도구에서 오류가 발생하면 편집기로 돌아가서 수정하십시오. 이해하지 못하는 파일을 강제로 저장하지 마십시오.
sudoers 규칙은 일반적으로 사용자 또는 그룹, 관련된 호스트, 실행 ID, 그리고 승인된 명령 순으로 구성됩니다. 계정을 승인하려면 앨리스 Nginx만 재시작하고 확인하려면 먼저 바이너리 경로를 확인하십시오.
명령 -v systemctl
명령이 반환되는 경우 /usr/bin/systemctl규칙은 다음과 같은 형태를 취할 수 있습니다.
alice ALL=(root) /usr/bin/systemctl is-active nginx, /usr/bin/systemctl restart nginx
사용하지 마십시오 NOPASSWD 습관적으로 그렇게 하는 경우가 있습니다. 자동화를 위해서는 계정 하나, 명령어 하나, 그리고 제어된 인수로 제한해야 합니다. 셸, 편집기 또는 다른 프로그램을 실행할 수 있는 명령어에 대한 접근 권한을 광범위하게 부여하는 것은 사실상 루트 권한을 완전히 부여하는 것과 마찬가지입니다.
/etc/sudoers.d에 깨끗한 파일을 생성하세요.
-에프 :
sudo visudo -f /etc/sudoers.d/administration
공백, 마침표 또는 저장 문자를 포함하지 않고 간단한 이름을 선택하세요. 예: ~지침에 따르면 @includedir 배포판에서 사용되는 일부 이름은 무시될 수 있습니다. 등록 후 소유자와 모드를 확인하세요.
sudo chown root:root /etc/sudoers.d/administration
sudo stat -c '%A %a %U:%G %n' /etc/sudoers.d/administration
일반 튜토리얼 리눅스에서 sudo 사용자, 그룹 및 별칭별 위임에 대한 세부 정보를 제공합니다. 여기서 목표는 더욱 명확합니다. 이전 버전으로 되돌릴 수 있는 기능을 유지하면서 검증 가능한 규칙을 설치하는 것입니다.
테스트하기 전에 전체 구성을 확인하십시오.
편집이 완료되면 전체 검사를 실행하세요. 이 명령은 메인 파일과 해당 파일이 참조하는 포함 파일들을 검증합니다.
sudo visudo -c
분석 결과는 분석된 파일의 구문이 올바르다는 것을 보여줘야 합니다. 만약 구문 오류가 보고된다면, 해당 파일을 다시 열어서 분석하십시오. visudo -f검사가 실패하는 동안에는 컴퓨터를 재시작하거나 루트 세션을 종료하지 마십시오.
유지된 루트 세션에서 대상 계정의 권한을 표시합니다.
sudo -l -U 앨리스
이 읽기 기능을 통해 로드되지 않은 규칙, 잘못된 사용자 이름 또는 예상보다 훨씬 광범위한 권한 부여를 식별할 수 있습니다.
루트 권한을 종료하기 전에 새 세션에서 테스트하십시오.
해당 계정으로 세 번째 로그인을 시작하십시오. 이미 캐시된 sudo 티켓이 있는 세션을 그대로 사용하지 마십시오. 해당 캐시를 무효화하고 권한 목록을 요청한 다음, 승인된 명령만 실행하십시오.
sudo -k
sudo -l
sudo systemctl status nginx
또한 예상치 못한 명령이 여전히 거부되는지 확인하십시오. 사용자가 필요 이상으로 권한을 획득하지 않고 예상되는 액세스 권한을 유지하면 규칙이 올바른 것입니다. 이 테스트를 완료한 후에만 백업 루트 세션을 닫으십시오.
유효성 검사 또는 접근 권한 획득에 실패할 경우 sudoers를 복원합니다.
만약에 visudo -c 오류가 발생하면 열려 있는 루트 세션에서 오류가 있는 조각을 수정하십시오. 기본 저장 파일로 되돌리려면 경로를 실제 백업 경로로 바꾸십시오.
cp -a /root/sudoers.backup-YYYY-MM-DD-HHMM /etc/sudoers
visudo -c
관리자 세션이 모두 종료된 경우, 벤더 콘솔, 복구 모드 또는 실제 운영 환경을 사용하여 시스템을 마운트하고 구성을 복구하십시오. 권한이 없는 계정으로 sudoers 파일을 편집하는 것은 작동하지 않습니다.
성공적인 인증 후 거부된 이유를 파악하려면 현재 시작 시의 sudo 이벤트를 확인하고, 배포판에서 인증 로그를 사용하는 경우 인증 로그도 확인하십시오.
sudo journalctl -t sudo -b --no-pager
sudo tail -n 100 /var/log/auth.log
잠금, 제어 및 옵션에 관한 문서입니다. -에프. 선적 서류 비치 sudoers(5) 이 문서에서는 구문, 포함 항목 및 명령 규칙을 설명합니다. 무엇보다도 다음 순서를 준수하십시오: 백업 액세스, 저장, 편집. 비쥬도