LINUX.ORG.RU
ФорумAdmin

И снова sudoers

 ,


0

1

Добрый день.

Есть у меня 2 машинки, обе на CentOS 7. Причём машинка №1 (далее М1) - была установлена, как положено с официального DVD. Машинка №2 (далее М2), была просто клонирована (as is). После этого на М2 был сменён сетевой адрес и имя, чтобы они могли работать в одной сети. Никаких других изменений, между ними, нет.

М2 используется для предварительного тестирования того, что будет, в последствии, применяться на М1. В ходе эксперимента на М2 были произведены следующие модификации:

  1. в /etc/zabbix/zabbix_agentd.conf, был добавлен параметр «UserParameter=balancer_check[*],sudo -u root netstat -nap | grep ESTABLISHED | grep 443 | wc -l»;
  2. в /etc/sudoers, был добавлен параметр «zabbix ALL=(ALL) NOPASSWD:/bin/netstat». Тест прошёл успешно. Данные приходят.

После успешного завершения эксперимента, всё тоже самое было проведено на М1, в результате на дашборд приходят следующие данные «sh: /usr/bin/sudo: Permission denied». В чём может быть затык? Проверял без «sudo -u root», данные приходят верные, но с пометкой «(Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) 266» Спасибо.

Ответ на: комментарий от shell-script

Пользователь zabbix, одинаковый на М1 и М2, принадлежность к группам - этого пользователя, также идентична. Принадлежит данный пользователь только одноимённой группе, но суть в том, что на 1 пк, всё выполняется, а на другом нет.

Bash_Boy ()
Ответ на: комментарий от Bash_Boy

На другой машине открыть терминал su zabbix

sudo команда беспарольная.

По идеи выведет ошибку. Может ошибка в синтаксе где просто, ну и журнал на ошибки глянуть

anonymous ()
Ответ на: комментарий от DonkeyHot

getfacl /usr/bin/sudo getfacl: Removing leading ‘/’ from absolute path names

file: usr/bin/sudo

owner: root

group: root

flags: s–

user::–x group::–x other::–x

И на одном и на другом ПК показывает одинаково, но при этом на М2 всё работает.

Bash_Boy ()
Ответ на: комментарий от Bash_Boy

Принадлежит данный пользователь только одноимённой группе

Тогда sudo не должно работать ни на одной машине. Или я чего то не знаю?

anonymous ()
Ответ на: комментарий от anonymous

Нет, это я под рутом был. Я не могу сделать «su zabbix», т.к. это не совсем пользователь системы, а скорее технический юзер от системы мониторинга, который работает через агента, ну или как-то так, я только в процессе изучения zabbix. «bt17:~# su zabbix This account is currently not available.»

Bash_Boy ()
Ответ на: комментарий от anonymous

Включил пока расширенный лог на агенте. Как наловлю чего-нибудь, предоставлю.

Bash_Boy ()
Ответ на: комментарий от deadNightTiger

Вот с машины М2, где всё работает: «bt17:~# ls -lZ /usr/bin/sudo —s–x–x root root ? /usr/bin/sudo»

А вот с машины М1, где не работает: «l1:~# ls -lZ /usr/bin/sudo —s–x–x. root root system_u:object_r:sudo_exec_t:s0 /usr/bin/sudo»

Bash_Boy ()
Ответ на: комментарий от deadNightTiger

А вот и оно, хотя я лично не менял статус SELINUX, но тем не менее… Вот конфиг с М2: "# This file controls the state of SELinux on the system.

SELINUX= can take one of these three values:

enforcing - SELinux security policy is enforced.

permissive - SELinux prints warnings instead of enforcing.

disabled - No SELinux policy is loaded.

SELINUX=disabled

SELINUXTYPE= can take one of three values:

targeted - Targeted processes are protected,

minimum - Modification of targeted policy. Only selected processes are protected.

mls - Multi Level Security protection.

SELINUXTYPE=targeted"

А вот с М1: "# This file controls the state of SELinux on the system.

SELINUX= can take one of these three values:

enforcing - SELinux security policy is enforced.

permissive - SELinux prints warnings instead of enforcing.

disabled - No SELinux policy is loaded.

SELINUX=enforcing

SELINUXTYPE= can take one of three values:

targeted - Targeted processes are protected,

minimum - Modification of targeted policy. Only selected processes are protected.

mls - Multi Level Security protection.

SELINUXTYPE=targeted"

Ну и собственно по вашей команде… М2: «bt17:~# setsebool zabbix_run_sudo=1 setsebool: SELinux is disabled.» М1 просто выполнилась

Bash_Boy ()
Ответ на: комментарий от Bash_Boy

Теперь, правда, появилось иное сообщение на дашборде: «sudo: unable to open /run/sudo/ts/zabbix: Permission denied We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. sudo: no tty present and no askpass program specified sudo: unable to open audit system: Permission denied sudo: unable to open audit system: Permission denied 0»

Bash_Boy ()

Можно вопрос ? Зачем вам sudo для выполнения netstat ?
sudo там нужно только для параметра -p, который добавляет в вывод pid/имя процесса, но вы эту колонку нигде далее не анализируете (443 - это ведь порт имелся в виду, не часть pid-а ?).
Проверьте отличается ли результат вашей команды от

netstat -na | grep -c ':443.*ESTABLISHED'
которая вполне себе выполняется из-под обычного пользователя.

Ну а проблему с sudo конечно решить тоже стоит, не сейчас так впоследствии sudo тоже может понадобиться.

spirit ★★★★★ ()
Ответ на: комментарий от spirit

Да, спасибо, ваш вариант команды прекрасно подходит, в качестве альтернативы, но, к сожалению, это не единственная команда, которая выполняется, есть ещё на запуск скриптов, которые необходимо выполнять от рута.

Bash_Boy ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.