Scroll to navigation

RUN0(1) run0 RUN0(1)

NOM

run0 – Élévation des privilèges

SYNOPSIS

run0 [OPTIONS...] [COMMANDE...]

DESCRIPTION

run0 peut être utilisé pour acquérir temporairement et interactivement des privilèges différents ou plus élevés. Il remplit un rôle similaire à celui de sudo(8), mais fonctionne différemment pour quelques points essentiels :

•Aucune information d’identification relative au contexte d’exécution ou de sécurité n’est héritée de l’appelant dans les commandes invoquées, car celles-ci sont exécutées à partir d’un nouveau processus isolé créé par le gestionnaire de services.

•L’authentification se fait à travers polkit[1], isolant par conséquent l’invite d’authentification du terminal (si possible).

•Un pseudo-terminal indépendant est alloué pour la commande invoquée, en déconnectant sa durée de vie et en l’isolant pour sa sécurité.

•Aucune fonctionnalité de bit d’accès set-group-ID/set-user-ID au fichier n’est utilisée pour sa mise en œuvre.

Tout cela fournit un remplaçant plus sûr et plus robuste du mécanisme sudo, en particulier dans les environnements de système d’exploitation où la prise en charge de set-group-ID/set-user-ID n’est pas disponible (par exemple, en activant la variable NoNewPrivileges= dans systemd-system.conf(5)).

Toute session invoquée à l’aide de run0 est exécutée en utilisant la pile PAM de « systemd-run0 ».

Remarquez que run0 est mis en œuvre comme une invocation multi-appel de remplacement de systemd-run(1). C’est-à-dire que run0 est un lien symbolique vers le fichier exécutable systemd-run et qu’il se comporte comme run0 s’il est appelé à l’aide du lien symbolique ; autrement il se comporte comme systemd-run.

Note that TTY isolation as provided by the default value of the --pty option is a core feature of run0. Redirecting terminals must therefore be done with care, avoiding giving such control to untrusted programs.

OPTIONS

Les options suivantes sont comprises :

--unit=

Utiliser ce nom d’unité au lieu d’un nom automatiquement généré.

Ajouté dans la version 256.

--property=

Définir une propriété de l’unité de service créée. Cette option reçoit une affectation du même format que pour la commande set-property de systemctl(1).

Ajouté dans la version 256.

--description=

Fournir une description de l’unité de service invoquée. Si elle n’est pas précisée, la commande sera utilisée comme description. Consulter Description= dans systemd.unit(5).

Ajouté dans la version 256.

--slice=

Make the new .service unit part of the specified slice, instead of user.slice. This option conflicts with --lightweight= and --area=, and implies "XDG_SESSION_CLASS=none", to keep the new process within the specified slice instead of a new session scope.

Ajouté dans la version 256.

--slice-inherit

Make the new .service unit part of the slice the run0 itself has been invoked in. This option may be combined with --slice=, in which case the slice specified via --slice= is placed within the slice the run0 command is invoked in. Also conflicts with --lightweight= and --area= and implies "XDG_SESSION_CLASS=none", similar to --slice=.

Exemple : supposons que run0 a été invoqué dans le slice toto.slice et que l’argument de --slice= est titi. L’unité sera placée dans toto-titi.slice.

Ajouté dans la version 256.

--user=, -u, --group=, -g

Basculer vers l’utilisateur/groupe spécifié. Si non précisé, l’utilisateur par défaut est « root », à moins que l’option --area= ou --empower ne soit utilisée (voir ci-après), auquel cas, par défaut, ce sera l’utilisateur appelant.

Ajouté dans la version 256.

--nice=

Exécuter la session invoquée avec le niveau de priorité (nice) spécifié.

Ajouté dans la version 256.

--chdir=, -D

Exécuter la session invoquée dans le répertoire de travail spécifié. Si non précisé, c’est par défaut le répertoire de travail actuel du client pour un basculement vers l’utilisateur « root » ou autrement le répertoire personnel de l’utilisateur cible.

Ajouté dans la version 256.

-k, --reset-timestamp

Revokes temporary polkit authorization for this terminal, if present.

Ajouté dans la version 262.

-K, --remove-timestamp

Revokes all temporary polkit authorizations for this user session.

Ajouté dans la version 262.

-v, --validate

Request authorization from polkit. Can be used to create a temporary authorization without running a command.

Ajouté dans la version 262.

--via-shell

