RUNUSER(1)

NOM
runuser - Exécuter une commande avec des identifiants d’utilisateur et de groupe substitués

SYNOPSIS

runuser [options] -u utilisateur [[--] commande [paramètre...]]

runuser [options] [-] [ utilisateur [argument ...] ]

DESCRIPTION

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-ID.

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.

Depuis la version 2.38, runuser réinitialise les limites de ressource RLIMIT_NICE, RLIMIT_RTPRIO, RLIMIT_FSIZE, RLIMIT_AS et 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
    Indiquer un groupe supplémentaire. Cette option est réservée au superutilisateur. Le premier groupe supplémentaire spécifié est également utilisé comme 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 ;

        • initialise les variables d'environnement HOME, SHELL, USER, LOGNAME et PATH ;

        • se place dans le répertoire personnel de l'utilisateur cible ;

        • définit argv[0] pour l’interpréteur de commandes à « - » pour faire de l’interpréteur de commandes un interpréteur de connexion.

-P, --pty
    Créer un pseudo-terminal pour la session. Le terminal indépendant apporte une meilleure sécurité, car l'utilisateur ne partage pas de terminal avec la session d'origine. Cela permet d'éviter une injection d’ioctl TIOCSTI de terminal et d'autres attaques de sécurité contre les descripteurs de fichier du terminal. Il est également possible de mettre la session entière en arrière-plan (par exemple, runuser --pty -u nom_utilisateur -- commande &). Si le pseudo terminal est activé, la commande runuser fonctionne comme un serveur mandataire entre les sessions (avec une copie de l'entrée et de la sortie standards).

    La plupart du temps, cette fonctionnalité est conçue pour des sessions interactives. Si l'entrée standard n'est pas un terminal mais un tube (« pipe ») (par exemple, echo "date" | runuser --pty -u utilisateur), le drapeau ECHO du pseudo-terminal est désactivé pour éviter une sortie désordonnée.

-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.

-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 listé 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 (déconseillé).

-w, --whitelist-environment=liste
    Ne pas réinitialiser les variables d'environnement spécifiées dans la liste séparées par des virgules lors du nettoyage de l'environnement pour --login (une connexion). La liste blanche est ignorée pour les variables d'environnement HOME, SHELL, USER, LOGNAME et PATH.

-h, --help
    Afficher l’aide-mémoire puis quitter.

-V, --version
    Afficher la version puis quitter.

FICHIERS DE CONFIGURATION

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)
    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)
    Définit la variable d'environnement PATH pour le superutilisateur. ENV_SUPATH est prioritaire. La valeur par défaut est /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin.

ALWAYS_SET_PATH (booléen)
    Si définie à yes et que ni --login, ni --preserve-environment n’étaient indiquées, runuser initialise 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 affectée par l'option --login de la ligne de commandes et le paramétrage du système PAM (c'est-à-dire, pam_env(8)).

CODE DE RETOUR

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
    Erreur générique avant l'exécution de 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 spécifié

/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 envoyer un rapport de bogue, utilisez le système de gestion des problèmes à l'adresse

DISPONIBILITÉ

La commande runuser fait partie du paquet util-linux qui peut être téléchargé de

TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess <ccb@club-internet.fr>, Michel Quercia <quercia AT cal DOT enst DOT fr>, Thierry Vignaud <tvignaud@mandriva.com>, Frédéric Delanoy <delanoy_f@yahoo.com>, Thierry Vignaud <tvignaud@mandriva.com>, Christophe Sauthier <christophe@sauthier.com>, Sébastien Blanchet, Jérôme Perzyna <jperzyna@yahoo.fr>, Aymeric Nys <aymeric AT nnx POINT com>, Alain Portal <aportal@univ-montp2.fr>, Thomas Huriaux <thomas.huriaux@gmail.com>, Yves Rütschlé <l10n@rutschle.net>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Philippe Piette <foudre-blanche@skynet.be>, Jean-Baka Domelevo-Entfellner <domelevo@gmail.com>, Nicolas Haller <nicolas@boiteameuh.org>, Sylvain Archenault <sylvain.archenault@laposte.net>, Valéry Perrin <valery.perrin.debian@free.fr>, Jade Alglave <jade.alglave@ens-lyon.org>, Nicolas François <nicolas.francois@centraliens.net>, Alexandre Kuoch <alex.kuoch@gmail.com>, Lyes Zemmouche <iliaas@hotmail.fr>, Florentin Duneau <fduneau@gmail.com>, Alexandre Normand <aj.normand@free.fr>, David Prévot <david@tilapin.org> et Jean-Philippe MENGUAL <jpmengual@debian.org>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 (https://www.gnu.org/licenses/gpl-3.0.html) concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.