В соответствии с FAQ KVM, когда можно запустить 32-битных гостей поверх 64-битного хоста, «единственная неподдерживаемая комбинация - это 64-разрядная гостевая версия на 32-разрядном хосте». Таким образом, виртуализация, вероятно, не поможет вам в этом случае.
Расширения PAE действительно помогают только в том случае, если вы запускаете много процессов, каждый из которых требует менее 4 ГБ адресного пространства. Хотя расширение позволяет операционной системе управлять большей памятью, оно все еще ограничено 32-разрядным адресным пространством.
Если у вас есть голодный процесс с одной памятью, вам действительно нужно большее адресное пространство, которое вы получаете через 64-битное ядро.
Я не знаю ни одного оператора AND для PAM, но вы можете добиться такого же эффекта с помощью управляющих операторов.
В вашем скрипте проверки верните конкретный код ошибки PAM (возможно, PAM_SYSTEM_ERR), затем используйте управляющие операторы в своем common-auth например:
auth required pam_group.so use_first_pass
auth [success=ok default=1] pam_exec.so /etc/security/check_ecryptfs
auth [success=2 default=ignore] pam_krb5.so minimum_uid=1000 try_first_pass
auth [success=1 default=ignore] pam_unix.so nullok_secure try_first_pass
Операторы управления для модуля pam_exec должны заставить PAM перейти к следующему модулю (pam_krb5) при успешном завершении и пропустить pam_unix, если pam_exe возвращает любой другой код возврата. Однако вам нужно убедиться, что ваш модуль действительно возвращает код успеха. См. Источник.
Дальнейшая ссылка:
страница пользователя pam.d (особенно раздел инструкций управления) Руководство пользователя модуля PAM