Какой контекст SELinux должен быть у скрипта, чтобы его запускал pam_exec?

в ударе можно также использовать круглые скобки получения и регулярное выражение

for repo in "${warpInLocations[@]}"; do
    [[ $repo =~ /([^.]+)\. ]] && dir=${BASH_REMATCH[1]}
    warpInDir=${warpToLocation}$dir
    # ...
5
08.10.2018, 21:57
1 ответ

Порядок, в котором вызываются pam_execи pam_selinux, важен. Справочная страница дляpam_selinuxпримечаний:

Adding pam_selinux into the PAM stack might disrupt behavior of other PAM modules which execute applications. To avoid that, pam_selinux.so open should be placed after such modules in the PAM stack, and pam_selinux.so close should be placed before them. When such a placement is not feasible, pam_selinux.so restore could be used to temporary restore original security contexts.

Точно так же Дэн Уолш пишет по теме:

If you are going to add a pam_module that would exec commands that the user would not be allowed to execute, for example pam_mount, it should be added before the pam_selinux.so open command. If you are adding a pam_module that execs command a user could execute, then you probably want these after the pam_selinux.so open line.

Также обратите внимание, что ваш скрипт в настоящее время имеет контекст безопасности user_home_t, который вряд ли совместим с политикой по умолчанию (контексты файлов сохраняются при перемещении файла; если вы создали файл в своем домашнем каталоге, перемещение файла сохранит исходный контекст ). Вероятно, вам следует использовать контекст bin_tпо умолчанию. Чтобы восстановить контекст по умолчанию:

restorecon  /usr/local/bin/loginformer.py

Если ваш скрипт не делает ничего особенного, поместите pam_execперед pam_selinuxи перезагрузите контекст, чтобы решить вашу проблему.

2
27.01.2020, 20:43

Теги

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