Я хочу включить почтовый сервер (apache jmail) обычным пользователем (не root),
поэтому я попробовал выполнить следующий шаг для менее чем 1024 портов.
Хорошо работает, когда рут его включает.
Но он отключается через несколько секунд, когда обычный пользователь включает его, и он не остается на сервере.
Я не понимаю, почему это произошло, и я не могу найти никакого решения в Google.
cd / usr / local / java / bin
setcap 'cap_net_bind_service = + ep' java
cd /etc/ld.so.conf.d
vi java.conf ---> / usr / local / java / lib / amd64 / jli
ldconfig
cd ~ userId
chown –R userId: папка проекта группы
cd / тома
chown –R userId: общая группа
vi /etc/security/limits.conf --->
userId soft nofile 65535
userId жесткий файл 65535
vi .bash_profile --->
экспорт JAVA_HOME = / usr / local / java
экспорт PATH = $ JAVA_HOME / bin: $ PATH
источник .bash_profile
В какой-то момент вам придется что-то запускать как root. Вы должны быть пользователем root, чтобы прослушивать порт 25. Большинство почтовых серверов запускаются как root, или они запускаются как root, а затем разветвляют дочерние процессы как непривилегированный пользователь.
Скорее всего, он не работает как пользователь без полномочий root из-за того, что он получает «отказано в разрешении» на 25-м порту.
Если вы хотите запустить его как пользователь без полномочий root, измените конфигурацию для прослушивания порта выше 1024 ... скажем, 9025 (например). Затем настройте входящие соединения вашего брандмауэра с порта 25 на порт 9025 на вашем почтовом хосте.