[vi] /etc/apt/sources.list “E212 : 쓰기 위해 파일을 열 수 없습니다

vi 편집기를 사용하여 sources.list를 편집하려고하는데 파일을 저장하는 동안 다음 오류가 발생합니다.

/etc/apt/sources.list" E212: Can't open file for writing



답변

For some reason the file you are writing to cannot be created or overwritten.
The reason could be that you do not have permission to write in the directory
or the file name is not valid.

Vim에는 내장 도움말 시스템이 있습니다. 방금 말한 것을 인용했습니다 :h E212.

파일을 수퍼 유저로 편집 할 수 있습니다 sudo vim FILE. 또는 기존 vim 세션을 종료하지 않으려는 경우 (이제 적절한 sudo 권한을 가짐) 다음을 발행 할 수 있습니다.

:w !sudo tee % > /dev/null

파일을 저장할 것입니다.

HTH


답변

그것은 항상 나에게 일어난다, 나는 쓰기 위해 루트 파일을 연다 :

모든 변경 사항을 잃고 sudo로 다시 여는 대신. 변경 사항을 저장하는 방법에 대한이 데모를 참조하십시오.

하위 사용자를위한 루트 소유의 읽기 전용 파일을 작성하는 일회성 설치 데모 :

sudo touch temp.txt
sudo chown root:root temp.txt
sudo chmod 775 temp.txt
whoami
el

먼저 파일을 일반 사용자로여십시오 :

vi temp.txt

그런 다음 파일을 약간 변경하면 읽기 전용 경고가 표시됩니다. 이 명령을 사용하십시오.

:w !chmod 777 %

그런 다음 파일을 작성하십시오.

:wq!

권한이 확장되고 파일이 저장됩니다. 하위 사용자로 루트 파일을 편집하기 때문에 느낌표가 필요합니다.

해당 명령의 기능 설명 :

: w는 파일 쓰기를 의미합니다. 뱅은 쉘로 해석하기 시작한다는 것을 의미합니다. chmod는 권한 변경을 의미하고 777은 모든 권한을 의미합니다. 퍼센트는 현재 파일 이름을 의미합니다.

변경 사항이 적용됩니다. 그리고 다시로드 할 것인지 묻습니다. “확인”에 대해 “O”를 누릅니다. 다시로드하지 않으면 변경 사항이 손실됩니다.


답변

나에게는 아주 간단한 해결책이있었습니다. 존재하지 않는 폴더에서 파일 을 편집 / 작성 하려고했습니다 . 이미 폴더에 있었기 때문에 파일 을 편집 / 만들 려고 했습니다.

pwd folder/file

그리고 입력했다

sudo vim folder/file

오히려 폴더에서 폴더를 찾고 저장하지 못했습니다.


답변

또는 아마도 당신은 읽기 전용 마운트 fs에 있습니다


답변

레벨 2에서 Zsolt를 참조했으며 다음을 입력했습니다.

:w !sudo tee % > /dev/null

내 상황에서 여전히 파일을 수정할 수 없으므로 “!”를 추가하라는 메시지가 표시됩니다. 그래서 나는 입력

:q!

그런 다음 작동합니다


답변

vim을 실행하기 전에 파일 시스템을 읽기 전용에서 변경하는 작업을 수행했습니다.

bash-3.2# mount -o remount rw /


답변

루트로 연결 한 다음 파일을 편집하십시오. 이것은 나를 위해 작동