ファイルとディレクトリを読み書きできるときにファイルの所有権を取得します。

ファイルとディレクトリを読み書きできるときにファイルの所有権を取得します。

ディレクトリにいくつかのファイルが見つかりました。

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自分の意志に反して内容を変更できます。

関連情報