chownを使用してディレクトリのグループ所有者を変更することは許可されていません…なぜですか?


10

chown次の権限と所有者を持つディレクトリで実行しようとしています。

drwxrwxr-x 2 justin devs  4096 Jan  1 20:42 test

justinユーザーとして次を実行しようとしています:

chown justin:nginx test

したがって、基本的にはグループの所有者をに変更するだけnginxですが、次のようになります。

chown: changing ownership of `test/': Operation not permitted

何か案は?

回答:


15

まず、chgrpchownの代わりにコマンドを使用してください。

chown .....を使用する場合、ほとんどのLinuxコンテキストではセキュリティ上の理由から、ファイル、ディレクトリなどの所有者としてマークされているかどうかにかかわらず、所有権の変更はrootユーザーに制限されます。1つのケースでは、これは、ファイル許可ビットを777に設定し、ファイルの所有権を他の不明なユーザーに変更し、割り当てを使い果たして、ユーザーが割り当てを回避できないようにするためです。

したがってchown、ユーザーコンテキストでコマンドを使用する場合、特に所有権が変更されない場合は、ファイルのグループを変更するためだけに使用しないでください。

注:ファイルを変更しようとしているグループのメンバーである必要があります。これはで確認できますid -a。グループに参加していない場合は、ファイルの所有者であってもこのメッセージが表示されます。


1
と同じですがchgrp nginx test、操作は許可されていません。
Justin

inodeの所有者としてchgrpコマンドを実行している場合、これは機能するはずです。ファイルシステムは読み取り専用でマウントされていますか?
mdpc

いいえ、機能しません。ここではテストケースがある:$ mkdir test $ chgrp nginx test/ chgrp: changing group of test/: Operation not permitted $ ll total 4 drwxrwxr-x 2 justin justin 4096 Jan 1 21:18 test
ジャスティン

1
了解しました...所属を許可されていないグループに所有権を変更することはできません。id -aファイルを変更しようとしているグループが使用できることを確認してください。
mdpc

1
はい、それが解決策です。
mdpc

4

現在のグループの所有権をに変更できるようにするには、グループのメンバーである必要があります。/etc/groupsルートとしてファイルを編集して、ユーザーjustinがnginxグループの一部であることを確認できます。グループに変更を加えたら、システムに再ログインして有効にするか、再起動/ログアウトせずにグループに変更する必要があります。cmdを使用できますnewgrp nginx

これで、cmd chgrp nginx testをユーザーjustinとして使用して、ファイルまたはフォルダーのグループを変更できるはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.