Linuxでは、各ファイルは所有者とグループに関連付けられており、ファイルの読み取り、書き込み、または実行を行うことができるユーザーを決定する権限があります。
この記事では、 chgrp
の使用方法について説明します 指定されたファイルのグループ所有権を変更するコマンド。
chgrp
コマンド構文#
chgrp
コマンドの形式は次のとおりです。
chgrp [OPTIONS] GROUP FILE..
-
GROUP
、新しいグループの名前、またはグループID(GID)。数値GIDの前に+
を付ける必要があります シンボル。 ファイル..コード> 、1つ以上のファイルの名前。
chown
とは異なり ユーザーとグループの所有権を変更できるコマンド、 chgrp
グループの所有権のみを変更します。
ファイルがどのグループに属しているかを確認するには、 ls -l
を使用します コマンド。
通常のユーザーは、ファイルを所有し、メンバーであるグループにのみファイルのグループを変更できます。管理ユーザーは、すべてのファイルのグループ所有権を変更できます。
ファイルまたはディレクトリのグループ所有権を変更するには、 chgrp
を呼び出します。 コマンドの後に、引数として新しいグループ名とターゲットファイルが続きます。
たとえば、ファイルのグループを変更するには filename
www-data
へ 実行します:
chgrp www-data filename
特権のないユーザーでコマンドを実行すると、「操作は許可されていません」というエラーが発生します。エラーメッセージを抑制するには、 -f
を指定してコマンドを呼び出します。 オプション。デフォルトでは、成功すると、 chgrp
出力を生成せず、ゼロを返します。
chgrp
に引数として複数のファイルを渡すこともできます コマンド:
chgrp www-data file1 file2 dir1
-v
を使用します 処理中のファイルに関する情報を取得するオプション:
chgrp www-data file1 file2
changed group of 'file1' from nginx to www-data
group of 'file2' retained as www-data
グループが実際に変更するファイルに関する情報のみを印刷するには、 -c
を使用します。 -v
の代わりに 。
ユーザー名の代わりに数値グループID(GID)を使用できます。次の例では、ファイルのグループ所有権をGIDが1000の新しいグループに変更します。
chgrp +1000 filename
シンボリックリンクグループの所有権を変更する方法#
再帰的に動作しない場合、 chgrp
のデフォルトの動作 コマンドは、シンボリックリンク自体ではなく、シンボリックリンクターゲットのグループ所有権を変更することです。
たとえば、シンボリックリンク symlink1
のグループを変更しようとした場合 / opt / file1
を指します 、 chgrp
シンボリックリンクが指すファイルまたはディレクトリの所有権を変更します:
chgrp www-data symlink1
ターゲットグループを変更する代わりに、「「symlink1」を逆参照できません:アクセスが拒否されました」というエラーが発生する可能性があります。
ほとんどのLinuxディストリビューションではデフォルトでシンボリックリンクが保護されており、ターゲットファイルを操作できないため、エラーが発生します。このオプションは、 / proc / sys / fs / protected_symlinks
で指定されています 。 1
有効で0
を意味します 無効。シンボリックリンク保護を無効にしないことをお勧めします。
シンボリックリンク自体のグループ所有権を変更するには、 -h
を使用します オプション:
chgrp -h www-data symlink1
特定のディレクトリの下にあるすべてのファイルとディレクトリのグループ所有権を再帰的に変更するには、 -R
を使用します。 オプション。
たとえば、次のコマンドは、 / var / www
の下にあるすべてのファイルとディレクトリの所有権を変更します。 www-data
へのディレクトリ グループ:
chgrp -R www-data /var/www
再帰オプションが指定されている場合chgrp
シンボリックリンクをトラバースせず、シンボリックリンクに変更を加えません。シンボリックリンクのグループ所有権を変更するには、 -h
を渡します オプション:
chgrp -hR www-data /var/www
グループの所有権を再帰的に変更するときに使用できるその他のオプションは、 -H
です。 および-L
。
引数がchgrp
に渡された場合 コマンドはシンボリックリンク、 -H
オプションを指定すると、コマンドがそれをトラバースします。 -L
chgrp
に通知します 検出されたディレクトリへの各シンボリックリンクをトラバースします。ほとんどの場合、システムを台無しにしたり、セキュリティリスクを引き起こしたりする可能性があるため、これらのオプションは使用しないでください。
結論#
chgrp
ファイル、ディレクトリ、およびシンボリックリンクのグループ所有権を変更します。
より人気のあるchown
を使用できますが グループを変更するコマンド、 chgrp
覚えやすいシンプルな構文です。
chgrp
の詳細については コマンドを実行するには、chgrpのマンページにアクセスするか、 man chgrp
と入力します。 ターミナルで。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。