Wpis z mikrobloga

#linux #bash

Pytanie, czy można jakoś przekazać w formie argumentu hasło do komendy su - c, żeby wywołanie komendy nie wyrzucało promptu o podanie hasła?

[vagrant@centos-node-1 ~]$ su -c "whoami" root
Password:
root
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

via Wykop Mobilny (Android)
  • 1
@linuxuser: Nie bardzo. Celowo program przełącza tryby terminala, żeby nie wczytywał ze standardowego wejścia.
Ale możesz spróbować za pomocą expect.
Możesz także w sudoers ustawić żeby dla danych komend nie pytał się o hasła i uruchamiać z sudo.
  • Odpowiedz
żytkownik ten ma nie być w grupie sudoersów


@linuxuser: sudo możesz ustawić dla dowolnej grupy, nie tylko o nazwie „sudoers”. Przy czym twoje wymaganie jest o tyle dziwne, że jestem ciekawy z czego wynika.
  • Odpowiedz
@linuxuser:

Pytanie, czy można jakoś przekazać w formie argumentu hasło do komendy su - c, żeby wywołanie komendy nie wyrzucało promptu o podanie hasła?


Da się to zrobić, ale nie w taki sposób jaki Ty chcesz. Rozwiązaniem jest modyfikacja stosu modułów PAM w pliku /etc/pam.d/su. Napiszę Ci to na przykładzie dystrybucji
  • Odpowiedz
@wykopyrek: no bawię się CGI i chciałem za pomocą tego oto CGI móc zrobić skrypt rebootujący serwer. Ze względu na to, że potrzebne są uprawnienia roota, a nie chcę dawać ich apachowi wymyśliłem sobie skrypt zmieniający usera na kogoś z grupy sudoersów a następnie odpalający komendę "sudo reboot"
  • Odpowiedz
@linuxuser:

Ze względu na to, że potrzebne są uprawnienia roota, a nie chcę dawać ich apachowi wymyśliłem sobie skrypt zmieniający usera na kogoś z grupy sudoersów a następnie odpalający komendę "sudo reboot"


Najpierw piszesz o programie su i wyłączeniu dla danego usera prompta o podanie hasła, a teraz, że potrzebowałeś bez podawania hasła odpalić reboot za pomocą sudo. Teraz dopiero napisałeś o co
  • Odpowiedz
@linuxuser: Tak jak @Kryspin013 dobrze napisał, że sudo nie służy tylko do uruchamiania poleceń jako root. Sudo daje naprawdę duże możliwości konfiguracji o czym świadczy jego dosyć obszerny manual (man 5 sudoers i man 8 sudo).

Jako ciekawostkę napiszę tylko, że w pliku sudoers możesz umieścić sobie reguły, w których sudo będzie sprawdzało za pomocą kryptograficznych funkcji skrótu SHA-2 (czyli: SHA-224, SHA-256, SHA-384, SHA-512), czy dana binarka jest autoryzowana i nie została przypadkiem przez kogoś zmodyfikowana na "podstawioną". Jeżeli obliczony skrót dla danej binarki/skryptu, nie będzie zgodny z tym, który został umieszczony w regule pliku sudoers, to sudo nie pozwoli na jej uruchomienie użytkownikowi.

Załóżmy, że chcesz obliczyć skrót za pomocą funkcji kryptograficznej SHA-224 dla skryptu /usr/local/sbin/backups.sh i zezwolić na jego odpalenie
  • Odpowiedz
@Kryspin013: Trzeba wykorzystywać możliwości, które daje nam ten świetny program. Nie tylko w ten sposób idę, ale również w pracy trzymam reguły sudo na centralnym serwerze LDAP :)

Warto czytać manuale od deski do deski i bawić się konfiguracją różnych narzędzi, bo można wiele się nauczyć i poszerzyć swoją wiedzę. Dla harcorowców polecam studiowanie manuali systemd (man systemd.index) ( ͡° ͜ʖ ͡°)
  • Odpowiedz