우분투 : sudoers 파일을 지워 버렸습니다. 어떻게 고칠 수 있습니까?


11

/etc/sudoers파일 을 편집 하고 저장했지만 거기에 구문 오류가 있습니다. sudo vim /etc/sudoerssudo가 sudoers 파일이 유효하지 않다고 생각하기 때문에 이제는 할 수 없습니다 .

이 문제를 어떻게 해결할 수 있습니까?


답변:


6

시스템을 단일 모드로 부팅 한 다음 편집하십시오.


고마워, 내 우분투는 Virtualbox에서 실행 중입니다. 단일 사용자 모드로 부팅하려면 어떻게합니까?
프레드 바셋


부팅 할 때 grub 옵션을 얻지 못하지만, Ubuntu로 바로 부팅됩니다.
fred basset

<Ctrl> 또는 다른 것을 들고보십시오.
Ignacio Vazquez-Abrams

1
@red basset : vm이 시작되면 Esc 키를 여러 번 눌러 grub으로 이동 한 다음 복구 모드 옵션을 선택하십시오.
user9517

21

sudoers 파일을 직접 편집해서는 안됩니다. 사용 visudo-향후 이러한 구문 오류로부터 사용자를 보호합니다.

이 상황에서 복구하려면 단일 사용자 모드로 부팅하고 파일을 편집하거나 livecd를 부팅하여 동일한 작업을 수행하십시오.


고마워, 나는 visudo가 어떻게 다른지 궁금해했다. 이제 단일 사용자 모드로 부팅하는 방법을 알아봐야합니다. 내 우분투가 Virtualbox에서 실행 중입니다.
프레드 바셋

1
visudo는 sudoers 파일의 사본을 편집하게합니다. sudoers 파일을 저장할 때 유효성이 검증 된 경우에만 sudoers 파일을 대체합니다. EDITOR 변수로 지정된 편집기를 사용하므로 원하는 편집기를 사용할 수 있습니다. 파일을 편집하고 여전히 유효한지 확인하려는 경우 검사 모드에서도 사용할 수 있습니다.
BillThor


1

그건 그렇고, 루트 암호가 있다면 그냥 로그인하고 원래대로 설정하십시오.

chmod 0440 / etc / sudoers

이렇게하면 단일 사용자 모드로 부팅하거나 livecd에서 부팅하는 것을 피할 수 있습니다.

제 경우에는 서버를 중단시킬 여유가 없었습니다.


1

Docker가 설치되어 있고 사용자가 docker그룹 의 구성원 인 경우 다시 부팅하거나 사용자가 수행하지 않고도이 피클 (및 일부)에서 쉽게 벗어날 수 있습니다.

  1. $ docker run -it --rm -v '/etc/:/root/host.etc/' debian bash
  2. apt-get update && apt-get install [vim|nano|whatever]
  3. cd ~/host.etc/
  4. 문제 파일 복구
  5. exit

도커? Docker를 원래 질문의 어느 곳에서 보셨습니까?
사슴 사냥꾼

2
이 질문은 asker의 환경에 대해 아무것도 명시하지 않았으며 현재 2015 년으로 Docker가 설치되어 있음을 의미하므로 나에 대한 당신의 태도 나 내 기여에 대한 욕구를 이해하지 못합니다. 이 상황에서 다른 누군가가 오늘날 GitHub에서 23.5k 명의 사람들이 주연 한 소프트웨어를 설치했을 것이라는 것은 결코 잊을 수없는 일이 아닙니다. 경우 pkexec빠르고 간단 거의이다 재부팅없이 사용할 수 없습니다 다음이 대체 방법을 제공 어떤 이유로, 위해도.
Adrian Günter
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.