readonly option is set (add to override)

simon_entj·2024년 11월 13일

Vi 에디터에서 읽기 전용 파일 저장 및 권한 문제 해결 방법

Vi 에디터로 파일을 편집한 후 :wq 명령어로 저장하려 할 때 다음과 같은 오류 메시지가 나타날 수 있습니다:

E45: 'readonly' option is set (add ! to override)

또는

"filename" E212: Can't open file for writing

이는 파일이 읽기 전용(read-only)이거나, 현재 사용자가 해당 파일을 수정할 권한이 없을 때 발생합니다. 이 문서에서는 이러한 문제를 해결하는 방법에 대해 알아보겠습니다.


📌 읽기 전용 파일 강제 저장하기

파일이 읽기 전용일 경우, :wq 대신 :w! 명령어를 사용하여 강제로 저장할 수 있습니다.

  • :w! : 강제로 저장하기
  • :wq! : 강제로 저장하고 Vi 에디터 종료하기

느낌표 !는 강제 옵션으로, 읽기 전용 문서도 강제로 저장할 수 있게 해줍니다.

✅ 사용 예시

  1. 파일을 편집한 후 저장하려 할 때 오류가 발생하면:

    :w

    오류 메시지:

    E45: 'readonly' option is set (add ! to override)
  2. 강제로 저장하기 위해 느낌표를 추가합니다:

    :w!
  3. 저장 후 에디터를 종료하려면:

    :q

    또는 한 번에 저장하고 종료하려면:

    :wq!

📌 권한이 없는 파일 수정하기

시스템의 중요한 파일을 일반 사용자 권한으로 수정하려 할 때 다음과 같은 경고가 나타나며 저장이 되지 않을 수 있습니다:

"filename" E212: Can't open file for writing

또는

"filename" E45: 'readonly' option is set (add ! to override)

이 경우, :w!를 사용해도 저장되지 않습니다. 이는 현재 사용자가 해당 파일을 수정할 권한이 없기 때문입니다.

✅ 해결 방법: sudo를 사용하여 Vi 에디터 실행하기

파일을 수정할 수 있는 권한을 가진 사용자(예: root)로 Vi 에디터를 실행하면 문제를 해결할 수 있습니다.

방법 1: sudo vi 명령어 사용

터미널에서 파일을 열 때 vi 앞에 sudo를 붙여서 실행합니다:

sudo vi filename
  • sudo는 명령어를 관리자 권한으로 실행하도록 합니다.
  • 이제 파일을 수정하고 일반적으로 저장할 수 있습니다 (:wq).

방법 2: 이미 열린 Vi 에디터에서 sudo 권한으로 저장하기

이미 Vi 에디터에서 파일을 편집하고 있는 상태라면, 다음 명령어를 사용하여 관리자 권한으로 저장할 수 있습니다:

:w !sudo tee % > /dev/null
  • :w !sudo tee %는 현재 파일을 sudo 권한으로 저장합니다.
  • 저장 후에는 계속해서 편집을 이어나갈 수 있습니다.

참고: > /dev/null을 추가하면 tee 명령어의 출력을 숨길 수 있습니다.


⚠️ 주의 사항

  • sudo를 사용할 때는 주의해야 합니다. 시스템 파일을 잘못 수정하면 시스템에 문제가 발생할 수 있습니다.
  • 권한 변경은 신중하게 해야 합니다. 일반 사용자가 자주 수정해야 하는 파일이라면, 해당 파일의 권한이나 소유자를 변경하는 것도 고려해볼 수 있습니다.

📝 요약

  • 읽기 전용 파일을 강제로 저장할 때:
    • :w! 또는 :wq! 명령어를 사용합니다.
  • 권한이 없어 저장되지 않을 때:
    • sudo vi filename으로 파일을 열거나,
    • Vi 에디터 내에서 :w !sudo tee % > /dev/null 명령어를 사용하여 관리자 권한으로 저장합니다.

📚 추가 정보

  • 파일 권한 확인하기:

    ls -l filename
  • 파일 권한 변경하기 (신중하게 사용):

    sudo chown user:group filename
    sudo chmod u+w filename
  • Vi 에디터에서 현재 사용자의 권한 확인:

    :!whoami

이러한 방법들을 통해 Vi 에디터에서 발생하는 읽기 전용 파일 저장 및 권한 문제를 해결할 수 있습니다.

profile
cyan-inn.im

0개의 댓글