Я пытаюсь понять сценарий Linux Bash. Цель скрипта - ограничить доступ к серверным службам только для некоторых пользователей dyndns (с помощью правил ufw). Часть сценария:Понимание части сценария Linux Bash
ALLOWEDUSERS="client1.dyndns.org client2.dyndns.org"
for host in $ALLOWEDUSERS ; do
ip=`host $host | cut -d ' ' -f 4`
if [ $? -eq 0 ]; then
ufw allow proto tcp from $ip to any
fi
done
хорошо
for host in $ALLOWEDUSERS ; do
ясно, что перебирает ALLOWEDUSERS,
насколько я понимаю
if [ $? -eq 0 ]; then
проверяет, если команда выполняется до (если так правило ufw добавлено)
, но как же остальные из сниппета
ip=`host $host | cut -d ' ' -f 4`
проверяет, является ли клиент IP является один из разрешенных учетной записи DynDNS?
Большое спасибо за вашу помощь,
Тони
Этот сценарий написан плохо, и, вероятно, нарушена. Зачем тратить время на это? –
Привет Бармар «Зачем тратить время на это? –
Программист, по-видимому, думал, что он проверяет статус выхода команды 'host', которая является' 0', если поиск имени хоста удался, но на самом деле он проверяет статус выхода 'cut', поскольку статус конвейера - это статус последней команды, поэтому он не работает так, как планировалось. – Barmar