編集後にファイルの所有権をどのように維持しますか?

編集後にファイルの所有権をどのように維持しますか?

私の問題は次のようになりますもう一つ、新しく作成されたファイルについての質問に加えて、

私のUnixボックスでは、ユーザーはアリス単発そしてスコ羊グループ内スコ羊

Tomcatサーバーの構成ファイルは、ユーザーtomcatとグループtomcatが所有します。

aliceとbobがファイルを編集できるように、このファイルに対する権限をグループごとに読み取り/書き込みに変更しました。

ただし、編集後、そのファイルを最後に編集したユーザーが所有することを確認しました。

尋ねる:AliceとBobが所有権を変更せずにファイルを編集できるように権限を変更できますか?

ファイルを編集すると、所有権はどのように変更されますか?

ベストアンサー1

結果ユーザーファイルの内容は編集者の役割によって異なります。一部の編集者はファイルを切り取り、上書きして(inodeを変更せずに)ファイルを保存します。一部の編集者はファイル名を別の名前(通常はfilefile~に変更し、元の名前で新しいファイルを作成します。所有者が変更されないように元のファイルを変更し、生成プロセスのUIDが新しいファイルを所有するように新しいファイルを作成します。

私がDebianで使用するエディタ、およびnanojoeそしてnvivim最小バージョンではvim-tiny)内部オーバーライドがあるようです。vimEmacsの機能を設定できると思います。


スティーブンは次のようにコメントしています。アトミックアップデート。内部再生成の問題は、ファイルがゼロの長さに切り捨てられて作成されることです。すべてのデータを書き込む前に、他のプロセスがそれを開いて読み取ることができます。

file.newたとえば、新しいバージョンを作成して名前をfile.newに変更すると、アトミックアップデートが実行されます。これにより、作成して接続fileできるバックアップファイルが残り、名前が変更されます。名前でファイルにアクセスするすべてのプロセスは、以前のバージョンまたは新しいバージョンをインポートし、その間に何もインポートしないため、名前を変更するのはアトミックです。もちろん、開いているファイルハンドルは開いているファイルを指し、ファイルの一貫したビューを提供します。file.newfilefile~file.newfile


~からファイル権限視点から見ると、同じファイル(inode)を保存するにはファイル自体(ディレクトリではない)への書き込みアクセスが必要です。新しいファイルの名前を変更して作成するには、ディレクトリ(元のファイルではない)への書き込みアクセスが必要です。

(誰かが共有ディレクトリからファイルを作成または変更し、グループに書き込みアクセス権を付与することを忘れた場合は、名前の変更と再生成はファイル権限を変更する方法でもあります。)

おすすめ記事