sudoedit가 임시 디렉토리에 쓰는 이유는 무엇입니까?


10

sudoedit파일을 만드는 데 사용 했습니다.

 $ sudoedit /etc/systemd/system/apache2.service

그러나 파일을 저장하려고 할 때 임시 디렉토리 (/ var / temp / blahblah)에 썼습니다. 무슨 일이야? 시스템 디렉토리에 저장하지 않는 이유는 무엇입니까?

답변:


22

요점은 sudoedit권한이없는 편집기를 실행하는 동안 사용자가 허용되지 않은 파일을 편집 할 수 있도록하는 것입니다. 이를 위해 sudoedit편집 할 파일을 임시 위치로 복사하고 요청한 사용자가 파일을 쓸 수 있도록하고 구성된 편집기에서 파일을 엽니 다. 그렇기 때문에 편집기는 관련없는 파일 이름을 임시 디렉토리에 표시합니다. 편집기가 종료되면 sudoedit실제로 변경되었는지 확인하고 필요한 경우 변경된 임시 파일을 원래 위치로 다시 복사합니다.


IIRC 일부 편집자들은 컴퓨터를 바꾸지 않는 변경 사항이 없는지 확인하기 위해 기본적인 위생 검사를 수행하지만 이것이 얼마나 일반적인지 잘 모르겠습니다.
기금 모니카의 소송

1
@NicHartley : 컴퓨터를 벽돌로 만드는 다양한 방법이 많이 있기 때문에 일반적인 경우에는 그렇게하기가 어렵습니다. 예를 들어 visudofor 와 같이 응용 프로그램에 특정한 경향이 있습니다 /etc/sudoers.
케빈

@ 케빈 오, 으악, 나는 혼란스러워 생각 visudo합니다 sudoedit. 나는 visudo그것을 확실히 알고 있었다. 정리해 주셔서 감사합니다!
기금 모니카의 소송

1

이것은 잘 설명되어 . 의 설명 ( 에 해당합니다)는 말한다 :sudo-esudoedit

-e

-e(편집) 옵션 대신 명령을 실행하는 사용자는 편집 하나 이상의 파일을 원하는, 그 나타냅니다. 명령 대신 sudoedit보안 정책을 참조 할 때 문자열 " "이 사용됩니다. 정책에 따라 사용자에게 권한이 부여되면 다음 단계가 수행됩니다.

  1. 소유자가 호출 사용자로 설정하여 편집 할 파일로 임시 사본이 작성됩니다.
  2. 정책에 의해 지정된 편집기가 임시 파일을 편집하기 위해 실행됩니다. sudoers정책 용도 SUDO_EDITOR, VISUALEDITOR(이 순서로) 환경 변수. 아무도 경우 SUDO_EDITOR, VISUAL또는이 EDITOR설정되어 있지 않은, 편집기에 나열된 첫 번째 프로그램 sudoers(5)옵션이 사용됩니다.
  3. 파일을 수정 한 경우 임시 파일이 원래 위치로 다시 복사되고 임시 버전이 제거됩니다.

지정된 파일이 없으면 작성됩니다. 로 실행되는 대부분의 명령과 달리 sudo편집기는 호출하는 사용자 환경을 수정하지 않고 실행합니다. 어떤 이유로 sudo편집 된 버전으로 파일을 업데이트 할 수없는 경우 사용자에게 경고 메시지가 표시되고 편집 된 사본은 임시 파일로 유지됩니다.

특히, 세 번째 단계에 유의하십시오. 편집이 끝날 때 파일이 수정 된 경우에만 원본이 변경됩니다. 따라서 파일을 감시하는 프로그램이있는 경우 (a) 중간 쓰기가 수행되지 않도록하고 (b) 결국 변경하지 않기로 결정한 경우 불필요한 조치를 피할 수 있습니다.

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