Echo "" | sudo -S als Alternative zu sudo -n

3

Ich bin bei Debian Lenny. Leider enthält das werkseitige Sudo-Paket nicht die Option -n, die mit der Sudo-Version 1.7 geliefert wird. Ich hätte wirklich gerne eine Möglichkeit, anzugeben, dass "Wenn sudo nach einem Kennwort fragt, scheitere ich lieber sofort, anstatt an einer Eingabeaufforderung zu hängen". Funktioniert diese Alternative?

echo "" | sudo -S -u lalala command 
zedoo
quelle

Antworten:

2

Dies funktioniert nur mit bestimmten Befehlen. Wenn ein Passwort benötigt wird, schlägt sudo wie erwartet etwas hässlich fehl. Wenn dies nicht der Fall ist, wird die neue Zeile an den Befehl weitergeleitet, den Sie mit sudo ausführen.

Katze funktioniert gut:

cacheson@segfault:~$ echo "" | sudo -S -u cacheson cat file.txt 
text file

vim macht nicht:

cacheson@segfault:~$ echo "" | sudo -S -u cacheson vim file.txt 
Vim: Warning: Input is not from a terminal
Vim: Error reading input, exiting...

Vim: Finished.
Chris Acheson
quelle
2

Ihr Befehl liest am Ende auch von der Standardeingabe (wie Chris Acheson ). Sie leiten die Standardeingabe besser vom Terminal zurück.

echo | sudo -S -u lalala sh -c 'command </dev/tty'
Gilles
quelle