Chcę pobrać skrypt ze strony: http://dl.dropbox.com/u/11210438/flockonus-stack.sh i wykonać go. Domyślam się, aby użyć wget zmieniając jego nazwę, chmod i wykonuj.
Jakie są polecenia, aby to zrobić na Ubuntu?
Chcę pobrać skrypt ze strony: http://dl.dropbox.com/u/11210438/flockonus-stack.sh i wykonać go. Domyślam się, aby użyć wget zmieniając jego nazwę, chmod i wykonuj.
Jakie są polecenia, aby to zrobić na Ubuntu?
Odpowiedzi:
Ostrożny
Czy przed uruchomieniem skryptu ufasz osobie, która go napisała?
Na przykład, czy spodziewałeś się, że skrypt to zawiera?
echo "brain1" > /etc/hostname
Spróbuje to zmienić twoją nazwę hosta.
Na przyszłość, jeśli po sprawdzeniu, czy skrypt jest poprawny i nie jest złośliwy, możesz uruchomić go w jednym wierszu:
wget -O - http://dl.dropbox.com/u/11210438/flockonus-stack.sh | bash
Ale pobierz go osobno i przeczytaj przed pierwszym uruchomieniem.
Należy również pamiętać, że interaktywne monity w pobranym skrypcie mogą nie działać poprawnie przy użyciu tej metody.
apt-get install
linie? Jeśli apt-get
zainstaluje jakieś dodatkowe zależności, zapyta cię, a jeśli nie, po prostu wyjdzie, aby być bezpiecznym. Dodaj wszystkie zależne pakiety do argumentów wiersza poleceń lub rozważ dodanie -y
, np.apt-get -y install...
Skrypty nieinteraktywne
wget -O - http://website.com/my-script.sh | bash
Pamiętaj, że podczas korzystania z tej metody interaktywne skrypty nie będą działać.
Interaktywne skrypty
Aby uruchomić interaktywne skrypty, możesz użyć tego:
bash <(wget -qO- http://website.com/my-script.sh)
Interaktywne skrypty, które należy uruchomić jako root
Ostrzeżenie: jest to bardzo niebezpieczne. Niepolecane.
sudo su -c "bash <(wget -qO- http://website.com/my-script.sh)" root
Zauważ, że nie możesz go łatwo użyć, sudo bash
ponieważ użycie <(...)
spowoduje utworzenie pliku wirtualnego, a jego deskryptor pliku nie będzie dostępny z instancji root bash. Musi zostać wykonany na tym samym użytkowniku, który musi odczytać plik wirtualny, więc musi zostać wysłany jako własne polecenie w powłoce użytkowników root.
Ten skrypt jest ode mnie, jest bezpieczny .. Uwielbiałem ten jeden wiersz, ale ma kilka interaktywnych linii, które nie działały .. nie wiem dlaczego?
Kiedy dpkg działa, wywoływany przez apt-get, opróżnia stdin. Jeśli używasz polecenia podobnego curl blah | bash
, to w zasadzie wysyłasz zawartość strony do bash poprzez STDIN. Jeśli jedno z twoich poleceń jest apt-get, a następnie uruchamia się, wszystko inne zostanie wyczyszczone.
Sztuką jest użycie takiego polecenia apt-get install --yes denyhosts </dev/null
. Daje to apt-get inne dane wejściowe i po prostu opróżnia / dev / null zamiast reszty skryptu.
Jeśli chcesz zobaczyć pełny przykład instalacji czegoś za pomocą zdalnego skryptu, możesz zajrzeć do tego skryptu, aby skonfigurować denyhosts
Dla przypomnienia wolę w tym celu curl niż wget, ale wget też powinien być w porządku.
We wszystkich tych przykładach brakuje dość ważnego punktu. Jeśli używasz adresu URL http://dl.dropbox.com/u/11210438/flockonus-stack.sh
, musisz kontrolować skrypt za każdym razem, gdy go pobierasz, ponieważ może on być modyfikowany przez każdego na ścieżce sieciowej między tobą a dropboxem. Jeśli przejdziesz na http s : //dl.dropbox.com/u/11210438/flockonus-stack.sh , nie będziesz mieć tego źródła niepewności.
(Dropbox próbuje przekierować adres URL http na https, ale w przypadku ataku sieciowego wget nigdy nie będzie mógł rozmawiać z prawdziwym dropboxem i nigdy nie zobaczy przekierowania)
Spróbuj pobrać go tak, jak określiłeś wget, a następnie uruchom go bezpośrednio. Możesz uzyskać fantazję i użyć zmiennych dla skryptu, który chcesz pobrać itp., Ale to załatwi sprawę
Na przykład:
!#/bin/bash
#Change to temp directory
cd /tmp
#Download file using wget
wget http://dl.dropbox.com/u/11210438/flockonus-stack.sh
#Execute the file
sh flockonus-stack.sh
echo "brain1" > /etc/hostname
samo łatwo może byćrm -rf /
.