Я не думаю, что существует способ сказать, какие пользователи были "вручную созданы". Вероятно, лучшее, которое можно сделать, ищут пользователей, которые имеют допустимую оболочку, как у обычно пользователей системы как sshd и gdm есть оболочки как /bin/false
и /sbin/nologin
предотвратить логины. Список допустимых оболочек находится в /etc/shells
, таким образом, можно использовать grep
получить список пользователей с одной из тех оболочек:
$ grep -f /etc/shells /etc/passwd
Если Вы просто хотите имена пользователей:
$ grep -f /etc/shells /etc/passwd | cut -d: -f1
Я нашел sSMTP очень простой использовать.
В Debian основывал системы:
apt-get install ssmtp
Затем отредактируйте конфигурационный файл в/etc/ssmtp/ssmtp.conf
Демонстрационная конфигурация для использования Gmail для отправки электронных писем:
# root is the person who gets all mail for userids < 1000
root=your@email.com
# Here is the gmail configuration (or change it to your private smtp server)
mailhub=smtp.gmail.com:587
AuthUser=your@gmail.com
AuthPass=yourGmailPass
UseTLS=YES
UseSTARTTLS=YES
Примечание: Удостоверьтесь, что "почтовая" команда присутствует в Вашей системе. пакет mailutils должен обеспечить, этот в Debian основывал системы.
Обновление: существуют люди (и отчеты об ошибках для различных дистрибутивов Linux) сообщающий, что sSMTP не примет пароли с 'пространством' или '#' символ. Если sSMTP не работает на Вас, это может иметь место.
Для постфикса:
/etc/hosts
и добавьте псевдоним mailrelay к нему.Измените постфиксную конфигурацию:
relayhost = [mailrelay]
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth
smtp_sasl_security_options = noanonymous
Править /etc/postfix/smtp_auth
mailrelay login:password
Преобразуйте в формат хеша
postmap /etc/postfix/smtp_auth
Никакая потребность сказать, что только корень должен смочь считать это... chmod u=r,og=-
Настройте локальный exim сервер SMTP путем следования инструкциям на этой странице, но выберите опцию "mail sent by smarthost; no local mail" из первого экрана конфигурации Exim. Это настроит сервер SMTP на Вашем поле, которое может получить почту от команд "почты" или "mailx" и передаст все сообщения к smarthost (сервер Gmail в Вашем случае) для доставки.
Для отправки исходящего электронного письма через сервер Gmail, необходимо будет настроить поддержку TLS Exim, который не тривиален. Это практическое руководство дает некоторое объяснение и здесь является ссылкой с дальнейшим объяснением, характерным для Gmail. Необходимо позволить себе несколько часов для получения этой работы. Я предложил бы запуститься путем отправки электронного письма с поля на включенный сервер SMTP TLS, к которому у Вас есть корневой доступ так, чтобы можно было отладить конфигурацию TLS Exim с обеих сторон прежде, чем попытаться отправить хотя сервер Gmail. Так как коммуникация шифруется, Вы привычка смочь использовать инструменты как tcpdump для анализа протокола на строке.
Моим фаворитом является электронная почта (GitHub) клиент. Это действительно просто, никакая сложная необходимая конфигурация, никакие необходимые зависимости. И можно указать аргумент smtp-сервера через командную строку, что означает, что это более подходит для сценариев. Единственная жалость состоит в том, что большинство дистрибутивов Linux не делает содержит этот инструмент, таким образом, необходимо скомпилировать его сами.
Кавычки от почтового проекта на GitHub
Q: Что такое 'электронная почта'?
A: 'электронное письмо' является программой, которую я разработал, который будет посылать электронное письмо через командную строку к удаленным smtp серверам или использовать 'sendmail' внутренне и полностью взаимодействовать с GNUPG, чтобы зашифровать и подписать Ваши электронные письма, таким образом, Вы решите сделать так... Можно получить GNUPG в: http://www.gnupg.org
Благодарите cygwin позволенный меня известный этот полезный почтовый клиент.
./configure
make
./install.sh --version 3.1.3 --prefix /usr --mandir /usr/share/man --sysconfdir /etc
$ email --help
Options information is as follows
email [options] recipient1,recipient2,...
-h, -help module Print this message or specify one of the below options
-V, -verbose Display mailing progress.
-f, -from-addr Senders mail address
-n, -from-name Senders name
-b, -blank-mail Allows you to send a blank email
-e, -encrypt Encrypt the e-mail for first recipient before sending
-s, -subject subject Subject of message
-r, -smtp-server server Specify a temporary SMTP server for sending
-p, -smtp-port port Specify the SMTP port to connect to
-a, -attach file Attach file and base64 encode
-c, -conf-file file Path to non-default configuration file
-t, -check-config Simply parse the email.conf file for errors
-x, -timeout Set socket timeout.
-cc email,email,... Copy recipients
-bcc email,email,... Blind Copy recipients
-sign Sign the email with GPG
-html Send message in HTML format ( Make your own HTML! )
-tls Use TLS/SSL
-m, -smtp-auth type Set the SMTP AUTH type (plain or login)
-u, -smtp-user username Specify your username for SMTP AUTH
-i, -smtp-pass password Specify your password for SMTP AUTH
-g, -gpg-pass Specify your password for GPG
-H, -header string Add header (can be used multiple times)
-high-priority Send the email with high priority
-no-encoding Don't use UTF-8 encoding
echo "mail body" | email -subject "unix.stackexchange.com Q36982" -from-name LiuYan刘研 -from-addr liuyan@domain.com -smtp-server smtp.domain.com -smtp-port 25 cwd@your-domain.com your-friends@his-domain.com
echo "<h1>header</h1><p>paragraph</p>" | email -html -subject "unix.stackexchange.com Q36982 HTML mail" cwd@your-domain.com
echo "see the attachment(s)" | email -subject "This is my email.conf file" -attach /etc/email/email.conf -attach cwd@your-domain.com
mailx поддерживает настройку smtp-сервера на CLI....
echo "message" | mailx -S smtp=$smtphost:$smtpport -s "subject line" -v foo@baa.com
Ничего не нужно устанавливать, при условии, что ваш smtp-сервер позволяет вам отправлять почту без аутентификации.
Нет ни одного ответа, который бы установил smtp-сервер на все биты программного обеспечения, которые могут быть установлены на вашем Linux-боксе. Каждый почтовый клиент может настроить SMTP-сервер.
Если у вас есть соединение с внешним сервером smtp с вашим хостом, вы можете настроить smtp на своем хосте и отправлять электронные письма.
Конфигурацию Smtp в шагах Linux можно найти здесь: http://kerneltalks.com/config/guide-smtp-configuration-linux/
Примеры почтовых команд можно найти здесь: http: //kerneltalks.com/commands/examples-send-email-through-terminal/
Требование:эти 4 пакета необходимыpostfix mailx cyrus-sasl-plugin ca-certificates
для CentOS в противном случаеmailutils libsasl2-modules ca-certificates
. Кроме того, если вы используете gmail, 2 -шага аутентификации и пароль приложения необходимы/предпочтительны для правильной работы.
Пример с шифрованием google gmail и tls, отредактируйте/добавьте перечисленные файлы, как описано ниже
Шаг 1:
/etc/postfix/sasl_passwd
[smtp.gmail.com]:587 sender@gmail.com:apppassword
Шаг 2:
запустите следующее, чтобы преобразовать текстовый файл в таблицу поиска и сделать минимальную защиту файла
postmap /etc/postfix/sasl_passwd
chown root. /etc/postfix/sasl_passwd
chmod 600 /etc/postfix/sasl_passwd
chown root. /etc/postfix/sasl_passwd.db
chmod 600 /etc/postfix/sasl_passwd.db
Шаг 3:
/etc/aliases
(список пользователей, которые могут пользоваться сервисом, при необходимости обновите его)
postmaster: root
nobody: root
hostmaster: root
webmaster: root
www: root
Шаг 4:
запустить newaliases
, чтобы применить предыдущие изменения
Шаг 5:
/etc/postfix/virtual
root email@you_want_it_to_receive_sent_mail.com
Шаг 6:
примените предыдущие изменения, запустив
postmap /etc/postfix/virtual
Шаг 7:
/etc/postfix/main.cf
добавьте/отредактируйте его и убедитесь, что нет дубликатов, также установите правильное значение для smtp_tls_CAfile
в зависимости от того, где находится ваш файл (это предоставляется пакетом ca-certificates
)
inet_protocols = ipv4
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
tls_append_default_CA = no
smtp_sasl_auth_enable = yes
smtp_tls_security_level = encrypt
smtp_tls_CAfile = /etc/ssl/ca-bundle.pem
#smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
mydestination =
relay_clientcerts =
smtp_sasl_security_options =
tls_random_source = dev:/dev/urandom
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
virtual_alias_maps = hash:/etc/postfix/virtual
Шаг 8:
перезапустить службу
systemctl restart postfix
Шаг 9:
проверить систему
echo "This is a test Email" | mail -s "Testing" root
Шаг 10:
проверить журналы
less /var/log/mail.log
Источники:для получения более подробной информации о настройке см. статью , но обратите внимание, что настройка отличается
mail
синтаксис :) – cwd 23.08.2012, 17:24mailutils
пакет (и это не установлено автоматически).ssmtp
работавшее out-of-the поле. – Pijusn 24.05.2013, 08:42