web-dev-qa-db-ja.com

ファイルが読み取り専用である理由が不明瞭ですか?

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以外のユーザーとしてファイルシステムの任意の場所にファイルを書き込むのに問題が発生すると思いますが、そうではありません。

上記のファイルが読み取り専用と見なされる他の理由を誰かが考えたり特定したりできますか?

5
StoneThrow

最初-不変のフラグが設定されています

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はあなたのパーティションタイプに変更する必要があるかもしれません)

グッドラッキー!