Witam.
Próbuję napisać skrypt, który przy uruchomieniu rtorrent będzie odblokowywał, a przy kończeniu blokowywał porty. Ponieważ nie jestem w tym (bash) dobry, proszę Was o pomoc.
Co w tym skrypcie jest źle:
#!/bin/bash
#skrypt poprosi o hasło root
echo "Podaj hasło"
read -s nazwa_zmiennej
#weryfikacja hasła
if $nazwa_zmiennej = $PASSWD then
#jeśli hasło się zgadza, skrypt dopisze te dwie linijki do /etc/init.d/firewall
echo "iptables -A INPUT -s 0/0 -p tcp --dport (_numer portu_) -j ACCEPT" >> /etc/init.d/firewall
echo "iptables -A INPUT -s 0/0 -p udp --dport (_numer portu_) -j ACCEPT" >> /etc/init.d/firewall
#i wyrzuci mi na kosolę tekst i uruchomi rtorrent:
echo "porty odblokowane, uruchamiam rtorrent" && screen /usr/bin/rtorrent
#jeżeli hasło się nie zgadza
else [ -n $nazwa_zmiennej !=$PASSWD ] then
#wypluje komunikat
echo "przerywam, pewnie podałeś złe hasło"
fi
#i zakończy pracę
done;
oraz jak i gdzie tu wstawić polecenie, aby po wyjściu z rtorrent na powrót zablokował porty?
Proszę o pomoc łopatologiczną, gdyż jak pisałem wyżej, nie jestem w pisaniu skryptów dobry, a to mój pierwszy jakiś poważniejszy skrypt z instrukcjami warunkowymi.
Pozdrawiam!
No nie wiem, no nie wiem, co prawda w bashu też nie pisałem ale na programowaniu to ja się znam i od razu coś mi tu nie gra.
Ja to bym zrobił inaczej. Po pierwsze w skrypcie firewall napisał funkcje, która będzie włączać wyłączać porty, Czyli taki podział zadań, że portami zajmuje się firewall np. firewall torrenton/firewall torrentoff - i takie polecania skryptu firewall dopiero wywoływać w tym skrypcie co ma uruchomić dany program.
Dzięki @grzesiek za zainteresowanie.
¯e yyyy..o co chodzi z tymi funkcjami? ¯e do pliku konfiguracyjnego firewalla, czy po prostu skrypty dodatkowe firewall_on i firewall_off?
Pozdrawiam!
Reszta bez zmian.
Do pliku firewall dodaj funkcje, chodzi o to aby twój firewall miał takie funkcje: włącz te porty, tamte.
Potem te funkcje będziesz mógł wywoływać w wielu innych skryptach, w moim przypadku dc.sh.
Program linuxdcpp nie jest obecnie zainstalowany. Można go zainstalować wpisując:
sudo apt-get install linuxdcpp
bash: linuxdcpp: polecenie nieodnalezione
a odnośnie
chodzi o to aby twój firewall miał takie funkcje: włącz te porty, tamte.
Potem te funkcje będziesz mógł wywoływać w wielu innych skryptach, w moim przypadku dc.sh.
Mój skrypt był tylko przykładem, schematem, nie masz linuxdcpp? to wpisz inną komendę.
£opatologicznie mówisz?
więc tak firewall to komórka - możesz miec tam pozapisywane telefony do znajomych
Twoja ręka to skrypt, który coś wykonuje.
Różnica między twoją wersją a moją jest taka, że używając w swoich rękach (skryptu do uruchamiania "czegoś" - nie koniecznie linuxdcpp) komórki wybieram tylko zaprogramowany numer do znajomego, dzięki temu równie użytecznie będzie mógł go użyć twój np. brat (inny skrypt), Twój skrypt każe twoim pięknym dłoniom samemu wpisywać nr tel. Ale to tylko tak od strony metodologii programowania. druga strona jest znajomość iptables - tam możesz napisać wszystko co ci jest potrzebne. Potrzebne cie blokowanie portów, to pisz, ja musiałem tak.