Какого пользователя я должен использовать для включения этой службы на компьютере с CentOS7 с помощью команды systemctl enable?

Это связано с тем, как происходит сетевая маршрутизация в Linux. Например, вы можете посмотреть на свою таблицу маршрутизации, и в ней, скорее всего, будет указано, что любой трафик, попадающий в подсеть 11.22.33.0/24, будет маршрутизироваться «локально». Это означает, что он просто пойдет прямо к петле.

[jar@coffee ~]$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.107.136.1    0.0.0.0         UG    100    0        0 eth0
10.107.136.0    0.0.0.0         255.255.255.0   U     100    0        0 eth0

Наличие 10.107.136.0 в столбце Destination означает, что любой трафик в локальной подсети должен отправляться на указанный шлюз , который равен 0.0..0.0 --, что в данном случае означает локальный маршрут.

Наличие 0.0.0.0 в Пункт назначения означает, что трафик идет куда угодно за пределами этой подсети. Затем шлюз по умолчанию отображается в Шлюз

.

Вы также заметите, что если вы запустите tcpdump с переключателем-n , IP-адрес будет , а не 127.0.0.1, он просто отображается на петлевом интерфейсе, потому что это локальный трафик.

1
24.02.2021, 22:12
2 ответа

Многие системные команды в Linux требуют доступа root (, который часто достигается с помощьюsudo). Часто контроль за тем, кто имеет доступ к выполнению определенных задач, контролируется настройкой sudo. Это давняя парадигма в Linux...

Однако systemd(systemctl)использует polkit , чтобы пользователи, не являющиеся -root, могли выполнять привилегированные команды. Это позволит root делать что угодно(Я не уверен, что это жестко запрограммировано или просто обычно настраивается). Однако вам не нужно вызывать systemctlкак root, если вы этого не хотите.

При представлении списка пользователей, не должно иметь большого значения, что вы используете . Он запросит у вас пароль для выбранного вами пользователя, поэтому основное различие заключается в том, знаете ли вы правильный пароль.

Как уже упоминалось, вы все еще можете вызывать systemctlкак root. Если у вас есть доступ к sudo, вы можете предпочесть использовать:

sudo systemctl enable wazuh-agent

Будет запрошен только текущий пароль пользователя.


What happens if the machine is rebooted?

На самом деле это будет зависеть от собственной конфигурации службы. Чаще всего да, это просто перезапустит службу при перезагрузке. И, глядя на название, я думаю, что это должно быть. Но имейте в виду, что это зависит от конкретной службы.

0
18.03.2021, 22:28

Когда вы запускаете systemctlкак пользователь, не являющийся -root, systemd использует PolicyKit, чтобы проверить, можете ли вы повысить свои права. В других ответах вам было сказано использовать sudo, что также является хорошей идеей, но sudo использует совершенно другую конфигурацию, чем systemd, для определения, можете ли вы повысить свои права.

Конфигурация PolicyKit в CentOS для этого, скорее всего, будет в /etc/polkit-1/rules.d/50-default.rules, что-то вроде этого:

polkit.addAdminRule(function(action, subject) {
    return ["unix-group:wheel"];
});

Это означает, что учетная запись, которая должна иметь возможность выполнять функции администратора, является членом группы «колесо».

2
18.03.2021, 22:28

Теги

Похожие вопросы