Provided by: util-linux-locales_2.41-4ubuntu4_all 

NOM
runuser - Exécuter une commande avec des identifiants d’utilisateur et de groupe substitués
SYNOPSIS
runuser [options] -u user [[--] command [argument...]]
runuser [options] [-] [user [argument...]]
DESCRIPTION
runuser can be used to run commands with a substitute user and group ID. If the option -u is not given,
runuser falls back to su-compatible semantics and a shell is executed. The difference between the
commands runuser and su is that runuser does not ask for a password (because it may be executed by the
root user only) and it uses a different PAM configuration. The command runuser does not have to be
installed with set-user-ID permissions.
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.
OPTIONS
-c, --command=commande
Passer une commande à l’interpréteur de commandes avec l’option -c.
-f, --fast
Passer -f à l’interpréteur de commandes, ce qui pourrait être utile ou non suivant l’interpréteur de
commandes.
-g, --group=groupe
Le groupe primaire à utiliser. Cette option n’est permise que pour le superutilisateur.
-G, --supp-group=groupe
Spécifier un groupe supplémentaire. Cette option n’est disponible que pour le superutilisateur. Le
premier groupe supplémentaire spécifié est également utilisé en tant que groupe primaire si l’option
--group n’est pas spécifiée.
-, -l, --login
Démarrer l’interpréteur de commandes comme un interpréteur de connexion avec un environnement
similaire à une connexion réelle :
• effacer toutes les variables d’environnement sauf TERM et les variables spécifiées avec
--whitelist-environment ;
• initialiser les variables d’environnement HOME, SHELL, USER, LOGNAME et PATH
• se placer dans le répertoire personnel de l’utilisateur cible ;
• définir argv[0] pour l’interpréteur de commandes à « - » pour faire de l’interpréteur de
commandes un interpréteur de connexion.
-m, -p, --preserve-environment
Préserver la totalité de l’environnement, c’est-à-dire ne pas définir HOME, SHELL, USER ni LOGNAME.
Cette option est ignorée si l’option --login est indiquée.
-P, --pty
Create a pseudo-terminal for the session. The independent terminal provides better security as the
user does not share a terminal with the original session. This can be used to avoid TIOCSTI ioctl
terminal injection and other security attacks against terminal file descriptors. The entire session
can also be moved to the background (e.g., runuser --pty -u user -- command &). If the
pseudo-terminal is enabled, then runuser works as a proxy between the sessions (sync stdin and
stdout).
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.
-s, --shell=shell
Exécuter l’interpréteur de commandes shell indiqué au lieu de celui par défaut. L’interpréteur de
commandes à exécuter est sélectionné d’après les règles suivantes dans cet ordre :
• l’interpréteur de commandes indiqué avec --shell ;
• l’interpréteur de commandes indiqué dans la variable d’environnement SHELL si l’option
--preserve-environment est utilisée ;
• l’interpréteur de commandes indiqué dans l’entrée passwd de l’utilisateur cible ;
• /bin/sh
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
Comme -c, mais sans créer de nouvelle session (à éviter).
-T, --no-pty
Do not create a pseudo-terminal, opposite of --pty and -P. Note that running without a
pseudo-terminal opens the security risk of privilege escalation through TIOCSTI/TIOCLINUX ioctl
command injection.
-u, --user=user
Run command with the effective user ID and group ID of the user name user.
-w, --whitelist-environment=liste
Ne pas réinitialiser les variables d’environnement spécifiées dans une liste séparée par des virgules
au moment de vider l’environnement pour --login (une connexion). La liste blanche est ignorée
s’agissant des variables d’environnement HOME, SHELL, USER, LOGNAME et PATH.
-h, --help
Afficher l’aide-mémoire puis quitter.
-V, --version
Afficher la version et quitter.
FICHIERS DE CONFIGURATION
runuser reads the /etc/default/runuser and /etc/login.defs configuration files. The following
configuration items are relevant for runuser:
ENV_PATH (chaîne)
Définit la variable d’environnement pour un utilisateur ordinaire. La valeur par défaut est
/usr/local/bin:/bin:/usr/bin.
ENV_ROOTPATH (chaîne), ENV_SUPATH (chaîne)
Defines the PATH environment variable for root. ENV_SUPATH takes precedence. The default value is
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin.
ALWAYS_SET_PATH (booléen)
If set to yes and --login and --preserve-environment were not specified runuser initializes PATH.
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)).
CODE DE RETOUR
runuser normally returns the exit status of the command it executed. If the command was killed by a
signal, runuser returns the number of the signal plus 128.
Le code de retour généré par runuser elle-même est un des suivants.
1
Erreur générale avant d’exécuter la commande demandée.
126
La commande demandée n’a pas pu être exécutée.
127
La commande demandée n’a pas été trouvée.
FICHIERS
/etc/pam.d/runuser
fichier de configuration de PAM par défaut
/etc/pam.d/runuser-l
fichier de configuration de PAM si --login est indiqué
/etc/default/runuser
fichier de configuration logindef spécifique à runuser
/etc/login.defs
fichier de configuration logindef général
HISTORIQUE
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.
VOIR AUSSI
setpriv(1), su(1), login.defs(5), shells(5), pam(8)
SIGNALER DES BOGUES
Pour signaler un bogue, utilisez le gestionnaire de bogues
<https://github.com/util-linux/util-linux/issues>.
DISPONIBILITÉ
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/>.
util-linux 2.41 2025-09-06 RUNUSER(1)