Haluaisin luoda scriptin joka avaa ssh yhteyden toiseen linux koneeseeni ja ajaa sudo restart <service> ja sulkee ssh yhteyden.
Olisiko tälläinen tehtävissä ?
Oheista ohjetta soveltamalla voit kehittää toimivan ratkaisun.
Koneiden sammutus etänä yhdeltä työasemalta.0. Kopioidaan paikallisen koneen käyttäjän ~/.ssh/id_rsa.pub tiedosto uudelle nimelle esim. darkstar.id_rsa.pub
1. Kopioidaan ~/.ssh/darkstar.id_rsa.pub paikalliselta koneelta
etäkoneelle ~/.ssh/ -kansioon.
2. Kopioidaan etäkoneella em. (darkstar.id_rsa.pub) tiedoston sisältö ~/.ssh/authorized_keys tiedostoon
cat darkstar.id_rsa.pub >> authorized_keys
3. Nyt kirjautuminen ssh:lla etäkoneelle onnistuu ilman salasanaa esim.
ssh 192.168.1.10
4. Lisätään etäkoneelle ryhmä shutdown
sudo groupadd shutdown
5. Lisätään käyttäjä ryhmään shutdown esim.
sudo adduser eraut shutdown
6. Muokataan /etc/sudoers tiedostoa, lisätään rivit
%shutdown ALL=(root) NOPASSWD: /sbin/reboot
%shutdown ALL=(root) NOPASSWD: /sbin/halt
%shutdown ALL=(root) NOPASSWD: /sbin/shutdown
Tällä sallitaan "shutdown" ryhmän suorittaa /sbin/reboot, /sbin/halt, ja /sbin/shutdown
komentoja, kuin se olisi ROOT käyttäjä. Heikkoutena on , että käyttäjien pitää
suorittaa komennot sudo etuliitteellä esim.
sudo /sbin/halt
7. Luodaan paikalliselle koneelle skripti esim. etasammuta.sh
#!/bin/bash
for m in `cat mun-eta-koneet`; do
ssh -n $m "sudo shutdown -h now &";
echo "Sammutetaan $m ...";
done
8. Asetetaan skriptin suoritus oikeudet
chmod a+x etasammuta.sh
9. Luodaan tiedosto mun-eta-koneet, jonka sisällöksi asetetaan sammutettavien koneiden
ip-osoitteet esim.
192.168.1.5
192.168.1.10
Nyt skriptin ajamalla voi sammauttaa mun-eta-koneet tiedostossa luetellut koneet.
Lähteet:
http://ubuntuforums.org/showthread.php?t=134968HOW-TO: non-root user shutdown
http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-keygen&sektion=1https://help.ubuntu.com/community/Sudoers