どーも!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を変更し、特定のグループの権限を持つことで、ファイルアクセスなどが簡単にできるようになります
グループパスワードを設定している場合は、切り替え時にパスワードの入力が求められます
以上です!
ここまで読んでいただきありがとうございました!





コメント