vi,vim 읽기전용 문제해결 "E45: 'readonly' option is set(add! to override)"
안녕하세요
오늘은 vi/vim 에디터에서 발생할 수 있는 readonly 에러에 대해서 한번 살펴보도록 하겠습니다
좀 기본적인 내용이긴 하지만좀 여러가지 경우의 수가 있기 때문에 다양하게 블로그들에서도 이제 좀 소개되고 문제 얘기를 하는 경우들이 많은데요 그런데 이제 좀 잘못된 접근일 수도 있고 이런 경우 저런 경우들을 직접 한번 재현해 보면서 한번 좀 설명을 좀 드려보도록 하겠습니다
좀 단순하게 sudo 를 붙여서 해결할 수 있다라고 생각할 수도 있겠지만
꼭 그렇지만은 않거든요 그래서 그거를 한번 살펴보도록 하겠습니다
일단은 readonly 문제의 상황을 한번 재현을 해 보도록 할게요
만약에 재현을 하게 되면 이런 메시지들을 볼 수 있습니다 첫 번째로는 Warning(경고) 메시지를 볼 수도 있겠고요 다음에는 여기 보이는 것처럼 readonly 상황이어서 편집이 불가능하다라는 것을 볼 수가 있거든요 실제로 한번 해보도록 하겠습니다
vi / vim 어쨌든 에디터를 이용해 가지고 vim /etc/nginx.conf 설정 파일을 열어 보도록 하겠습니다
지금 현재 계정은 리얼리눅스계정이고 Superuser 계정이라면 root 계정이에요
root 계정으로 여는 건 아닙니다 그러면은 일단은 여기 readonly이라는 표시가 나오는 걸 볼 수가 있겠고요 ( i 키 입력 시) INSERT 로 편집모드로 들어왓을때 Warning(경고) 메시지가 뜹니다.
기본적으로 일단 권한이 없어서라고 볼 수가 있는데요 그것 중에서도 리드 권한이 없어서라고 볼 수는 있습니다 그런데 권한이 없는 문제를 해결할 때 권한을 주는 방법도 있겠지만
일단은 sudo라는 거를 붙여서 해결할 수도 있긴 하거든요
그런데 sudo로 해결할 수 없는 경우도 한번 같이 살펴보면 좋을 것 같아요
우선은 한 번 더 재현을 하기 위해서 여기서 내가 만약에 작성을 한다고 했을 때 여기다가 리얼리눅스라고 작성을 하고 이제 W로 저장을 한다고 했을 때 이때 이렇게 readonly 메시지가 뜨는 걸 볼 수가 있겠죠 여기서 만약에 내가 나가주고 앞에다가 sudo를 붙인 다음에 접근을 하게 되면은 readonly 아니고 원인 메시지도 안 뜨고 편집도 정상적으로 되는 것을 볼 수는 있어요 정상적으로 저장이 되고
나갈 수 있는 것들도 볼 수가 있겠죠 다시 원상복구 한다면 이런 식으로 저장이 되기는 하죠
하지만 이제 sudo만으로는 해결이 전체적으로 되는 건 아닙니다
왜냐하면 일단은 수도를 붙여도 안 되는 경우가 있어요 예를 들어서 proc/version 이라는 어떤 시스템의 파일이나 proc 밑에 있는 파일 같은 경우에는 root 계정에 권한이 있다고 하더라도 readonly 그러니까 write는 불가능할 수가 있거든요 예를 들어서 이렇게 입력을 할 때도 readonly가 뜨고요
여기다가 ( i 키 입력) INSERT 로 편집할려 했을때도 Warning 메시지 똑같이 뜨고 여기다가 만약에 내가 reallinux 작성을 했다 그 다음에 W를 한다고 하더라도 동일한 에러가 뜨는 걸 볼 수 있죠
이때 이거를 해결한다고 해서 여기다가 sudo를 붙인 다음에 여기서 이런 식으로 작성을 한다고 하더라도 sudo가 붙었음에도 불구하고 동일하게 뜨는 것을 볼 수 있지요
해결이 안 되는 것을 볼 수가 있습니다 이런식으로 특수한 파일 같은 경우들이죠
결국에 root 계정이라고 하더라도 권한이 없을 경우에는 sudo를 붙여도 처리가 안 될 수가 있는 거죠
그리고 실제로 정확하게는 sudo를 붙이는 것은 Superuser가 되는 거기 때문에 root 계정과
그리고 현재 계정에서 sudo를 붙인 건 동일한 아닙니다
왜냐하면 root 계정으로 권한이 묶여 있는 경우들도 있거든요
내가 root 계정에서 동작을 할 때랑 일반적인 계정에서 Superuser권한을 얻어서 하는 것은 일반적인 계정이 리얼리눅스라는 계정을 버리는 건 아니에요 그대로 가지만 권한을 얻는 거거든요
그래서 아예 계정 자체에 권한이 묶여(제한되어)있는 경우에는 root 계정만 할 수 가 있습니다
그래서 그런 경우에는 특히나 이제 /proc 폴더나 /sys 폴더 밑에 있는 파일들은 특수파일들이죠
어떤 디스크에 매핑되어 있는 파일들이 아니고 커널 메모리에 매핑되기 때문에 시스템을 다를 수 있는 특수한 파일들이라고 볼 수 있는데 이런 거 같은 경우에는 root계정에만 걸려 있는 경우도 있고
아예 이런 식으로 이제 root 계정이든 Superuser 권한을 얻든지 말든지 무조건 readonly로 처리되는 경우도 있습니다 이런 식으로 한번 알아봤고요
그리고 만약에 세밀하게 동작을 한다면 내 현재 계정을 특정 그룹에 집어넣어서 권한을 주는 경우들도 있고요 또는 지금 현재 계정을 기준으로 해서 그냥 권한 부여를 해서 우리가 write를 할 수 있게끔 하는 방법들도 있겠죠 그래서 권한 관련되서는 나중에 다른 영상으로 좀 디테일하게 알아볼 예정이기 때문에 어쨌든 지금 현재 입장에서의 에러 메시지를 한번 살펴보고 어떤 식으로 해결할 수 있는지
그리고 또 sudo로도 해결할 수 없는 케이스까지 한번 살펴봤습니다 예 감사합니다
관련 추천강의는 리눅스 Zero 베이스 초보자 트러블 슈팅까지
https://reallinux.co.kr/course/linux_zerobase