GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Kann Root einen Befehl als Nicht-Root ausführen?

Kurze Antwort:"Ja, das ist möglich".

Wenn Sie eine Nicht-X-Anwendung ausführen möchten, verwenden Sie einfach den folgenden Befehl:

sudo -u abc Befehl

Wenn Sie eine X-Anwendung als ein anderer Benutzer ausführen möchten, aber mit Ihrem eigenen Desktop, müssen Sie zuerst ein Hilfsskript erstellen, das Ihr Leben einfacher macht

  • erstellen Sie einen bin-Ordner unter Ihrem Home-Verzeichnis:

mkdir -p ~/bin

und erstellen Sie mit Ihrem bevorzugten Texteditor eine Datei ~/bin/xsudo wie folgt:

#!/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 - ; $*"

dann ausführbar machen:

chmod +x ~/bin/xsudo

und verwenden Sie es genauso wie sudo aber ohne Schalter:

xsudo Benutzeranwendung

Viel Spaß.

P.S. Ab xsession ab root Account wird dringend davon abgeraten!


Eine portable Lösung wäre:

su abc -c google-chrome

Da Google-Chrome jedoch X11-Zugriff erfordert, wird dies wahrscheinlich fehlschlagen, es sei denn, Sie entsichern es, was eine sehr schlechte Idee wäre, insbesondere wenn es als Root ausgeführt wird.

Wenn X11-Tuneling/Forwarding erlaubt ist, wäre ein besserer Weg

ssh -X [email protected] google-chrome

oder

ssh -Y [email protected] google-chrome

Linux
  1. DNF-Befehlsbeispiele für Anfänger

  2. Befehl im aktiven Remote-Terminal ausführen?

  3. Befehl auf einem definierten Bereich von Verzeichnissen ausführen?

  4. Nohup-Befehl mit Eingabe ausführen?

  5. Einen Befehl ausführen, wo eine Datei gefunden wird?

Legen Sie Datum und Uhrzeit für jeden Befehl fest, den Sie im Bash-Verlauf ausführen

12 IP-Befehlsbeispiele für Linux-Benutzer

11 Nützliche Split-Befehlsbeispiele für Linux-Systeme

Exa – Ein moderner Ersatz für ls Command

Wie führe ich einen Befehl in einem Shell-Skript aus?

Wo ist .bashrc für root?