web-dev-qa-db-ja.com

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

次の権限と所有者を持つディレクトリで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

何か案は?

10
Justin

まず、chownの代わりにchgrpコマンドを使用します。これは機能します。

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

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

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

15
mdpc

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

これで、ユーザージャスティンとしてcmd chgrp nginx testを使用して、ファイルまたはフォルダーのグループを変更できるようになります。

4
Cloudmeteor