ユーザーupload
を使用してファイルを別のサーバーにscpするバックアップアップロードスクリプトがあります。次に、ターゲットサーバー上の別のスクリプトがこれらを別のユーザーに割り当て、ファイルモードを755
に設定します。
次に、upload
ユーザーを使用してターゲットサーバーにSSH接続すると、chownされたファイルを削除できます。読み取り専用にすべきですか?
ターゲットサーバーでのファイルの外観は次のとおりです。ユーザーupload
はファイルを削除できます。
-rwxr-xr-x 1 maciekish maciekish 650M Nov 1 01:07 2014-11-01-data.tar.bz2
ユーザーupload
はuseradd
を使用して追加されたばかりであり、maciekish
グループの一部ではありません。
Ssh経由でupload
としてファイルを削除しようとすると、「書き込み保護された通常のファイル」を削除するかどうかという質問が表示され、Y
と言って削除できます。
ファイルare読み取り専用;ただし、ファイルを削除してもファイルは変更されず、親ディレクトリのみが変更されます(基本的にはファイルがディレクトリリストから削除されます)。ディレクトリへの完全な書き込み権限があるようです。
sticky
ビット(別名「制限付き削除」フラグ)を設定して、所有者以外のユーザーがそのディレクトリ内のファイルの名前を変更したり削除したりできないようにすることができます(/tmp
など)。これを行うには、ディレクトリの所有者としてchmod o+t *directory*
を実行します。
典型的なUnixファイルシステムでは、どのファイルも任意の数のディレクトリエントリで識別でき、それぞれが「ハードリンク」を保持しています。
実装の観点から見ると、ファイルの最後のディレクトリエントリ(ハードリンク)を削除することと、多数のファイルから1つの参照を削除することには違いがあります。ただし、セマンティックの観点からは違いはありません。
ファイルに複数のハードリンクが存在する場合、それらのいずれかを使用してファイルに書き込むと、それらすべてに表示されるファイルが変更されます。ただし、リンクでrm
を使用すると、そのリンクからファイルにアクセスできなくなります。ファイルへの他のリンクは、まったく同じファイルを引き続き表示します。