GNU/Linux >> Linux の 問題 >  >> Linux

Linuxのchgrpおよびnewgrpコマンドの概要

最近の記事で、 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
結論

ユーザー、グループ、および権限を管理する方法を理解することが重要です。すべての環境が同じように設定されているわけではないため、発生する可能性のある問題を回避するためのいくつかの代替方法を知っておくことも役立ちます。


Linux
  1. Linuxuseraddコマンドの概要

  2. Linuxでのalternativesコマンドの概要

  3. Linuxコマンド:jobs、bg、およびfg

  1. Linuxのrebootおよびshutdownコマンド

  2. Linux のジョブ制御コマンドを理解する – bg、fg、および CTRL+Z

  3. Linux でユーザー/グループの UID と GID を (正しく) 変更する方法

  1. Linuxのwatchコマンドでコマンドとタスクを監視する

  2. Linuxのchownコマンドの概要

  3. Linuxコマンド-概要と例