if [ "$(id -u)" != "0" ]; then
echo "Sorry, you are not root."
exit 1
fi
echo "You are root"
while true
do
read -s -p "Password of root for mysql, : " pass
echo
read -s -p "Password (again): " cpass
echo
[ "$pass" = "$cpass" ] && break
echo "Please try again"
done
Когда я запустить его с помощью sudo wget -qO- http://server-ip/install | sh
Пользователь не корень, если вы получаете доступ к удаленному Баш скрипт с помощью Wget
Результат является Sorry you are not root
.
Если я загружаю скрипт и запускаю его, цикл while не запускается. В чем проблема?
Зачем вам нужен '| sh ', когда вы уже работаете как' sudo'. Можете ли вы попробовать без этого? – Inian
Как насчет 'wget -qO- http: // server-ip/install | sudo sh'? Но позвольте мне сказать вам, что ['curl | bash' или 'wget -O- | bash' - рискованный бизнес] (https://www.google.com/search?q=curl+bash+risk). Особенно, когда sh работает под sudo. – anishsane
С какой проблемой вы хотите сосредоточиться? Я бы предположил, что вы не root, когда wget на другой сервер, даже если используется sudo. Я не вижу ничего, что могло бы остановить цикл while из-за того, что вы получаете какой-либо результат при загрузке и запуске? – SaintHax