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
による書き込みが可能である必要があります-true?しかし、vimでファイルを編集しようとすると、「W10: Warning: Changing a readonly file
」という警告が表示されます。
ファイルの書き込み可能性は、それを含むフォルダーのアクセス許可に依存することを知っています。含まれているフォルダには実行権限が必要だと思います-本当ですか?必要なディレクトリ権限も/
まで拡張されていると思います-true?
上記のファイルを含むフォルダーツリーに実行権限があるように見えます。
[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
以外のユーザーとしてファイルシステムの任意の場所にファイルを書き込むのに問題が発生すると思いますが、そうではありません。
上記のファイルが読み取り専用と見なされる他の理由を誰かが考えたり特定したりできますか?
最初-不変のフラグが設定されています
chattr -i yourfilename
不変フラグが設定されている場合、ファイルを変更することはできません。許可はその動作を上書きしなかったことに注意してください!
2番目に、ファイルがあるディレクトリが別のディスクまたはパーティションにマウントされているかどうかを確認します、読み取り専用として、次のように入力します。
mount
(引数なし)
ディレクトリのようなものが読み取り専用としてマウントされている場合は、理由があります!ラッキーになるために、読み書き可能で再マウントしてください!
3番目-最も一般的です、エラーのあるファイルシステムを実行しているだけです 、それを修正するには、できることをバックアップして再起動し、シングルモードでログインして実行する必要があります:
mount #To determine how the partition is mounted
mount -o remount,ro /dev/sd(yourpartition) directory
fsck.ext4 /dev/sd(yourpartition)
(ext4はあなたのパーティションタイプに変更する必要があるかもしれません)
グッドラッキー!