Каталог /etc/default
никогда не используется ни на одном из дистрибутивов, работающих на базе Red Hat. Это Debian/Ubuntu-ism. Для Centos 7 вы можете посмотреть на пакеты, которые были установлены и которые относятся к fail2ban
следующим образом:
$ rpm -aq|grep fail
fail2ban-server-0.9-9.el7.noarch
fail2ban-sendmail-0.9-9.el7.noarch
fail2ban-firewalld-0.9-9.el7.noarch
fail2ban-systemd-0.9-9.el7.noarch
fail2ban-0.9-9.el7.noarch
В файле fail2ban-server
содержится файл службы для Systemd.
$ rpm -ql fail2ban-server-0.9-9.el7.noarch | grep systemd
/usr/lib/python2.7/site-packages/fail2ban/server/filtersystemd.py
/usr/lib/python2.7/site-packages/fail2ban/server/filtersystemd.pyc
/usr/lib/python2.7/site-packages/fail2ban/server/filtersystemd.pyo
/usr/lib/systemd/system/fail2ban.service
Содержимое Systemd service file:
$ more /usr/lib/systemd/system/fail2ban.service
[Unit]
Description=Fail2ban Service
After=syslog.target network.target firewalld.service
[Service]
Type=forking
ExecStart=/usr/bin/fail2ban-client -x start
ExecStop=/usr/bin/fail2ban-client stop
ExecReload=/usr/bin/fail2ban-client reload
PIDFile=/var/run/fail2ban/fail2ban.pid
Restart=always
[Install]
WantedBy=multi-user.target
Таким образом, можно добавить дополнительные опции к этому файлу, чтобы быстро и грязно подтвердить, что они работают.
Чтобы сделать их постоянными, я бы добавил опции более "официальным" способом, чтобы обновления пакета fail2ban
не перезаписывали изменения в этом файле. Это можно сделать, добавив специальную версию файла fail2ban.service
в этот каталог:
/etc/systemd/system/fail2ban.service
NOTE: Файл в этом каталоге, /etc/systemd/system
всегда перезаписывает файл по умолчанию .service
.
Однако, делая это таким образом, есть некоторые предостережения, одно из которых заключается в том, что если бы файл службы присутствовал здесь, когда fail2ban
должен был бы обновляться через yum
, это привело бы к тому, что служба была бы отключена, до тех пор, пока вы вручную не включите ее. Поэтому вместо этого можно переопределить фрагменты файла .service
, добавив их в этот каталог в разделе /etc
.
Для редактирования файла модуля, предоставляемого пакетом, можно создать каталог называемый, например, /etc/systemd/system/unit.d/ /etc/systemd/system/httpd.service.d/ и поместите туда *.conf файлы чтобы переопределить или добавить новые опции. systemd разберет эти *.conf файлы. и нанести их на оригинальное устройство. Например, если вы просто если вы хотите добавить дополнительную зависимость к устройству, вы можете создать следующий файл:
/etc/systemd/system/unit.d/customdependency.conf
[Единица измерения] Требуется=новая зависимость После=новая зависимость
В качестве другого примера, чтобы заменить директиву ExecStart на a единицу, не являющуюся типичной единицей, создайте следующий файл:
/etc/systemd/system/unit.d/customexec.conf
[Служба] ЭкзСтарт= команда ExecStart=new
, чтобы можно было создать каталог, /etc/systemd/system/fail2ban.service.d
и добавить в него файлы *.conf
с содержимым, подобным этому:
[Service]
ExecStart=
ExecStart=new command
Добавив туда свои опции.
Если вы пытаетесь установить ulimit
для конкретной службы, посмотрите страницу man для systemd.exec
.
LimitCPU=, LimitFSIZE=, LimitDATA=, LimitSTACK=, LimitCORE=, LimitRSS=,
LimitNOFILE=, LimitAS=, LimitNPROC=, LimitMEMLOCK=, LimitLOCKS=,
LimitSIGPENDING=, LimitMSGQUEUE=, LimitNICE=, LimitRTPRIO=, LimitRTTIME=
These settings control various resource limits for executed processes. See
setrlimit(2) for details. Use the string infinity to configure no limit
on a specific resource.
Поэтому простое добавление LimitSTACK=256
в файл настроек .conf
, который я описываю выше, должно дать вам тот же эффект, что и установка ulimit -s 256
.
Если вы посмотрите на man page setrlimit(2)
, вы увидите, как переключатель ulimit
выравнивается с системными ограничениями.
RLIMIT_STACK
The maximum size of the process stack, in bytes. Upon reaching
this limit, a SIGSEGV signal is generated. To handle this signal,
a process must employ an alternate signal stack (sigaltstack(2)).
Since Linux 2.6.23, this limit also determines the amount of space
used for the process's command-line arguments and environment
variables; for details, see execve(2).
Наиболее важным в вашем случае является [1132396]LD_LIBRARY_PATH[1132397], который должен содержать ссылку на пути:
Скрипт компилятора установит это.Я бы не рекомендовал устанавливать [1132398]rpath[1132399] или [1132400]rpath-link[1132401] вручную, так как в этом не должно быть необходимости, если Вы исходите из [1132402]компилятора.sh[1132403].[1132003].