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

Führen Sie einen Teil eines Bash-Skripts als ein anderer Benutzer aus

Verwenden Sie den sudo-Befehl im Skript.

In der Form:

sudo -u username command

Der sudo-Befehl führt Befehl aus als Benutzer Benutzername .

Wenn das Skript als root ausgeführt wird, wird es meines Erachtens nicht zur Eingabe eines Kennworts auffordern. Andernfalls behandelt dieser Artikel die Verwendung von sudo mit Kennwort in einer Befehlszeile?, und dieser Artikel erläutert die Verwendung von sudo ohne Kennwort?


Diese Antwort ist gut, aber der Serverfault-Ratschlag ist etwas gefährlich - würde jedem erlauben, alles als root auszuführen! Deshalb poste ich hier, weil ich den Kommentar nicht formatieren kann.

Ich würde empfehlen, visudo zu verwenden, um die erforderlichen Berechtigungen so genau wie möglich zu vergeben. Geben Sie visudo ein und fügen Sie eine Zeile hinzu wie:

username hostname = NOPASSWD: /full/path/to/command1, full/path/to/command2

Wenn Sie dasselbe auf vielen Hosts ausführen müssen, können Sie es öffnen mit:

username ALL = NOPASSWD: /full/path/to/command1, full/path/to/command2

Aber ich würde beides **nicht* verwenden:

username ALL=(ALL) NOPASSWD: ALL

orusername hostname =ALL

Die Manpage von sudoer enthält viele blutige Details


# Ich=mag:

#test if running bash as a different user works
sudo -u nobody bash -c : && RUNAS="sudo -u nobody"

echo 1: $USER

#Runs bash with commands between '_' as nobody if possible
$RUNAS bash<<_
echo 2: \$USER
_

echo 3: $USER

# ./ausführen

1: root
2: nobody
3: root

Linux
  1. Führen Sie Container unter Linux ohne sudo in Podman aus

  2. Wie lässt sich ein Skript rückwirkend als Root ausführen?

  3. Skript mit Argumenten als Benutzer ausführen?

  4. Bash-Skript - So lesen Sie Benutzereingaben

  5. Führen Sie das Bash-Skript als Daemon aus

So führen Sie ein Bash-Skript aus {7 Methoden}

So führen Sie ein Bash-Skript aus

Führen Sie das Bash-Skript nach der Anmeldung aus

Führen Sie den Bash-Befehl auf der Jenkins-Pipeline aus

su - Benutzer Vs sudo su - Benutzer

Führen Sie ein Shell-Skript als ein anderer Benutzer aus