最近の記事で、 chownを紹介しました コマンド。システム上のファイルの所有権を変更するために使用されます。所有権は、オブジェクトに割り当てられたユーザーとグループの組み合わせであることを思い出してください。 chgrp およびnewgrp コマンドは、グループの所有権を維持する必要があるファイルを管理するための追加のヘルプを提供します。
chgrpの使用
chgrp コマンドは、ファイルのグループ所有権を変更するだけです。 chown:
$chown :alan mynotes
または:
$chgrp alan mynotes
chgrpに対するいくつかの追加の引数は、コマンドラインとスクリプトの両方で役立ちます。他の多くのLinuxコマンドと同様に、chgrpには再帰的な引数 -Rがあります。 。以下に示すように、ディレクトリとそのコンテンツを再帰的に操作するには、これが必要になります。 -vを追加しました (冗長 )引数なので、chgrpはそれが何をしているのかを教えてくれます:
$ ls -l . conf
.:
drwxrwxr-x 2 alan alan 4096 Aug 5 15:33 conf
conf:
-rw-rw-r-- 1 alan alan 0 Aug 5 15:33 conf.xml
# chgrp -vR delta conf
changed group of 'conf/conf.xml' from alan to delta
changed group of 'conf' from alan to delta
その他のLinuxリソース
- Linuxコマンドのチートシート
- 高度なLinuxコマンドのチートシート
- 無料のオンラインコース:RHELの技術概要
- Linuxネットワーキングのチートシート
- SELinuxチートシート
- Linuxの一般的なコマンドのチートシート
- Linuxコンテナとは何ですか?
- 最新のLinux記事
参照ファイル(-reference =RFILE )は、スクリプトを実行する場合のように、特定の構成に一致するようにファイルのグループを変更する場合、またはグループがわからない場合に使用できます。別のファイルのグループを複製できます( RFILE )、参照ファイルと呼ばれます。たとえば、上記で行った変更を元に戻すには(ドット[。 ]は現在の作業ディレクトリを参照します):
$ chgrp -vR --reference=. conf
ほとんどのコマンドには、出力を制御するための引数があります。最も一般的なのは-v 詳細を有効にするには、chgrpコマンドに詳細モードがあります。 -cもあります (-変更 )引数。変更が行われた場合にのみレポートするようにchgrpに指示します。 Chgrpは、操作が許可されていない場合など、他のことを引き続き報告します。
引数-f (-サイレント 、-静か )は、ほとんどのエラーメッセージを抑制するために使用されます。この引数と-cを使用します 次のセクションで、実際の変更のみを表示します。
ルート( / Linuxファイルシステムの)は、非常に敬意を持って扱う必要があります。このレベルでコマンドの間違いを犯した場合、その結果はひどくなり、システムが完全に役に立たなくなる可能性があります。特に、あらゆる種類の変更、またはさらに悪いことに削除を行う再帰コマンドを実行している場合。 chgrpコマンドには、ルートを保護および保持するために使用できる引数があります。引数は--preserve-root 。この引数をルートで再帰的なchgrpコマンドとともに使用すると、何も起こらず、代わりにメッセージが表示されます。
[root@localhost /]# chgrp -cfR --preserve-root a+w /
chgrp: it is dangerous to operate recursively on '/'
chgrp: use --no-preserve-root to override this failsafe
このオプションは、再帰と組み合わせて使用しない場合は効果がありません。ただし、コマンドがrootユーザーによって実行される場合、 /の権限 変更されますが、その中の他のファイルやディレクトリのものは変更されません:
[alan@localhost /]$ chgrp -c --preserve-root alan /
chgrp: changing group of '/': Operation not permitted
[root@localhost /]# chgrp -c --preserve-root alan /
changed group of '/' from root to alan
驚いたことに、これはデフォルトの引数ではないようです。オプション--no-preserve-root デフォルトです。 「保存」オプションを指定せずに上記のコマンドを実行すると、デフォルトで「保存なし」モードになり、変更してはならないファイルの権限が変更される可能性があります。
[alan@localhost /]$ chgrp -cfR alan /
changed group of '/dev/pts/0' from tty to alan
changed group of '/dev/tty2' from tty to alan
changed group of '/var/spool/mail/alan' from mail to alan
newgrpについて
newgrp コマンドを使用すると、ユーザーは現在のプライマリグループを上書きできます。 newgrpは、すべてのファイルが同じグループ所有権を持っている必要があるディレクトリで作業している場合に便利です。 shareというディレクトリがあるとします。 さまざまなチームがマーケティング写真を保存するイントラネットサーバー上。グループは共有です 。さまざまなユーザーがファイルをディレクトリに配置すると、ファイルのプライマリグループが混同される可能性があります。新しいファイルが追加されるたびに、 chgrpを実行できます グループを共有に設定して、取り違えを修正します :
$ cd share
ls -l
-rw-r--r--. 1 alan share 0 Aug 7 15:35 pic13
-rw-r--r--. 1 alan alan 0 Aug 7 15:35 pic1
-rw-r--r--. 1 susan delta 0 Aug 7 15:35 pic2
-rw-r--r--. 1 james gamma 0 Aug 7 15:35 pic3
-rw-rw-r--. 1 bill contract 0 Aug 7 15:36 pic4
setgidについて説明しました chmodに関する私の記事のモード 指図。これは、この問題を解決する1つの方法です。しかし、何らかの理由でsetgidビットが設定されていなかったとします。 newgrpコマンドは、この状況で役立ちます。ユーザーがファイルを共有に入れる前 ディレクトリでは、コマンド newgrp share を実行できます 。これにより、プライマリグループが共有に切り替わります。 そのため、ディレクトリに配置されたすべてのファイルには、自動的にグループ共有が割り当てられます。 、ユーザーのプライマリグループではなく。終了したら、ユーザーは次のコマンドを使用して通常のプライマリグループに戻すことができます:
newgrp alan
ユーザー、グループ、および権限を管理する方法を理解することが重要です。すべての環境が同じように設定されているわけではないため、発生する可能性のある問題を回避するためのいくつかの代替方法を知っておくことも役立ちます。