Piszę aplikację Java, w której muszę wykonać wiersz polecenia i uzyskać wynik, ale kiedy wykonuję polecenie, prosi o hasło sudo. Do tej pory próbowałem:
$ sudo -s
$ vim /etc/sudoers
# User privilege specification
root ALL=(ALL:ALL) NOPASSWD: ALL
javauser ALL=(ALL:ALL) NOPASSWD: ALL
:wq
$ 4 -r--r----- 1 root root 615 2011-10-26 09:23 sudoers
Po wykonaniu polecenia ponownie pojawia się pytanie „[javauser] hasło do javauser:”. Ale wspomniałem już o noPASSWD.
whoami
powraca alex
i dodaję go jako ten w sudoers
pliku
# User privilege specification
root ALL=(ALL:ALL) ALL
alex ALL=NOPASSWD: ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
Bieganie wciąż pyta mnie o hasło, jakieś pomysły?
command-line
sudo
muru
źródło
źródło
sudo visudo
zamiastvim
edytować plik sudoers. W ten sposób, jeśli popełnisz błąd, program cię o tym ostrzeże.Odpowiedzi:
Musisz wykonać następujące czynności, na typie terminala
sudo visudo
i dodać taki wiersz na końcu pliku, podając polecenia, które chcesz uruchomić bez wpisywania hasła sudo (sugeruję, abyś używał każdego polecenia, którego chcesz użyć w programie i nie tylko zezwalaj na wykonywanie wszystkich programów)Teraz możesz uruchamiać określone polecenia bez hasła, o ile wpisujesz je za pomocą
sudo
.tzn .: powiedzmy, że chcesz uruchomić
shutdown -r now
bez konieczności wpisywania hasła sudo za każdym razem, a Twoja nazwa użytkownika to „joedoe”wpisz
sudo visudo
na terminaluDodaj
joedoe ALL=NOPASSWD: /usr/sbin/shutdown -r now
jako nowy wiersz na końcu pliku , użyj bezwzględnych ścieżek do programu, którego próbujesz użyć.w swoim programie możesz następnie używać
sudo shutdown -r now
bez konieczności wpisywania hasła sudo.Bezwzględną ścieżkę do programu można znaleźć za pomocą
which <program name>
terminala.To bardzo brudna sztuczka, która pozostawia twój system otwarty na inne niebezpieczeństwa, ale domyślam się, że wiesz, co robisz i chcesz tego.
Naprawdę musisz upewnić się, że uprawnienia, które ustawiasz, znajdują się na końcu pliku , aby nic nie zostało zastąpione uprawnieniami grup.
źródło
sudo visudo
a nievim
edytować pliku sudoers? Gdyby to zrobił, zadziałałoby.sudo
przed poleceniem w kodzie? musisz to zrobić, nawet jeśli wymusiłeś nopasswd w pliku sudoers. tj .: użyjsudo <command>
nie tylko<command>
.bruno
a cmd ="sudo whoami
"zwracaroot
sudoers
pliku. Po przypisaniu grup itp. Naprawdę ostatnia linia! Przesuń linię, aby była ostatnią w pliku! (mam nadzieję, że to było to).