Итак, я смог решить свою проблему, как я предлагал в конце своего вопроса, но я также пришел к выводу, что избегание виртуальных доменов может быть правильным путем.
Первое, первоначально предложенное решение: удалить ссылки на a.com
из файла virtual
.
virtual
-------
#postmaster@a.com postmaster
#@a.com userA
postmaster@b.com postmaster
@b.com userB
postmaster@c.org postmaster
@c.org userC
После того, как я это сделал, виртуальные переводы для b.com
и c.org
выдали userB@a.com и userC@a.com, как и ожидалось, а поскольку a. com
является одной из записей mydestination
, postfix/local послушно доставил почту пользователяB на /var/mail/userB
и пользователяC на /var/mail/userC
.
Конечно, как я и опасался в своем первоначальном вопросе, он все равно делает вывод, что a.com - это конечный домашний домен всех этих пользователей, что кажется мне странным. Очевидным решением, в таком случае, является не использовать виртуальные домены вообще - весь смысл виртуальных доменов в том, чтобы принимать почту для адресов, которые не являются реальными пользователями Unix в системе. Но поскольку все мои универсальные пользователи являются реальными пользователями Unix в системе, я должен просто использовать локальные псевдонимы:
/etc/aliases
------------
admin: postmaster
www: postmaster
@a.com: userA
@b.com: userB
@c.com: userC
Я все еще могу иметь универсальные адреса без использования виртуальных
доменов вообще.
Я думаю, что эта служба не должна работать для определенного пользователя/группы (teampeak ).
Для начала сделайте резервную копию всех ваших файлов (служебный файл и т. д. )и отключите его:
# systemctl disable teamspeak.service
Также удалите физический файл teampeak.service, который вы скопировали в системе.
подключитесь по ssh к вашему серверу как пользователь root
и попробуйте это:
Отредактируйте файл teamspeak.service
:
[Unit]
Description=TeamSpeak 3 Server
After=network.target
[Service]
ExecStart=/teamspeak/ts3server_startscript.sh start
ExecStop=/teamspeak/ts3server_startscript.sh stop
RestartSec=1s
[Install]
WantedBy=default.target
Затем установите сервисный модуль systemd
и включите его, чтобы он выполнялся во время загрузки:
# cp teamspeak.service /etc/systemd/system/
# chmod 0664 /etc/systemd/system/teamspeak.service
# systemctl daemon-reload
# systemctl enable teamspeak.service
запустить службу:
# systemctl start teamspeak.service
найдите ответ OK (зеленая точка ).
, чтобы узнать, существует ли служба или настроена:
# systemctl list-unit-files --type=service | grep teamspeak
узнать об услуге:
# service teamspeak status
Примечание :URL ссылки на systemd-https://wiki.debian.org/systemd
Вы можете попробовать настроить systemd так, чтобы он не убивал пользовательские процессы при выходе из системы для разыскиваемого пользователя:
sudo loginctl enable-linger teamspeak