グループ編集可能ファイル編集後にファイル所有者が変更されました

グループ編集可能ファイル編集後にファイル所有者が変更されました

私はArchiLinux x64を使用しています。私はWeb開発作業をしており、srv/httpApacheが提供するディレクトリでApacheが提供するファイルを編集するためにグループを作成し、私のユーザーとApacheのユーザーを追加してディレクトリ間を移動せずにファイルを編集できました。
問題は、自分のユーザーを使用してディレクトリ内のファイルを正しく編集できますが、ファイルを保存するたびにそのユーザーとグループが自分のユーザーとグループに戻ることです。たとえば、

Me: user1:users
Apache: http:http
Directory ownership: http:development

その後、 次の/srv/http/index.htmlように自分のユーザーとしてファイルを開きます...
rw-rwr-- 1 http development 1034 Mar 20 20:48 index.html

rw-rw-r-- 1 user1 users 1034 Mar 20 20:48 index.html

groups私のユーザーアクティビティグループビューを入力すると、lp wheel network video audio storage users development 私は開発メンバーというメッセージが表示されるため、何が起こっているのか理解できません。私はそれが違うと思います。
何が起こっているのか、時間を節約しながら問題を解決する方法を教えてくれる人はいますか?
これは大きな問題ではないことを知っていますが、ハイフンがないなどの問題が発生する前に修正したいと思います。

PD - 必要に応じてSublimeエディタを使用します。

答え1

UNIXでは、rootファイル所有者のみを変更できます。したがって、ファイルの所有者は次のように結論付けることができます。いいえ編集すると変更されます。代わりに何をすべきかは、編集者が編集した内容を新しいファイルに書き、古いファイルを新しいファイルに置き換えることです。新しいファイルなので、ファイルは最終的に所有者としてマークされます。

このようにファイルを更新すると、いくつかの利点があります。

  • 原子的です。読者は常に古いバージョンまたは新しいバージョンを見ることができますが、部分的に作成された新しいバージョンは表示されません。
  • エラー回復がより簡単です。ディスクがいっぱいになるなどのエラーが発生した場合(以前のバージョンの上に名前を変更する前に)、新しい一時ファイルを削除してロールバックしてください。ファイルを現在の場所から更新する場合は、完了および更新が不可能であるか、ロールバックできない可能性があります。
  • 書き込み権限がないファイルを「更新」することができます(実際には古いファイルに書き込むことができないためです)。
  • まだファイルを開いている人は、必要に応じて以前のバージョンを引き続き使用できるため、中断は発生しません。実行ファイルに便利です!

欠点もあります:

  • 新しい一時ファイルを作成してからその一時ファイルの名前を変更するには、ファイルがあるディレクトリ(または少なくとも同じファイルシステム上の他の場所)への書き込み権限が必要です。
  • ファイルの所有者を維持できず、そのグループを維持できない可能性があります。
  • 権限、拡張プロパティ、ファイルが他の場所の物理ファイルへのシンボリックリンクかどうか、リソースフォーク(MacOS)などの他のアイテムを新しい一時ファイルにコピーしてから、場所に移動することで長いリストを保存できます。 ..非常に慎重で徹底しないと、そのうちの1つ以上を見逃すことは困難です。

だからそれは妥協です。

バックグラウンドスクリプトやソフトウェアのインストールなどの自動化されたタスクは、特に原子性のため、古いバージョンを新しいファイルに置き換えることがよくあります。

テキストエディタやその他の手動操作では、ファイルを適切に編集することがよくあります。

私はあなたの編集者に精通していませんが、他のほとんどの編集者とは正反対の選択をしているようです。これを停止するように構成できることを確認する必要があります。


ところで、ドキュメントルートのファイル所有者がApacheユーザーの代わりに所有している場合は、実際には良いでしょう。 Webサーバー(破損した場合など)がファイルを編集できないようにすることをお勧めします。したがって、この特定の「問題」を無視し、それを良いと見なすことを検討することができます。

答え2

はい、一部のエディタはデフォルトで新しく編集されたファイルとともに古いファイルを削除します。したがって、所有者は編集を行う人であり、そのグループがデフォルトグループになります。

ただし、以下を使用してディレクトリ権限を変更すると、ディレクトリの下のファイルにグループを適用できますchmod g+s .。これにより、新しく作成されたファイルがデフォルトグループではない場合でも、ディレクトリと同じグループになります。

グループ書き込み権限で作業する際のもう1つの欠点は、グループ書き込み可能ファイルを作成するには、umaskを少なくとも002に変更する必要があることです。

関連情報