GNU/Linux >> Linux の 問題 >  >> Linux

Linux –ファイルが読み取り専用である理由がわかりませんか?

Linuxファイルシステムには、私がケースバイケースで遭遇する微妙なレイヤーとレイヤーがあるようです:

このファイルの編集に興味があります:

[[email protected] ~]$ 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」が表示されます。 」警告。

ファイルの書き込み可能性は、含まれているフォルダーのアクセス許可に依存していることを私は知っています。含まれているフォルダには実行権限が必要だと思います–本当ですか?必要なディレクトリ権限も/まで拡張されると思います –本当ですか?

記載されているファイルを含むフォルダツリーに実行権限があるように見えます:

[[email protected] ~]$ ls -ld /a/b/c/                                                                                    
drwxrwxrwx    2 user   user       36864 Mar  5 17:50 /a/b/c/
[[email protected] ~]$ ls -ld /a/b/           
drwxrwxr-x    4 user   user        4096 Sep 22  2017 /a/b/
[[email protected] ~]$ ls -ld /a/                
drwxrwxr-x    9 user   user        4096 Sep 15  2017 /a/
[[email protected] ~]$ ls -ld /     
drwxr-xr-x   24 root   root           0 Aug 24 10:48 /
[[email protected] ~]$ 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はパーティションタイプに変更する必要があるかもしれません)

ラッキー!

関連:実行中のプロセスのユーザーとカーネルの時間を取得しますか?
Linux
  1. Linuxユーザーとは何ですか?

  2. Linuxユーザーアカウント監視の概要

  3. Linux –すべてがファイルですか?

  1. Linuxでファイルを移動する方法

  2. Linuxファイルのアクセス許可について

  3. Linuxsuコマンド

  1. Linuxテールコマンド

  2. Linuxタッチコマンド

  3. LinuxでのCatコマンド