ディレクトリにいくつかのファイルが見つかりました。
drwxrws-wt 2 me mygroup 4,0K 10.1. 12:34 .
-rw-r----- 1 someone mygroup 10G 10.1. 11:22 someonesfile
me
そして、someone
セカンダリグループなしで一般ユーザーになります。
アカウントを使用してme
このファイルの所有権を取得するにはどうすればよいですか?
これme
により:
$ chown me someonesfile
chown: doing bla bla bla: permission denied
しかし、me
「変化「ファイルを新しいファイルに置き換えて所有権を取得します。
cp someonesfile myfile && mv -f myfile someonesfile`
だから私の主な質問はもっと簡単です(より安い)rootアカウントやその他の特権の昇格を使用せずに、説明した環境でファイルの所有権を変更する方法。デフォルトでは、ディレクトリ権限を利用してファイル全体をコピーme
せずに所有権/権限をリセットできるかどうか疑問に思います。
また、ファイルを編集しvim
て強制的に上書きすると、:w!
ファイルの所有者が変更されることがわかりました。これはこれを行うのと同じですかcp && mv
?少なくともtouch someonesfile
権限が拒否されると失敗します。
答え1
はい、vim
元のファイルは削除され、新しいコンテンツを入れる新しいファイルが作成されます。
あなたのcp && mv -f
道は行く道です。
あなたの場合、ディレクトリにビットを設定するときにt
ディレクトリへの書き込み権限を持つだけでは十分ではなく、ファイルまたはディレクトリの所有者である必要があります(あなたのように)。
答え2
ルートのみがファイルの所有者を変更できます。ルートが含まれていない場合は、ファイルを削除し、その名前の別のファイルを作成するか、名前を変更するだけです。
ファイルを盗むことが許可されている場合、これはセキュリティホールになります。たとえば、ユーザーはsomeone
ファイルを開き、そのファイルの所有権と権限を確認し(fstat
開いたファイルハンドルを呼び出して)、実行中のプログラムでのみこのsomeone
データを生成できると結論付けることができます。ファイルを盗むことができる場合は、someone
自分の意志に反して内容を変更できます。