RUNUSER(1) | Commandes de lutilisateur | RUNUSER(1) |
runuser - Exécuter une commande avec des identifiants d’utilisateur et de groupe substitués
runuser [options] -u utilisateur [[--] commande [paramètre...]]
runuser [options] [-] [utilisateur [paramètre...]]
runuser permet d’exécuter des commandes en substituant les identifiants d’utilisateur et de groupe. Si l’option -u n’est pas donnée, elle a recours à des sémantiques compatibles avec su et un interpréteur de commandes est exécuté. La différence entre les commandes runuser et su est que runuser ne demande pas de mot de passe (puisqu’elle ne peut être exécutée que par le superutilisateur) et qu’elle utilise une configuration PAM différente. La commande runuser n’a pas besoin d’être installée avec des droits Set-user-UID.
Si une session PAM n’est pas indispensable, la solution recommandée consiste à utiliser la commande setpriv(1).
Si appelée sans argument, runuser exécute par défaut un interpréteur de commandes interactif en tant que superutilisateur.
Pour assurer la rétrocompatibilité, runuser ne change pas, par défaut, de répertoire actuel et ne définit que les variables d’environnement HOME et SHELL (plus USER et LOGNAME si l’utilisateur cible n’est pas le superutilisateur). Cette version de runuser utilise PAM pour la gestion de session.
Remarquez que runuser utilise dans tous les cas PAM (pam_getenvlist()) pour effectuer une modification sur l’environnement final. Les options de la ligne de commande comme --login ou --preserve-environment touchent l’environnement avant qu’il ne soit modifié par PAM.
Since version 2.38 runuser resets process resource limits RLIMIT_NICE, RLIMIT_RTPRIO, RLIMIT_FSIZE, RLIMIT_AS and RLIMIT_NOFILE.
-c, --command=commande
-f, --fast
-g, --group=groupe
-G, --supp-group=groupe
-, -l, --login
-P, --pty
This feature is mostly designed for interactive sessions. If the standard input is not a terminal, but for example a pipe (e.g., echo "date" | runuser --pty -u user), then the ECHO flag for the pseudo-terminal is disabled to avoid messy output.
-m, -p, --preserve-environment
-s, --shell=shell
Si l’utilisateur cible a un interpréteur de commandes restreint (c’est-à-dire ne faisant pas partie de /etc/shells), l’option --shell et la variable d’environnement SHELL sont ignorées sauf si l’utilisateur appelant est le superutilisateur.
--session-command=commande
-w, --whitelist-environment=liste
-h, --help
-V, --version
runuser lit les fichiers de configuration /etc/default/runuser et /etc/login.defs. Les éléments de configuration suivants sont significatifs pour runuser.
ENV_PATH (chaîne)
ENV_ROOTPATH (chaîne), ENV_SUPATH (chaîne)
ALWAYS_SET_PATH (booléen)
La variable d’environnement PATH peut être différente sur des systèmes où /bin et /sbin sont fusionnés dans /usr, cette variable est aussi concernée par l’option --login de la ligne de commande et le paramétrage du système PAM (comme pam_env(8)).
runuser renvoie normalement le code de retour de la commande qu’elle exécute. Si la commande a été tuée par un signal, runuser renvoie le numéro du signal plus 128.
Le code de retour généré par runuser elle-même est un des suivants.
1
126
127
/etc/pam.d/runuser
/etc/pam.d/runuser-l
/etc/default/runuser
/etc/login.defs
Cette commande runuser est dérivée de su de coreutils, qui était basée sur une implémentation de David MacKenzie, et de la commande runuser de Fedora par Dan Walsh.
setpriv(1), su(1), login.defs(5), shells(5), pam(8)
Pour signaler un bogue, utilisez le gestionnaire de bogues sur <https://github.com/util-linux/util-linux/issues>.
La commande runuser fait partie du paquet util-linux, elle est disponible sur l’archive du noyau Linux <https://www.kernel.org/pub/linux/utils/util-linux/>.
2024-12-05 | util-linux 2.39.3 |