Предполагая, что -i
означает установку и принимает два аргумента, вероятно, проще просто установить флаг -i
в блоке getopts, а затем рассматривать аргументы, оставшиеся после обработки параметра, как репо и пакет, например
while getopts ":i" option; do
case "$option" in
i)
mode=install
;;
esac
done
shift $((OPTIND - 1))
case "$mode" in
install)
apt-add-repository "$1"
apt-get update
apt-get install "$2"
shift 2
;;
esac
Или, если идея состоит в том, чтобы взять список PPA и пакетов, что еще больше причин для этого, просто сделайте последний бит
case "$mode" in
install)
for arg in "$@"; do
case "$arg" in
ppa:*)
apt-add-repository "$arg"
apt-get update
;;
*)
apt-get install "$arg"
;;
esac
done
;;
esac
Спасибо @wurtel за подсказку. Я проверил файл конфигурации proftpD и обнаружил два файла с именами hosts.allow и hosts.deny. Хотя содержимое этих двух файлов выглядит очень невинно.
/etc/hosts.allow
#ftpd : xxx.xxx.xxx.xxx : deny
#sshd :.example.com : deny
#in.tftpd : xxx.xxx.xxx.xxx : deny
#bsnmpd : xxx.xxx.xxx.xxx : deny
ALL : ALL : allow
/etc/hosts.deny пуст
При дальнейшей проверке журналов сервера я обнаружил эти журналы ошибок.
Feb 18 21:51:55 foxnfish proftpd[19657]: 192.168.1.134 (192.168.1.2[192.168.1.2]) - mod_wrap/1.2.4: using access files: /etc/hosts.allow, /etc/hosts.deny
Feb 18 21:51:55 foxnfish proftpd[19657]: 192.168.1.134 (192.168.1.2[192.168.1.2]) - mod_wrap/1.2.4: refused connection from ::ffff:192.168.1.2
Feb 18 21:54:15 foxnfish proftpd[19659]: 192.168.1.134 (192.168.1.146[192.168.1.146]) - mod_wrap/1.2.4: using access files: /etc/hosts.allow, /etc/hosts.deny
Feb 18 21:54:15 foxnfish proftpd[19659]: 192.168.1.134 (192.168.1.146[192.168.1.146]) - mod_wrap/1.2.4: allowed connection from iMac.xxx.xxx.xxx.net
Таким образом, для моего беспроводного соединения мой исходный адрес разрешается в формате хоста локального домена. Но при подключении из сети Ethernet мой исходный адрес — это какой-то странный IP-адрес.Я предполагаю, что он не соответствует hosts.allow
Поскольку это встроенная сборка Nas4Free, я действительно не могу изменить файл hosts.allow. Быстрое решение — полностью отключить proftpd _modwrap _.
Для тех, кто использует proftpD на Nas4Free, вы можете отключить этот модуль, установив для proftpd _modwrap _значение NO вSystem|Advanced|rc.conf