Неправильная роль и тип при входе в систему

Я бы не рекомендовал это, но попробуйте:

eval "./script.sh $(./look_up_args.pl 234)"

Это должно сработать, но оставьте помните, что eval будет оценивать все, что look_up_args.pl происходит с выводом, что означает, что вы остаетесь уязвимыми для внедрения кода.

Лучшим вариантом было бы то, что @thrig предложил в комментариях: использовать стандартизированный формат данных для передачи данных между инструментами. Даже строка, разделенная новой строкой, была бы прекрасным форматом для конвейера обработки в стиле оболочки.

9
29.12.2015, 23:54
1 ответ

Поскольку это действительно хороший вопрос, и он представлял для меня интерес, я провел несколько поисков, которые оказались не очень полезными. Наконец я связался с #selinuxна Freenode IRC и спросил, как выбирается роль selinux по умолчанию. К счастью, пользователь griftсмог предоставить недостающую информацию, чтобы ответить на ваш вопрос.

Основным компонентом для настройки контекста selinux является pam_selinux.so, который отвечает за настройку сеанса. Модуль pam имеет различные параметры конфигурации,а также может интерактивно запрашивать у пользователя желаемый контекст. В случае отсутствия информации во время входа в систему используется информация, хранящаяся в /etc/selinux/$TYPE/contexts/user/$USERID, если она не определена, используется контекст __default__, установленный в contexts/default_contexts.

root@u1604-cnt-host:/etc/pam.d# grep selinux *
lightdm:session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
lightdm:session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open
lightdm-autologin:session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
lightdm-autologin:session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open
lightdm-greeter:session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
lightdm-greeter:session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open
login:session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
login:session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open
sshd:session [success=ok ignore=ignore module_unknown=ignore default=bad]        pam_selinux.so close
sshd:session [success=ok ignore=ignore module_unknown=ignore default=bad]        pam_selinux.so open
systemd-user:session  required pam_selinux.so close
systemd-user:session  required pam_selinux.so nottys open
root@u1604-cnt-host:/etc/pam.d#

Поскольку lightdmиспользует те же вызовы pam_selinux.so, что и loginили sshd, это не должно быть источником проблемы.

Вскоре я попытался заставить работать желаемое изменение в Ubuntu, но у меня сложилось впечатление, что политика selinux была нарушена на уровне процесса. Итак, я провел несколько тестов на Fedora :

.
[root@workbench users]# cat /etc/selinux/targeted/contexts/users/staff_u
system_r:local_login_t:s0       guest_r:guest_t:s0 staff_r:staff_t:s0
system_r:remote_login_t:s0      staff_r:staff_t:s0
system_r:sshd_t:s0              guest_r:guest_t:s0 staff_r:staff_t:s0
%<--- snipp ---%<

переключение system_r:sshd_t:s0на guest_r:guest_t:s0работает нормально, для работы пользователю selinux должна быть назначена роль. Процесс sshdвыполняется в домене system_r:sshd_t. При попытке переключить контекст по умолчанию для staff_uна sysadm_r:sysadm_t|system_r:system_rлогин возвращается к staff_r:staff_t:s0при простой замене части guest_r:guest_t. Это связано с политикой для system_r:sshd_t, которая не разрешает переключение контекста на system_rили sysadm_t.

Установка нерабочей комбинации -приводит к unconfined_r:unconfined_t, который является типом по умолчанию в Fedora targeted, так как default_contextsсодержит user_r:user_tдля system_r:sshd_t, но пользователь selinux не имел доступа к user_rроль во время теста.

Еще немного подробностей по теме:

https://selinuxproject.org/page/PolicyConfigurationFiles#contexts.2Fusers.2F.5Bseuser_id.5D_File

https://selinuxproject.org/page/RefpolicyBasicRoleCreation#Default_Contexts

2
27.01.2020, 20:08

Теги

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