Ваш сценарий является неправильным, потому что
egrep "^username" /etc/passwd >/dev/null
if[ $? -eq 0 ]
then
#echo "doesn't exist" # WRONG
echo "the USER EXISTS"
fi
статус выхода 0 - средний - все в порядке, в случае grep, среднего "хорошо, нашел строку". статус выхода! = 0 средних, что-то неправильно, в случае среднего grep 1, "не найденный", 2 средних "не могут открыть вход"...
Повышение пары вопросов упомянуло в комментариях, которые могли бы помочь выяснить то, что продолжается:
Можно ли добавить Ваш /etc/resolv.conf
к вопросу? Вывод Вы описываете от host gmail.com
немного подозрительно и мог указать на проблему с Вашим сервером имен.
Что, если таковые имеются, делает ответ Вы добираетесь от команды host -t mx gmail.com
?
Вы успешно отправили почту в другие системы от этого компьютера?
Ваш ISP имеет некоторую явную политику, которая требует, чтобы Вы использовали их сервер в качестве почтового реле? Если они делают, брандмауэр, блокирующий запросы поиска MX, мог бы объяснить странное поведение host gmail.com
таймаут после получения частичного корректного результата.
Это похоже на Вас, находятся позади прокси: адрес gmail.com разрешен, но команда ping не успешно выполняется. Можно попытаться соединить непосредственно SMTP Gmail с:
nc -w 1 gmail.com 25 ; echo $?
если это отзывается эхом "1", Вы не можете соединиться, вероятно, причина фильтрации безопасности.
Я раньше имел ту же проблему:
root@medusa:~# postqueue -p
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
079AC700080B 357 Wed Apr 3 13:47:47 root@medusa.yyyy.cz
(Host or domain name not found. Name service error for name=xxxx.cz type=MX: Host not found, try again)
hmls@xxxx.cz
..
root@medusa:~# host -t MX xxxx.cz
xxxx.cz mail is handled by 10 e2sgw01.xxxx.cz.
xxxx.cz mail is handled by 10 e2sgw02.xxxx.cz.
..
root@medusa:~# telnet e2sgw01.xxxx.cz. 25
Trying 217.77.161.168...
Connected to e2sgw01.xxxx.cz.
Escape character is '^]'.
220 e2sgw01.xxxx.cz ESMTP Postfix
Проблема была в/var/spool/postfix/etc/resolv.conf файле (chrooted один). Взгляните на него.
Как указал @Shadur, эта проблема может быть связана с вашим интернет-провайдером (или сетью, в которой установлен ваш сервер). Если есть ограничения безопасности на порт SMTP (номер порта 25), серверы MX не могут быть доступны через этот порт.
Вместо этого вы можете попробовать использовать порт SMTP через SSL (ssmtp, номер порта 465). Для этого отредактируйте файл /etc/postfix/master.cf
, прокомментируйте строку smtp и добавьте вместо нее строку ssmtp:
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
#smtp inet n - - - - smtpd
ssmtp inet n - - - - smtpd
Чтобы убедиться, что это сообщение распознается с этим именем на вашем компьютере, вы можете сделать:
$>cat /etc/services | grep smtp
smtp 25/tcp mail
ssmtp 465/tcp smtps # SMTP over SSL
Попробуйте отключить свойство chroot , чтобы оно не изменялось, загружало /etc/postfix/master.cf
, как описано здесь с
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - - - - smtpd
по
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd
Я смог решить эту проблему, сказав Postfix использовать Google DNS сразу после установки postfix:
echo 'nameserver 8.8.8.8' >> /var/spool/postfix/etc/resolv.conf
no servers could be reached
ошибка отhost
). – bahamat 21.06.2012, 21:48