So führen Sie den Befehl sudo NOPASSWD auf einem anderen Server über SSH aus

So führen Sie den Befehl sudo NOPASSWD auf einem anderen Server über SSH aus

Ich habe alle Beiträge zu diesem Thema gelesen. Aber Sie können auch meine lesen und Vorschläge machen.

Ich versuche, SSH ohne Passwort zu verwenden und ein Skript auf einem Remote-Server auszuführen. Aber der Sudo-Zugriff verlangt ein Passwort. Bitte geben Sie einen Vorschlag. Für den lokalen Pfad lief es einwandfrei. Aber alle Befehle oder Skripte, die Root-Zugriff erfordern, schlagen fehl.

Unten ist das Skript:

#!/bin/sh
#set -x
# This Script will search for mib files on Current Server and other Server
# to load mib on current Server.

if [ -f /home/shuksand/Script/MibSearch.conf ]
then
        . /home/shuksand/Script/MibSearch.conf
else
        echo "Failed to find config file. Hence Existing!!!!"
fi

# Check alll MIBS on Server


while read line
do
        ServerName=$line
        echo $line
        scp  /home/shuksand/Input/Mib.txt $ServerName:
        cat /home/shuksand/Input/Mib.txt | while read DATA
        do
                echo $DATA
                ssh -t -t shuksand@${ServerName} 'sudo su - root /bin/sh /home/shuksand/Mib.sh $DATA'
        done
done < /home/shuksand/Input/ServerList.txt

Dank im Voraus!!

Antwort1

Dieses Problem wird normalerweise durch die sudoers-Datei verursacht. Sie können beispielsweise ein Skript erstellen, das einfach sh ausführt, und dann den sudo-Befehl von dieser sh-Eingabeaufforderung aus ausführen und prüfen, ob ein Kennwort erforderlich ist.

Beachten Sie, dass sudo sich normalerweise merkt, ob Sie das Passwort kürzlich bei derselben Anmeldung authentifiziert haben. Wenn sudo Sie also einmal als ausreichend authentifiziert ansieht (vielleicht haben Sie ein Passwort eingegeben) und Sie dann eine Änderung an /etc/sudoers vornehmen und dann erneut versuchen, sudo zu verwenden, könnten Sie leicht in die Irre geführt werden, weil sudo Sie möglicherweise nicht dazu auffordert, weil sudo sich möglicherweise daran erinnert, dass Sie den Test vor weniger als 5 Minuten bestanden haben. Dies wird durch den „Timeout“-Wert in /etc/sudoers (man sudoers) festgelegt.

sudo su - root /bin/sh /home/shuksand/Mib.sh $DATA

sieht aus, als wäre es wahrscheinlich unnötig kompliziert. Ich habe manchmal gesehen, dass sudo funktioniert und su fehlschlägt oder umgekehrt. Dieser Befehl erfordert beides, um zu funktionieren. Auf vielen Systemen

sudo -i ~shuksand/Mib.sh $DATA

wird wahrscheinlich dasselbe tun.

Antwort2

Ich denke, Sie müssen Ihre Datei /etc/sudoers bearbeiten. Fügen Sie etwas wie das Folgende hinzu:

<your username> ALL=(ALL) NOPASSWD: ALL

Weitere Informationen finden Sie hier: https://askubuntu.com/questions/147241/execute-sudo-without-password

Darf ich vorschlagen, dass Sie die Formatierung Ihrer Frage korrigieren? Das meiste, was Sie schreiben (das Skript), ist für Ihre Frage nicht wirklich relevant.

Bearbeiten: Wenn Sie die Mib.sh-Datei korrekt als ausführbar festgelegt und die Zeile !#/bin/sh am Anfang der Datei eingefügt haben, müssen Sie nur „sudo su - /home/shuksand/Mib.sh $DATA“ ausführen („root“ ist bei „su“ impliziert/Standard).

verwandte Informationen