【Linux】現在のグループを一時的に変更する:newgrp

Linux

どーも!marusukeです!

現在のログインユーザ(シェルセッション)のグループを一時的に別のグループに変更するコマンドnewgrpについて説明します!

newgrpコマンドでできること

 newgrp [オプション] [グループ名]

newgrpコマンドは、現在のシェルセッションの所属するグループを変更し、変更後のグループの権限が適用します

使い方

newgrp グループ名

例: 特定のグループに変更

開発プロジェクトのグループdevelopersに一時的に切り替える場合:

$ newgrp developers

# idコマンドでgidやgroupを見るとグループが変わっているのが確認できます
$ id
uid=1000(sample-user) gid=2000(developers) groups=2000(developers),1001(sample-user)

このコマンドを実行すると、現在のシェルセッションがdevelopersグループに切り替わり、そのグループの権限で動作します

使用例

1. ファイル共有とアクセス権の設定

projectXのグループ権限でファイルを作成する場合(現在のグループでなく、projectXグループに所属するユーザのみがアクセス可能になるようにしたい時)

$ newgrp projectX
Password:  # グループパスワードを入力(必要な場合)

$ touch newfile.txt  # projectXグループの権限でファイルを作成

2. リソースへのアクセス権の取得

developersグループへのリソースへのアクセスする場合(現在のグループではdevelopersグループのリソースにアクセスできない時)

$ newgrp developers
Password:  # グループパスワードを入力(必要な場合)

$ cd /opt/developers/resources  # 開発リソースにアクセス

3. グループに属するディレクトリの作成

collaboratorsのグループ権限でディレクトリを作成する場合(現在のグループでなく、collaboratorsグループに所属するユーザのみがアクセス可能になるようにしたい時)

$ newgrp collaborators
Password:  # グループパスワードを入力(必要な場合)

$ mkdir /shared/collaborators_dir  # ディレクトリのグループ所有者がcollaboratorsに設定される

4. シェルセッションの一時的な変更

auditorsグループに所属するユーザとして操作したい時

$ newgrp auditors
Password:  # グループパスワードを入力(必要な場合)

$ less /var/log/audit.log  # auditorsグループの権限でログファイルを閲覧

オプション

newgrpコマンドには、いくつかのオプションがあります:

  • -(ハイフン): 新しいシェルセッションを開始します。これにより、新しい環境が読み込まれます
$ newgrp - developers

※新しいセッションなので、既存のセッションで設定していた環境変数や、個別のシェルに適用される設定(~/.bashrc~/.bash_profile)の内容は反映されなくなります

まとめ

newgrpコマンドは、一時的に現在のシェルセッションのグループIDを変更し、特定のグループの権限を持つことで、ファイルアクセスなどが簡単にできるようになります

グループパスワードを設定している場合は、切り替え時にパスワードの入力が求められます

以上です!

ここまで読んでいただきありがとうございました!

コメント

タイトルとURLをコピーしました