Возможным обходным решением является использование модуля pam _, уже зарегистрированного в . Обычно это используется для входа в систему без пароля, когда вы уже вошли в систему с другого tty, но с некоторой творческой конфигурацией pam ее также можно использовать для различения первого входа в систему (, еще не выполненного входа )и разблокировки. или второй логин (уже зарегистрирован ). Выбор, который он делает, не идеален, но может быть достаточным для ваших нужд.
Одно большое предостережение заключается в том, что модуль не распознает сеансы X, а только сеансы терминала (, потому что он проверяет право собственности на tty-устройство, которого нет у сеансов X, поэтому он ищет /dev/:0
, которого нет. существуют ). На практике это означает, что он распознает вас как вошедшего в систему, если у вас есть какой-либо терминал, открытый внутри вашей X-сессии (, а также экран или tmux, работающий в фоновом режиме ).
Я думаю, что что-то вроде следующего может подойти для вашего варианта использования:
# Skip regular password checks when already logged in (i.e. also when
# unlocking). This skips a number of modules from common-auth when
# succesful, so this breaks when extra primary modules are added there,
# but this seems to be the only way (using success=done prevents
# optional post-auth modules from running).
auth [success=2 default=ok] pam_alreadyloggedin.so debug
@include common-auth
auth required pam_u2f.so
Возможно, вам придется адаптировать это в зависимости от того, что содержит ваш common-auth
файл.
Как я понял теперь (благодаря комментариям)sudo apt
использует _apt
пользователя. И отсутствие разрешения на выполнение для родительской папки /media/mint
не позволило ему получить доступ к файлам. Обходной путь - добавить разрешение exec, например.
setfacl -m u:_apt:x /media/mint