Chciałbym uruchomić sudo z moim hasłem jako parametrem, abym mógł go użyć jako skryptu. próbowałem
sudo -S mypassword execute_command
ale bez powodzenia. Jakieś sugestie?
Chciałbym uruchomić sudo z moim hasłem jako parametrem, abym mógł go użyć jako skryptu. próbowałem
sudo -S mypassword execute_command
ale bez powodzenia. Jakieś sugestie?
sudo
odpowiednio skonfigurować , aby nie pytał o hasło dla niektórych programów / użytkowników / grup, aby uniknąć takich brudnych hacków.
Odpowiedzi:
Przełącznik -S sprawia, że sudo odczytuje hasło ze STDIN. Oznacza to, że możesz to zrobić
echo mypassword | sudo -S command
przekazać hasło sudo
Jednak sugestie innych osób, które nie obejmują przekazywania hasła jako części polecenia, takie jak sprawdzenie, czy użytkownik jest rootem, są prawdopodobnie znacznie lepszymi pomysłami ze względów bezpieczeństwa
sudo chmod -R 0100 myScriptFolder
? Czy to nie rozwiązałoby problemów z bezpieczeństwem (pod warunkiem, że nikt oprócz Ciebie nie używa Twojego komputera jako root)?
Możesz ustawić s
bit dla swojego skryptu, aby nie potrzebował sudo
i działał jako root (i nie musisz wpisywać swojego hasła roota w skrypcie):
sudo chmod +s myscript
+s
to bit setuid. +t
jest lepkim kawałkiem.
echo -e "YOURPASSWORD\n" | sudo -S yourcommand
echo -e "YOURPASSWORD\n" | sudo -S "run -x"
. Mówi sudo: run -x: command not found
. Masz jakiś pomysł, jak to obejść?
Jedną z opcji jest użycie flagi -A do sudo. To uruchamia program, który pyta o hasło. Zamiast pytać, możesz mieć skrypt, który po prostu wypluje hasło, aby program mógł kontynuować.
# Make sure only root can run our script
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root" 1>&2
exit 1
fi