루트가 아닌 디렉터리의 루트 소유 파일을 sudoedit로 편집

루트가 아닌 디렉터리의 루트 소유 파일을 sudoedit로 편집

루트가 소유한 파일을 편집할 수 없는데 홈 디렉토리 어딘가에 다음과 같은 내용이 표시되는 이유는 무엇입니까?

sudoedit: existingFile: editing files in a writable directory is not permitted

다음 함수를 정의했지만:

function sunano {
    export SUDO_EDITOR='/usr/local/bin/nano'
    sudoedit "$@"
}

나는 다음과 같이 편집합니다.

sunano existingFile

파일은 실제로 루트가 소유합니다.

ls -l existingFile

입증하다:

-rwxr-xr-x 1 root root 40 Jun 15  2015 existingFile

답변1

이것맨페이지설명하다

호출 사용자가 쓸 수 있는 디렉터리에 있는 파일은 해당 사용자가 루트(버전 1.8.16 이상)가 아니면 편집할 수 없습니다.

파일이 포함된 디렉토리에 쓸 수 있으면 실제로 편집할 수 있습니다 sudoedit(현재 내용을 읽을 수는 없더라도). 해당 파일을 다른 곳으로 옮기고 같은 이름의 새 파일을 만들 수 있습니다. . 특별한 경우에는 파일을 읽을 수 있으며 최소한 일부 편집자는 편집을 허용합니다(적어도 임시 파일을 작성하고 이름을 바꿔 파일을 저장하는 편집자).

이 기능의 이유는 다음과 같습니다sudo오류 707:기본적으로 사용자가 쓰기 가능한 디렉터리에서 파일을 편집할 수 있도록 허용하면 sudoedit구성에 설정된 제한 사항을 우회할 수 있습니다 sudoedit(그리고 시스템의 모든 파일을 효과적으로 편집할 수 있습니다).

관련 정보