sudoers 파일을 직접 수정하는 대신 visudo를 사용해야하는 이유는 무엇입니까?


83

나는 당신이 사용할 sudo수있는 사람과 그것으로 무엇을 할 수 있는지 수정하고 싶다면 사용해야한다는 것을 이해합니다 visudo. / etc / sudoers 파일을 직접 수정해서는 안됩니다.

그것은 그 무엇 visudo직접하지 않는 파일을 수정하는 것이 무엇입니까? 무엇이 잘못 될 수 있습니까?

답변:


104

visudo실제로 파일을 덮어 쓰기 전에 파일 구문을 확인 sudoers합니다.

일반 편집기를 사용하는 경우 구문을 엉망으로 만들고 save ... sudo는 (아마도) 작동을 멈출 것이며, /etc/sudoers로만 수정할 수 있기 때문에 root(루트를 얻는 다른 방법이없는 한 ) 중단 됩니다 .

또한 편집 내용이 하나의 원자 작업이되도록합니다. 이 잠금은 다른 사람이 신중하게 고려한 구성 변경을 망칠 수 없도록해야하는 경우 중요합니다. 루트 이외의 다른 파일을 편집하기 위해서는 이러한 편집 충돌을 방지 /etc/sudoers하는 sudoedit명령이 있습니다.


3
와우, sudoedit에 대해 몰랐어요. OS X에서는 작동하지 않으므로 GNU 도구라고 생각합니까? 어쨌든, 여기 멋진 정보. 나는 항상 수동으로 편집했지만 아무런 문제가 없었습니다. 이제 운이 좋았고 도구가 재앙을 예방할 수 있음을 이해합니다. 감사!
Harv

2
@Harv. GNU는 없으며 sudoOS X에는 GNU 도구가 있습니다. sudo가 처음으로 오픈 소스 응용 프로그램으로 만들어 졌으므로 많은 구현 이유가 없을 것입니다. sudosudoedit같은 명령이있는 sudo것처럼 동작 sudo -e으로 전화했을 때 sudoedit. OS X가 sudoedit -> sudo링크 를 추가하는 것을 잊어 버린 것만 같지만 argv [0]을 설정 하여 동일한 동작 을 수행하도록 계속 sudo -e호출하거나 사용할 수 있어야합니다 . sudosudoedit
Stéphane Chazelas

흥미롭게도 visudo기본적으로 nano를 사용합니다.
Tim

3
@Tim : "실제"기본값은 vi이지만 다른 것을 사용하도록 구성 할 수 있습니다. 따라서 nano는 distro / setup의 기본값이 될 수 있습니다. 참고 항목 man 페이지를 .
Mat

2
@ AngularInDepth.com, 그 결과는 분명합니다. 잘못된 sudoers 파일을 저장하면 시스템에서 파싱 할 수 없습니다. 따라서 sudo vim /etc/sudoers구문 sudo vim /etc/sudoers을 작성하고 수정하면 다시 수정할 수 없습니다. 실제로 시스템이 파일을 구문 분석 할 수 없으므로 sudo를 통해 권한을 상승시키는 모든 기능이 손실됩니다.
스펜서 D

23

visudo 매뉴얼 페이지에서 :

visudo는 여러 개의 동시 편집에 대해 sudoers 파일을 잠그고 기본 상태 검사를 제공하며 구문 분석 오류를 검사합니다. sudoers 파일이 현재 편집중인 경우 나중에 다시 시도하라는 메시지가 표시됩니다.

또한 serverfault 에서이 답변을 확인하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.