Рейтинг:1

selinux - почему нельзя с stuff_u с ​​sysadm_r запустить postsuper?

флаг vn

Я пытаюсь понять, как на самом деле работают пользователи, ограниченные selinux, но есть несколько вариантов поведения, которые я до сих пор не могу понять. Согласно с Красная шляпа

Пользовательские возможности SELinux

Пользователи stuff_u должны иметь возможность запускать sudo, но не su. Итак, я создал пользователя какой-то пользователь и сопоставил его с staff_u

[someuser@testserver ~]$ id -Z
staff_u:staff_r:staff_t:s0-s0:c0.c1023

Теперь, если я добавлю полные разрешения с помощью sudo, но не установлю роль/тип для sudoers, я не смогу многого добиться (как и ожидалось).

[someuser@testserver ~]$ sudo -l
Соответствие записей по умолчанию для некоторого пользователя на тестовом сервере:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="ЦВЕТА ОТОБРАЖЕНИЯ ИМЯ ХОСТА HISTSIZE KDEDIR LS_COLORS", env_keep+="ПОЧТА PS1 PS2 QTDIR ИМЯ ПОЛЬЗОВАТЕЛЯ ЯЗЫК LC_ADDRESS LC_CTYPE",
    env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

Пользователь someuser может запускать на тестовом сервере следующие команды:
    (ВСЕ) НЕПАРОЛЬ: ВСЕ

[someuser@testserver ~]$ sudo ls -la /var/log/audit/audit.log 
ls: невозможно получить доступ к '/var/log/audit/audit.log': разрешение отклонено

[someuser@testserver ~]$ sudo ausearch -m avc -ts последние
Ошибка при открытии файла конфигурации (отказано в доступе)
ПРИМЕЧАНИЕ. Использование встроенных журналов: /var/log/audit/audit.log
Ошибка при открытии /var/log/audit/audit.log (отказано в доступе)
[someuser@testserver ~]$ 

Если я изменю sudoers, чтобы выполнить переход к sysadm_r и sysadm_t, я ожидал получить разрешение делать что угодно, но это не совсем то, что я получаю.

Я могу многое:

[someuser@testserver ~]$ sudo -l
Соответствие записей по умолчанию для некоторого пользователя на тестовом сервере:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="ЦВЕТА ОТОБРАЖЕНИЯ ИМЯ ХОСТА HISTSIZE KDEDIR LS_COLORS", env_keep+="ПОЧТА PS1 PS2 QTDIR ИМЯ ПОЛЬЗОВАТЕЛЯ ЯЗЫК LC_ADDRESS LC_CTYPE",
    env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

Пользователь someuser может запускать на тестовом сервере следующие команды:
    (ВСЕ) ROLE=sysadm_r TYPE=sysadm_t NOPASSWD: ВСЕ
[someuser@testserver ~]$ sudo ausearch -m avc -ts последние | туалет -л
66
[someuser@testserver ~]$ sudo ls -la /var/log/audit/audit.log 
-rw-------. 1 корень root 1996980 30 июля 12:55 /var/log/audit/audit.log
[someuser@testserver ~]$ sudo cat /var/log/audit/audit.log | туалет -л
8172
[someuser@testserver ~]$ 


Но некоторые команды все равно блокируются, например postsuper из пакета postfix.

[someuser@testserver ~]$ sudo postsuper
sesh: невозможно выполнить /sbin/postsuper: разрешение отклонено
[someuser@testserver ~]$ файл /sbin/postsuper
/sbin/postsuper: невозможно открыть `/sbin/postsuper' (отказано в доступе)
[someuser@testserver ~]$ файл sudo /sbin/postsuper
/sbin/postsuper: общий объект ELF 64-бит LSB, x86-64, версия 1 (SYSV), динамически связанный, интерпретатор /lib64/ld-linux-x86-64.so.2, для GNU/Linux 3.2.0, BuildID[sha1]=aa0157870508c475195fe5fb1dafe5a9b3898a61, лишен
[someuser@testserver ~]$ 

Кто-нибудь может объяснить мне причину этого? самое странное, что я не вижу никакого отказа в /var/log/audit/audit.log для команды postsuper. Но это должно быть связано с SELINUX, потому что, если я верну пользователя на unconfined_u, все будет работать.

Michael Hampton avatar
флаг cz
Я вижу, что происходит сейчас. Я могу воспроизвести проблему в обновленной системе RHEL 7. Чего я не вижу, так это каких-либо журналов или полезной информации, чтобы описать, почему это не удается, даже с отключенным dontaudit. Хм. Если у вас есть подписка RHEL, стоит открыть кейс с Red Hat.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.