GNU/Linux >> Tutoriels Linux >  >> Linux

Est-il possible pour root d'exécuter une commande en tant que non root ?

Réponse courte :"Oui, c'est possible".

si vous souhaitez exécuter une application non-X, utilisez simplement la commande suivante :

sudo -u abc commande

Si vous souhaitez exécuter une application X en tant qu'autre utilisateur, mais avec votre propre bureau, vous devez d'abord créer un script d'assistance, cela vous simplifiera la vie

  • créez un dossier bin sous votre répertoire personnel :

mkdir -p ~/bin

et en utilisant votre éditeur de texte préféré créez un fichier ~/bin/xsudo comme suit :

#!/bin/bash
# (C) serge 2012
# The script is licensed to all users of StackExchange family free of charge
# Fixes/Enhancements to the script are greatly appreciated. 
# 
# SUDO_ASKPASS has to be set to the path of ssh-askpass
# fix the following two lines if your distribution does not match this autodetection
. /etc/profile.d/gnome-ssh-askpass.sh
export SUDO_ASKPASS="${SSH_ASKPASS}"

SUDOUSERNAME="$1"
shift
xauth nlist "${DISPLAY}"|sudo -HA -u $SUDOUSERNAME env --unset=XAUTHORITY \
bash -c "xauth nmerge - ; $*"

puis rendez-le exécutable :

chmod +x ~/bin/xsudo

et utilisez-le de la même manière que sudo mais sans interrupteur :

xsudo application utilisateur

Profitez-en.

PS À partir de xsession du root compte est fortement déconseillé !


Une solution portable serait :

su abc -c google-chrome

Cependant, comme google-chrome nécessite un accès X11, cela échouera probablement à moins que vous ne le sécurisiez, ce qui serait une très mauvaise idée, en particulier lors de l'exécution en tant que root.

Si le réglage/transfert X11 est autorisé, une meilleure solution serait

ssh -X [email protected] google-chrome

ou

ssh -Y [email protected] google-chrome

Linux
  1. Exécuter la commande dans le terminal actif distant ?

  2. Exécuter la commande sur une plage définie de répertoires ?

  3. Exécuter la commande Nohup avec entrée ?

  4. Comment exécuter la commande Ping uniquement pour un nombre N de paquets

  5. Où est .bashrc pour root ?

12 exemples de commandes IP pour les utilisateurs Linux

11 exemples de commandes Split utiles pour les systèmes Linux

Exa - Un remplacement moderne pour la commande ls

Comment exécuter une commande dans un script shell ?

Syntaxe correcte pour la commande id -r

Bloquer une commande particulière sous Linux pour un utilisateur spécifique