次の権限と所有者を持つディレクトリで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
何か案は?
まず、chownの代わりにchgrp
コマンドを使用します。これは機能します。
Chown .....を使用する場合、ほとんどのLinuxコンテキストではセキュリティ上の理由から、ファイル、ディレクトリなどの所有者としてマークされているかどうかにかかわらず、所有権の変更はrootユーザーに制限されます。 1つのケースでは、これは、ファイル許可ビットを777に設定し、ファイルの所有権を他の不明なユーザーに変更し、割り当てを使い果たして、ユーザーが割り当てを回避できないようにするためです。
したがって、ユーザーコンテキストでchown
コマンドを使用することは、特に所有権が変更されない場合は、ファイルのグループを変更するためだけに使用するべきではありません。
注:ファイルを変更しようとしているグループのメンバーである必要があります。これはid -a
で確認できます。グループに参加していない場合は、ファイルの所有者であってもこのメッセージが表示されます。
現在のグループの所有権をに変更できるようにするには、グループのメンバーである必要があります。 rootとして/etc/groups
ファイルを編集して、ユーザーjustinがnginxグループの一部であることを確認できます。グループに変更を加えたら、システムに再ログインして有効にするか、再起動/ログアウトせずにグループに変更する必要があります。cmdnewgrp nginx
を使用できます。
これで、ユーザージャスティンとしてcmd chgrp nginx test
を使用して、ファイルまたはフォルダーのグループを変更できるようになります。