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

Linuxrunuserコマンド-指定されたユーザー/グループIDでシェルを実行します

runuserコマンドは、指定されたユーザーIDとグループIDでシェルを実行するために使用されます。このコマンドは、ユーザーIDとグループIDを変更します。一部のコマンドを他のユーザーとして実行する場合は、このコマンドを使用してユーザーを変更できます。このコマンドはsuコマンドに似ていますが、パスワードの入力を求められません。したがって、特権ユーザー、つまりrootユーザーのみがこのコマンドを正常に実行でき、パスワードを必要とせずに任意のユーザーに変更できます。

このコマンドは、シェルスクリプトで使用する場合に非常に便利です。これは、非対話型コマンドであるためです。ルート以外のユーザーとして実行するとパスワードの入力を求められるため、シェルスクリプトにはSuコマンドを使用できません。ただし、runuserコマンドの場合は、失敗してエラーで終了します(非特権ユーザーの場合)。 runuserコマンドはPAMフックと認証モジュールを実行しないため、suよりもオーバーヘッドが少なくなります。

runuserコマンド

runuserコマンドを実行するrootユーザーの例を次に示します。

[root@redhat-server /]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=root:system_r:unconfined_t:SystemLow-SystemHigh
[root@redhat-server /]# runuser jack
[jack@redhat-server /]$ id
uid=501(jack) gid=501(jack) groups=501(jack),504(javaproject) context=root:system_r:unconfined_t:SystemLow-SystemHigh

idコマンドで現在のユーザーを確認できます。特権のないユーザーがこのコマンドを実行しようとすると、次のようになります。

[jack@redhat-server /]$ runuser jones
runuser: cannot set groups: Operation not permitted

-lまたは--loginオプションを使用すると、suコマンドの場合と同様に、新しいシェルをログインシェルにすることができます。 runuser-コマンドも同じ効果があります。環境変数も変更します。 PWDやPATHなどの変数は、このオプションを使用して値を変更します。

[root@redhat-server ~]# runuser - jones
[jones@redhat-server ~]$ id
uid=502(jones) gid=502(jones) groups=502(jones),504(javaproject) context=root:system_r:unconfined_t:SystemLow-SystemHigh
[jones@redhat-server ~]$ pwd
/home/jones

-sオプションを使用したデフォルトのシェルが必要ない場合は、カスタムシェルを提供できます。

[root@redhat-server ~]# echo $SHELL
/bin/bash
[root@redhat-server ~]# runuser -s /bin/sh jones
sh-3.2$ echo $SHELL
/bin/sh
sh-3.2$ id
uid=502(jones) gid=502(jones) groups=502(jones),504(javaproject) context=root:system_r:unconfined_t:SystemLow-SystemHigh

Linux
  1. Linuxsuコマンド

  2. rootユーザーとしてjenkinsでシェルコマンドを実行しますか?

  3. 「&」を使用して Linux シェル コマンドを実行するのはなぜですか?

  1. 例を含むwcLinuxコマンド

  2. Linuxのグループにユーザーを追加する方法(例を含む)

  3. Linux システム ユーザーとしてコマンドを実行します (シェル =/bin/false)

  1. Linuxで制限時間(タイムアウト)を使用してコマンドを実行する方法

  2. Linuxシェルコマンド/スクリプトをバックグラウンドで実行する方法

  3. Linuxでchownコマンドを使用してファイル/グループ所有者を変更する方法