Invoquer l’interpréteur de connexion de l’utilisateur cible et exécuter la commande indiquée.

Ajouté dans la version 258.

-i

Raccourci pour --via-shell --chdir='~'.

Ajouté dans la version 258.

--setenv=NOM[=VALEUR]

Exécuter la session invoquée avec la variable d’environnement indiquée. Ce paramètre peut être utilisé plusieurs fois pour définir plusieurs variables. Quand « = » et VALEUR sont omis, la valeur de la variable de même nom dans l’environnement appelant est utilisée.

Ajouté dans la version 256.

--background=COULEUR

Changer la couleur d’arrière-plan à la couleur ANSI spécifiée pour la durée de la session. Si non précisée, l’arrière-plan sera coloré d’un ton rougeâtre lors d’une opération en tant que « root » et d’un ton jaunâtre lors d’une opération sous un autre UID, pour rappeler la modification des privilèges. La couleur indiquée doit être une couleur SGR ANSI X3.64 d’arrière-plan, c’est-à-dire une chaine telle que « 40 », « 41 », ..., « 47 », « 48;2;... », « 48;5;... ». Consulter ANSI Escape Code (Wikipedia)[2] pour plus de détails. Définir à une chaine vide pour désactiver.

Exemple : « --background=44 » pour un arrière-plan bleu.

Ajouté dans la version 256.

--pty, --pty-late, --pipe

Demander l’attribution d’un pseudo-terminal pour la session run0 (pour les options --pty et --pty-late) ou demander le passage direct des descripteurs de fichier STDIO de l’appelant (pour l’option --pipe). L’option --pty-late est très similaire à l’option --pty, mais ne commence le traitement du terminal qu’une fois le démarrage de l’unité terminé, laissant l’entrée à la disposition des agents mots de passe/polkit jusqu’à ce moment-là. Si aucune option n’est spécifiée ou si l’option --pipe et l’une des options --pty/--pty-late sont spécifiées, le mode sera choisi automatiquement : si l’entrée standard, la sortie standard et la sortie d’erreur standard sont toutes connectées à un terminal, un pseudo-terminal est alloué (en mode --pty-late sauf si --no-ask-password est spécifié, auquel cas --pty est sélectionnée), sinon les descripteurs de fichier concernés sont transmis directement.

As mentioned above, TTY isolation as implemented by the default value of this option is crucial for security, so care must be taken when overriding it.

--pty et --pipe ont été ajoutées dans la version 257.

--pty-late a été ajoutée dans la version 258.

--shell-prompt-prefix=CHAINE

Définir une chaine de préfixe d’invite d’interpréteur. Elle contrôle en définitive la variable d’environnement $SHELL_PROMPT_PREFIX pour le programme invoqué qui est typiquement importée dans l’invite de l’interpréteur. Par défaut, si les émoticônes sont prises en charge, une émoticône superhéros est affichée (🦸). Ce comportement par défaut peut être modifié (ou désactivé) en passant la variable d’environnement $SYSTEMD_RUN_SHELL_PROMPT_PREFIX à run0 (voir ci-après). Définir à une chaine vide pour désactiver le préfixation de l’invite de l’interpréteur.

Ajouté dans la version 257.

--lightweight=BOOLÉEN

Contrôler l’activation du gestionnaire de service par utilisateur pour l’utilisateur cible. Par défaut (désactivation ou réglage à auto), si l’utilisateur cible est « root » ou un utilisateur système, le gestionnaire de service par utilisateur n’est pas activé lors de l’invocation de run0, sinon il est activé.

Cette option contrôle en définitive la variable d’environnement $XDG_SESSION_CLASS que pam_systemd(8) respecte.

Ajouté dans la version 258.

--area=domaine

Contrôler le « domaine » (area) du compte cible pour s’y connecter. Ces domaines sont des répertoires home secondaires dans le répertoire home principal de l’utilisateur cible, c’est-à-dire que la connexion dans un domaine tototiti d’un compte transforme la variable $HOME en ~/Domaines/tototiti lors de la connexion.

Si cette option est utilisée, l’utilisateur par défaut vers lequel effectuer la transition passe de « root » à l’utilisateur appelant (mais --user= a la priorité, voir ci-dessus). En d'autres termes, le simple fait de spécifier un domaine sans utilisateur permet de créer une nouvelle session de l’utilisateur appelant, mais avec juste un domaine différent.

Cette option contrôle en définitive la variable d’environnement $XDG_SESSION_AREA que pam_systemd(8) respecte.

