ユーザーはvimを使用してファイルを編集できます。

ユーザーはvimを使用してファイルを編集できます。

file.txtディレクトリに名前が付けられたファイルがあり、/home/myuserそのファイルに対する権限をroot.rootおよびに変更しました644

-rw-r--r-- 1 root root 1.4K Jan 15 07:09 file.txt

その後、切り替えてmyuser開きましたvimsudoはできません)編集して保存しようとすると、:wq!次のような結果が表示されます。

"file.txt" E949: File changed while writing
Press ENTER or type command to continue

次にEnterを押してもう一度Enterを押すと、:wq!出力は次のようになります。

WARNING: The file has been changed since reading it!!!
Do you really want to write to it (y/n)?

をクリックするとyファイルが保存され終了しますvim

しかし、なぜユーザーROOT権限とread-onlyアクセス権を持つファイルが変更されるのかが問題です。

PS: 1. myusersudoユーザーになりなさい。

  1. ファイルを保存すると、ユーザー権限もmyuser.myuser変更されます。

    -rw-r--r-- 1 myuser myuser 1.4K Jun 27 18:57 file.txt

答え1

ファイルはユーザーが書き込むことができるディレクトリにあるため、ユーザーはファイルを削除して再作成する権限を持ちます。これはvim、ファイルに強制的に書き込むときとほぼ同じです。

$ ls -li file
3481899 -r--r--r--  1 root  wheel  6 Jun 27 15:48 file

$ vim file

$ ls -li file
3481905 -rw-r--r--  1 myself  myself  6 Jun 27 15:49 file

この例に示すように、ファイルは新しい inode 番号で再生成されました。ユーザーとグループは、ファイルを書き込むユーザーに設定されており、ユーザーのumask

関連情報