Запустите сценарий и запустите его
Я хочу загрузить скрипт из http: //dl.dropbox. com /u /11210438 /flockonus-stack.sh и выполнить его. Я предполагаю, что использовать wget переименовать его, chmod его и выполнить.
Каковы команды для этого в Ubuntu?
6 ответов
Тщательное
Перед запуском скрипта доверяете ли вы тому, кто его написал?
Например, вы ожидали, что скрипт будет содержать это?
echo "brain1" > /etc/hostname
Это попытается изменить ваше имя хоста.
Для справки в будущем, если после проверки подлинности правильный и не злонамеренный, вы можете запустить его в одной строке следующим образом:
wget -O - http://dl.dropbox.com/u/11210438/flockonus-stack.sh | bash
Но загрузите его отдельно и прочитайте его перед запуском в первый раз.
Также обратите внимание, что интерактивные подсказки внутри загруженного скрипта могут работать неправильно, используя этот метод.
Этот скрипт от меня, это безопасно. Любимый однострочный, но у него есть некоторые интерактивные строки, которые не запускались. Не знаю почему?
Когда dpkg запускается, вызывается apt-get, он сбрасывает stdin. Если вы используете команду типа curl blah | bash
, вы в основном отправляете содержимое страницы в bash через STDIN. Если одна из ваших команд apt-get, затем запускается, все остальное будет очищено.
Трюк заключается в использовании команды, подобной этой apt-get install --yes denyhosts </dev/null
. Это дает apt-get другой вход, и он просто сбрасывает /dev /null, а не остальную часть вашего скрипта.
Если вы хотите увидеть полный пример установки чего-либо с помощью удаленного сценария, вы можете посмотреть этот скрипт для настройка denyhosts
Для записи, я предпочитаю закручивать wget для этого, но wget также должен быть в порядке.
#!/bin/sh
if [ ! -f "/tmp/flockonus-stack.sh" ]
then
wget -O /tmp/flockonus-stack.sh http://dl.dropbox.com/u/11210438/flockonus-stack.sh
fi
sh /tmp/flockonus-stack.sh
Во всех этих примерах отсутствует достаточно важный момент. Если вы используете url http://dl.dropbox.com/u/11210438/flockonus-stack.sh
, вам нужно каждый раз проверять скрипт, потому что он может быть изменен любым пользователем в сети путь между вами и Dropbox. Если вы перейдете на http s : //dl.dropbox.com/u/11210438/flockonus-stack.sh , у вас не будет этого источника отсутствия безопасности.
(Dropbox пытается перенаправить URL-адрес http на https, но в случае сетевой атаки wget никогда не сможет говорить с реальным Dropbox и никогда не увидит перенаправление)
Попробуйте просто загрузить его, как вы указали с помощью wget, а затем выполнить его напрямую. Вы можете получить фантазии и использовать переменные для скрипта, который вы хотите скачать и т. Д., Но это сделает трюк
Например:
!#/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
Неинтерактивные скрипты
wget -O - http://website.com/my-script.sh | bash
Обратите внимание, что при использовании этого метода интерактивные скрипты не будут работать.
Интерактивные скрипты
Чтобы получить интерактивные скрипты, вы можете использовать это:
bash <(wget -qO- http://website.com/my-script.sh)
Интерактивные скрипты, которые должны выполняться как root
Предупреждение: Это очень опасно. Не рекомендуется.
sudo su -c "bash <(wget -qO- http://website.com/my-script.sh)" root
Обратите внимание, что вы не можете просто использовать sudo bash
с помощью <(...)
создаст виртуальный файл, и его дескриптор файла не будет доступен из экземпляра bash bash. Он должен быть выполнен тем же пользователем, который должен прочитать виртуальный файл, поэтому он должен быть отправлен как собственная команда внутри оболочки root.