Ich erstelle ein Skript, das eine Reihe von Befehlen ausführt, die eine Website auf einen Computer herunterladen und alles einrichten.
Daher erfordern die meisten Befehle Root-Zugriff. Zum Beispiel einen vhost hinzufügen /etc/apache2/sites-available
, aktivieren, Apache neu starten usw.
Dazu muss ich das Skript mit ausführen sudo
.
sudo ./install-website.sh
Die Website befindet sich auf einem Server mit einem Git-Repository, das mit einem kennwortlosen SSH-Zugriff eingerichtet ist. Dies funktioniert jedoch nur für den Benutzer, dan
da sich die Schlüssel in meinem Basisordner und nicht im Basisordner des Stammverzeichnisses befinden.
Also, wenn es diesen Teil erreicht:
git clone user@host.com:git-repo $PATH_TO_INSTALLATION
Seit ich das Skript mit gestartet habe sudo
, ist der Benutzer, der versucht, den Befehl git zu initiieren, root. Der Host fragt also immer wieder nach dem Passwort des Hostbenutzers.
Ich habe den folgenden Befehl ausprobiert:
sudo -u $SUDO_USER git clone user@host.com:git-repo $PATH_TO_INSTALLATION
Es wurde jedoch immer noch nach dem Passwort des Hostbenutzers gefragt.
Kann man sagen sudo
, ob man den $SUDO_USER
Heimatpfad des Benutzers benutzt?
Die meisten Dinge sind Variablen und müssen Variablen sein, da ich dies auf mehr als einem Computer ausführen werde.
id_rsa.pub
Schlüssel authorized_keys
auf host.com
System. Für den Fall, dass einer der Clonning-Maschinen den Zugriff widerrufen muss, entfernen Sie einfach den Schlüssel.
git clone dan@host.com:....
Warum funktioniert es nicht?