私は bash シェルを使用しています。特定のユーザーのすべてのコマンドを、シェル内の特定のグループ コマンドとして実行したいのですが、どうすればいいでしょうか? ~/.bashrc で何かできることはありますか?
答え1
ユーザーがセッションの残りを somegroup で過ごしたい場合、newgrp
次のように を実行できます。
newgrp somegroup
権限に応じて、パスワードの入力を求められる場合があります。man newgrp
詳細については、を参照してください。
ユーザーがセッションを開始したときに所属するグループは、/etc/passwd
ファイルのその行の 4 番目のフィールドによって決定されます。そのファイルを直接操作したくない場合は、安全に変更するためのシステム ユーティリティがあります。1 つは次のとおりですusermod
。
usermod -g somegroup someuser
(somegroup
これを実行する前に存在している必要があります。) 上記を実行した後、 が次回someuser
ログインすると、デフォルトで になりますsomegroup
。
ファイル内のフィールドの解釈方法については/etc/passwd
、 を参照してくださいman 5 passwd
(「5」が重要です)。グループとそれに対応するグループ番号は、ファイルで定義されています/etc/group
。man 5 group
詳細については、 を参照してください。