
Ich versuche zu verhindern, dass ein Skript remote aufgerufen wird. Der Benutzer muss sich stattdessen zuerst per SSH anmelden und dann das Skript ausführen.
ssh remote-server "script.sh"
sollte scheitern
ssh remote-server
und nach dem Login
./script.sh
sollte es funktionieren
Ich kann den Eigentümer ändern und anwenden chmod
, aber dann kann der Remote-Benutzer verwendenssh remote-server "sudo -u newuser ./script.sh"
Verwenden einer AWS EC2-Instanz
Antwort1
Running ssh foo@remote-server
gefolgt von ./script.sh
ist gleichbedeutend mit running ssh foo@remote-server ./script.sh
, und running ssh foo@remote-server
gefolgt von sudo -u bar ./script.sh
ist gleichbedeutend mit ssh foo@remote-server sudo -u bar ./script.sh
(außer sudo
es kann fehlschlagen, weil es ein TTY benötigt, was leicht umgangen werden kann). Daher fürchte ich, dass Ihre Frage keinen Sinn ergibt. Alles, was Sie tun, um diesen künstlichen Unterschied zu umgehen, wie z. B. das Testen auf das Vorhandensein von $TERM
oder, [ -t 0 ]
lässt sich wahrscheinlich leicht umgehen.