Sudoers 파일이 엉망이 되었습니다.

Sudoers 파일이 엉망이 되었습니다.

실수로 파일에 실수를 했고 sudoers, 이제 파일을 변경하려고 하면 권한 거부 메시지가 표시되므로 수정할 수 없습니다. sudo파일을 여는 데 사용하면 구문 오류가 발생하고 유효한 sudoers소스를 찾을 수 없으며 명령이 실행되지 않습니다. 저는 데비안의 일종인 raspbian을 사용하고 있습니다.

이 캐치 22에서 벗어나는 방법을 아는 사람이 있습니까?

답변1

  1. 비밀번호를 알고 있으면 root(설정되어 있음) 을 사용하여 su편집 root할 수 있습니다 /etc/sudoers.
  2. 루트 파일 시스템이 SD 카드에 있는 경우 카드 리더기가 있는 경우 이를 밀어내고 /etc/sudoersPC나 다른 장치에서 편집할 수 있습니다.
  3. U-Boot(부트로더) 명령줄(일반적으로 키보드의 버튼을 누르거나 UART를 통해)을 입력하고 1Linux 커널 명령줄에 추가하여 단일 사용자 모드로 들어갈 수 있습니다. 이 모드에서는 root편집할 수 있습니다 /etc/sudoers. 또한보십시오이것.

답변2

단일 사용자 모드로 부팅해야 합니다.

https://serverfault.com/questions/482079/debian-boot-to-single-user-mode

루트 사용자로서 sudoers 파일을 편집하여 문제를 해결할 수 있습니다. visudovisudo는 파일을 저장하기 전에 파일에 대한 구문 검사를 수행하므로 이 명령을 사용하여 나중에 이 작업을 다시 수행할 필요가 없도록 sudoers 파일을 편집하는 것이 좋습니다 .

답변3

클라우드 인스턴스를 사용하는 경우 좀 더 문제가 발생합니다.

distro에 따라 기술이 있지만 Docker가 이미 설치되어 실행 중인 경우 일반적으로 Docker 컨테이너를 통해 문제를 해결할 수 있습니다. 이는 일반적으로 Docker 서비스가 루트로 실행되고 컨테이너 내부에 탑재된 볼륨에 수행된 모든 작업이 호스트의 루트로 영향을 받기 때문입니다.

호스트에서:

docker run --rm -ti -v /etc:/usr/local/etc busybox sh

"busybox"는 다운로드하는 데 시간이 오래 걸리지 않는 멋진 작은 배포판입니다. 셸을 사용할 수 있는 Docker 이미지가 이미 있는 경우 해당 이미지를 사용하세요.

Docker 컨테이너에서:

cd /usr/local/etc
vi sudoers

디렉터리 에 잘못된 파일을 추가했을 수 있습니다 /etc/sudoers.d/. 이 경우 해당 파일을 제거하면 됩니다.

컨테이너를 종료하면 sudo다시 할 수 있습니다.

아휴!

관련 정보