Linux 파일 시스템에는 여러 계층의 미묘한 부분이 있는 것 같은데, 특정 상황에서 이를 우연히 발견했습니다.
이 파일을 편집하고 싶습니다.
[user@box ~]$ ls -l /a/b/c/foo.bar
-rw-rwxr-x 1 user user 144529 Jan 26 2018 /a/b/c/foo.bar
사용자가 쓸 수 있어야 하는 것 같습니다 user
. 정말인가요? 하지만 vim에서 파일을 편집하려고 하면 " W10: Warning: Changing a readonly file
" 경고가 표시됩니다.
파일의 쓰기 가능성은 포함된 폴더의 권한에 따라 결정된다는 것을 알고 있습니다. 포함된 폴더에 실행 권한이 있어야 한다고 생각합니다. 맞나요? 나는 필요한 디렉토리 권한이 거기까지 확장된다고 가정합니다 /
. 맞습니까?
기록된 파일의 포함 폴더 트리에 실행 권한이 있는 것 같습니다.
[user@box ~]$ ls -ld /a/b/c/
drwxrwxrwx 2 user user 36864 Mar 5 17:50 /a/b/c/
[user@box ~]$ ls -ld /a/b/
drwxrwxr-x 4 user user 4096 Sep 22 2017 /a/b/
[user@box ~]$ ls -ld /a/
drwxrwxr-x 9 user user 4096 Sep 15 2017 /a/
[user@box ~]$ ls -ld /
drwxr-xr-x 24 root root 0 Aug 24 10:48 /
[user@box ~]$ whoami
user
위에서 알 수 있듯이 관련 트리의 모든 디렉터리에는 실행 권한이 있습니다. 처음에는 /
소속과 관련이 있는지 궁금했지만 root
"기타"에 대한 실행 권한이 있습니다. 그리고 /
소유권 관련 문제가 있으면 root
그 사용자가 아니면 파일 시스템의 어느 곳에도 파일을 쓸 수 없을 거라 생각했는데 root
그렇지 않더군요.
표시된 파일이 읽기 전용으로 간주되는 다른 이유를 생각하거나 식별할 수 있는 사람이 있습니까?
답변1
첫 번째 - 불변 플래그를 설정했습니다.
chattr -i yourfilename
immutable 플래그가 설정되어 있으면 파일을 변경할 수 없습니다. 권한은 이 동작을 재정의하지 않는다는 점을 기억하세요!
두번째,파일이 위치한 디렉토리가 맞는지 확인하세요.다른 디스크나 파티션에 설치, 읽기 전용, 다음을 입력하세요.
mount
(매개변수 없음)
디렉토리가 읽기 전용으로 마운트된 것과 같은 것이 보인다면 이것이 바로 그 이유입니다! 읽기-쓰기로 다시 설치하면 운이 좋을 것입니다!
세 번째이자 가장 일반적인, 당신은 단지파일 시스템 오류, 이 문제를 해결하려면 가능한 것을 백업하고 재부팅한 다음 로그인하여 단일 모드로 실행해야 합니다.
mount #To determine how the partition is mounted
mount -o remount,ro /dev/sd(yourpartition) directory
fsck.ext4 /dev/sd(yourpartition)
(ext4를 파티션 유형으로 변경해야 할 수도 있음)
행운을 빌어요!