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