GNU/Linux >> Tutoriels Linux >  >> Linux

Commande Linux runuser - Exécuter Shell avec l'ID utilisateur/groupe spécifié

La commande runuser est utilisée pour exécuter un shell avec un utilisateur et un ID de groupe spécifiés. Cette commande modifie les identifiants d'utilisateur et de groupe. Lorsque vous souhaitez exécuter certaines commandes en tant qu'un autre utilisateur, cette commande peut être utilisée pour changer d'utilisateur. Cette commande est similaire à la commande su, mais elle ne demande pas de mot de passe. Ainsi, seul l'utilisateur privilégié, c'est-à-dire l'utilisateur root, peut exécuter cette commande avec succès et peut passer à n'importe quel utilisateur sans avoir besoin de mot de passe.

Cette commande est très utile lorsqu'elle est utilisée dans des scripts shell. C'est parce qu'il s'agit d'une commande non interactive. La commande su ne peut pas être utilisée pour les scripts shell car elle demande un mot de passe lorsqu'elle est exécutée en tant qu'utilisateur autre que root. Mais en cas de commande runuser, elle échoue et se termine avec une erreur (pour un utilisateur non privilégié). Comme la commande runuser n'exécute pas les crochets PAM et les modules d'authentification, elle a moins de frais généraux que su.

commande runuser

Voici un exemple d'utilisateur root exécutant la commande runuser :

[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

Vous pouvez vérifier l'utilisateur actuel avec la commande id. Désormais, lorsqu'un utilisateur non privilégié essaie d'exécuter cette commande :

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

Avec l'option -l ou --login, le nouveau shell peut devenir un shell de connexion comme dans le cas de la commande su. runuser - la commande a le même effet. Il modifie également les variables d'environnement. Les variables comme PWD et PATH changent leurs valeurs avec cette option.

[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

Vous pouvez fournir votre shell personnalisé si vous ne voulez pas de shell par défaut avec l'option -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. Ajouter un utilisateur au groupe sous Linux, comment le faire (avec exemples)

  2. Commande Linux su

  3. Exécutez la commande shell dans jenkins en tant qu'utilisateur root ?

  4. Pourquoi exécuter une commande shell Linux avec '&' ?

  5. Exécutez la commande en tant qu'utilisateur du système Linux (shell =/bin/false)

Liste des utilisateurs sous Linux expliquée avec des exemples

Supprimer des utilisateurs sous Linux avec la commande Userdel

Ajout de nouveaux utilisateurs sous Linux avec la commande Useradd

Modifier des groupes sous Linux avec la commande groupmod

Supprimer des groupes sous Linux avec la commande groupdel

Créer de nouveaux groupes sous Linux avec la commande Groupadd