Pour plus de détails sur le concept de domaine (area), consulter pam_systemd_home(8).

Ajouté dans la version 258.

--empower

Si cette option est spécifiée, run0 élève les privilèges de l’utilisateur système choisi (en utilisant l’option --user=) ou l’utilisateur actuel si aucun utilisateur n’est indiqué explicitement. Actuellement cela signifie que le processus invoqué obtient toutes les capacités disponibles et fait partie du groupe empower supplémentaire (pour lequel les actions de polkit(8) sont allouées par défaut), mais d’autres privilèges pourront être aussi accordés dans le futur en utilisant cette option.

Notez que les autres processus (non privilégiés) de l’utilisateur choisi obtiennent les privilèges pour le processus invoqué. Il est conseillé de ne pas utiliser cette option dans un environnement où un processus malveillant pourrait être exécuté sous l’identité de l’utilisateur.

Ajouté dans la version 259.

--same-root-dir

Exécuter la session run0 dans le même répertoire racine que celui dans lequel la commande run0 est exécutée.

Ajouté dans la version 259.

--machine=

Exécuter l’opération dans un conteneur local. Indiquer un nom de conteneur auquel se connecter.

Ajouté dans la version 256.

-n, --non-interactive

Equivalent to --no-ask-password.

Ajouté dans la version 262.

--no-ask-password

Ne pas demander à l'utilisateur de s'authentifier pour les opérations requérant des privilèges.

-h, --help

Afficher un aide-mémoire succinct et quitter.

-V, --version

Afficher une information de version courte et quitter.

--no-pager

Do not pipe output into a pager. This currently only applies to --help. (The pager is not started during normal operation.)

Ajouté dans la version 262.

Tous les arguments de la ligne de commande après le premier argument non-option font partie de la ligne de commande du processus lancé. Si aucune ligne de commande n’est spécifiée, un interpréteur de commandes interactif est invoqué. Cet interpréteur peut être contrôlé à travers l’option --via-shell, et dans ce cas l’interpréteur de l’utilisateur cible est utilisé, ou à travers l’option --setenv=SHELL=.... Par défaut, l’interpréteur de l’utilisateur originel est exécuté si l’opération est locale ou /bin/sh lorsque l’option --machine= est utilisée.

Notez qu’à la différence de sudo, run0 utilise toujours un interpréteur avec les sémantiques d’un interpréteur de connexion, quelle que soit l’option -i.

CODE DE RETOUR

En cas de succès, O est renvoyé. Si run0 échoue à démarrer la session ou, si la commande spécifiée échoue, une valeur différente de zéro est renvoyée.

VARIABLES D'ENVIRONNEMENT

Comme pour systemd-run, la session hérite de l’environnement du gestionnaire de service. De plus, les variables d’environnement suivantes seront définies :

$TERM

Copie de $TERM de l’appelant. Peut être outrepassée avec --setenv=

Ajouté dans la version 256.

$SUDO_USER

Nom d’utilisateur défini à celui de l’utilisateur originel.

Ajouté dans la version 256.

$SUDO_UID

Identifiant numérique UNIX de l’utilisateur défini à celui de l’utilisateur originel.

Ajouté dans la version 256.

$SUDO_GID

Identifiant du groupe numérique principal UNIX défini à celui de la session d'origine.

Ajouté dans la version 256.

$SHELL_PROMPT_PREFIX

Par défaut, définie à l’émoticône superhéros (si prise en charge), mais peut être outrepassée avec la variable d’environnement $SYSTEMD_RUN_SHELL_PROMPT_PREFIX (voir ci-après) ou l’option --shell-prompt-prefix= (voir ci-dessus).

Ajouté dans la version 257.

Les variables suivantes peuvent être passées à run0 :

$SYSTEMD_RUN_SHELL_PROMPT_PREFIX

Si définie, elle outrepasse le préfixe d’invite d’interpréteur que run0 établit pour l’interpréteur invoqué (l’émoticône superhéros). Définie à une chaine vide pour désactiver la préfixation de l’invite de l’interpréteur.

Ajouté dans la version 257.

VOIR AUSSI

systemd(1), systemd-run(1), sudo(8), machinectl(1), pam_systemd(8)

NOTES

1.
polkit
2.
ANSI Escape Code (Wikipédia version anglaise)

TRADUCTION

La traduction française de cette page de manuel a été créée par Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 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.

systemd 262.1