ユーザーにディレクトリのファイル/ディレクトリの所有権を変更する権限を付与する方法

ユーザーにディレクトリのファイル/ディレクトリの所有権を変更する権限を付与する方法

特定のユーザーに、特定のディレクトリ内のファイルとディレクトリのユーザーとグループの所有権を変更する権限を付与するにはどうすればよいですか。

グーグルしてみるとこんな内容がありましたねsetfacl、ユーザーにファイルとディレクトリの権限を変更するための特定の権限を付与できます。。しかし、私が知っている限り、このコマンドはchown許可を許可しません。

したがって、ファイルがあると仮定すると

user1 user1 theFile1
user1 user1 theDirectory1

次のコマンドを実行すると失敗します。

[user1@THEcomputer]$ chown user2 theFile

コンピュータへのルートアクセス権があります。chownディレクトリ内でコマンドを実行するためのユーザー権限を付与する方法はありますか?

更新:グループにユーザーを追加する方法。

ここにいる記事一度グループdatamoverに追加しました。hts

[root@Venus ~]# usermod -a -G datamover hts
[root@Venus ~]# exit
logout
[hts@Venus Receive]$ groups
hts wireshark datamover
[hts@Venus Receive]$ 

アップデート(RuiFRibeiroの住所説明):

ディレクトリの所有権をディレクトリに変更しても機能しません。スクリーンショットをご覧ください。

[datamover@Venus root]$ ls -la
total 311514624
drwxrwxrwx. 6 datamover datamover         4096 Oct 14 14:05 .
drwxr-xr-x  4 root      root              4096 Aug 20 16:52 ..
-rwxrwxrwx. 1 datamover datamover          674 Aug 31 16:47 create_files.zip
drwxrwxrwx  2 datamover datamover         4096 Oct 17 17:07 dudi
-rwxrwxrwx. 1 datamover datamover 318724299315 Oct 13 15:47 Jmr400.mov
-rwxrwxrwx. 1 datamover datamover    182693854 Aug 31 16:47 Jmr_Commercial_WithSubtitles.mov
-rwxrwxrwx. 1 datamover datamover     80607864 Aug 31 16:47 Jmr_DataMover_Final.mov
drwxrwxrwx. 2 datamover datamover       122880 Aug 23 11:54 ManyFiles
drwxrwxrwx. 3 datamover datamover         4096 Oct 25 07:18 Receive
drwxrwxrwx  2 datamover datamover         4096 Oct 14 13:40 sarah
-rwxrwxrwx  1 datamover datamover      3184449 Oct 14 14:05 SourceGrid_4_40_bin.zip
[datamover@Venus root]$ cd ./Receive/
[datamover@Venus Receive]$ ls -la
total 178540
drwxrwxrwx. 3 datamover datamover      4096 Oct 25 07:18 .
drwxrwxrwx. 6 datamover datamover      4096 Oct 14 14:05 ..
-rwxrwxrwx  1 hts       hts       182693854 Oct 25 07:18 Jmr_Commercial_WithSubtitles.mov
drwxrwxrwx  2 datamover datamover    122880 Oct 23 13:33 ManyFiles
[datamover@Venus Receive]$ chown datamover:datamover ./Jmr_Commercial_WithSubtitles.mov
chown: changing ownership of './Jmr_Commercial_WithSubtitles.mov': Operation not permitted

ファイル所有者としての試みは次のとおりです。

[hts@Venus Receive]$ chown datamover:datamover Jmr_Commercial_WithSubtitles.mov
chown: changing ownership of 'Jmr_Commercial_WithSubtitles.mov': Operation not permitted

ご覧のとおり、両方の可能性は機能しません。

更新(アドレスカウンターパターンへの回答)

ファイル所有者(およびルート)はグループの所有権を変更できます。ただし、所有者が属するグループに限ります。

はい、まずログアウトする必要があります。私の試みの結果は次のとおりです。

[hts@Venus ~]$ groups hts
hts : hts wireshark datamover
[hts@Venus ~]$ cd /mnt/DataMover/root/Receive/
[hts@Venus Receive]$ ls -la
total 178540
drwxrwxrwx. 3 datamover datamover      4096 Oct 25 07:18 .
drwxrwxrwx. 6 datamover datamover      4096 Oct 14 14:05 ..
-rwxrwxrwx  1 hts       hts       182693854 Oct 25 07:18 Jmr_Commercial_WithSubtitles.mov
drwxrwxrwx  2 datamover datamover    122880 Oct 23 13:33 ManyFiles
[hts@Venus Receive]$ chown hts:datamover ./Jmr_Commercial_WithSubtitles.mov 
[hts@Venus Receive]$ ls -la
total 178540
drwxrwxrwx. 3 datamover datamover      4096 Oct 25 07:18 .
drwxrwxrwx. 6 datamover datamover      4096 Oct 14 14:05 ..
-rwxrwxrwx  1 hts       datamover 182693854 Oct 25 07:18 Jmr_Commercial_WithSubtitles.mov
drwxrwxrwx  2 datamover datamover    122880 Oct 23 13:33 ManyFiles
[hts@Venus Receive]$ chown datamover:datamover ./Jmr_Commercial_WithSubtitles.mov 
chown: changing ownership of ‘./Jmr_Commercial_WithSubtitles.mov’: Operation not permitted
[hts@Venus Receive]$ 

datamoverグループにhtsを追加すると、グループセクションの所有権を変更できるため、その説明は部分的に回答され検証されます。

ベストアンサー1

ルートのみがファイルの所有権を変更する権限を持っています。かなり近代的なLinuxディストリビューションはこのCAP_CHOWN機能を提供します。この機能を持つユーザーは、任意のファイルの所有権を変更することもできます。CAP_CHOWNグローバルなので、一度与えられると、ローカルファイルシステム上のすべてのファイルに適用されます。

ファイル所有者(およびルート)はグループの所有権を変更できます。ただし、所有者が属するグループに限ります。したがって、ユーザUがグループA、B、Cに属しているがグループDには属していない場合、UはUが所有するファイルのグループをA、B、Cに変更できますが、Dには変更できません。ランダムな変更を探している場合は、これがCAP_CHOWN行く方法です。

警告する CAP_CHOWNCAP_CHOWN有能なシェルを持つユーザーがroot権限を取得できるという点で、深刻なセキュリティリスクがあります。 (たとえば、chown自分のlibc、トロイの木馬にパッチを適用すると、chownルートプロセスがそれを選択するのを返して待ちます。)

特定のディレクトリの所有権を変更する機能を制限したいので、役に立つツールはありません。代わりに、予想される制限を処理するために独自のバリアントを作成できますchown。プログラムには次の機能が必要ですCAP_CHOWN

setcap cap_chown+ep /usr/local/bin/my_chown

警告する あなたのプログラムは元のバージョンを模倣することができますchownmy_chownuser:group filename(s)。入力検証は非常に慎重に行ってください。境界外のソフトリンクに特に注意しながら、各ファイルが予想される制限を満たしていることを確認してください。

プログラムへのアクセスを特定のユーザーに制限するには、特別なグループを作成し、グループの所有権をそのグループに設定し、my_chown権限を0750に設定してから、グループに参加できるすべてのユーザーを追加できます。あるいは、適切なルールを使用することができますsudo(この場合、能力魔法も必要ありません)。より柔軟性が必要な場合は、念頭に置いているルールをmy_chown

おすすめ記事