У меня есть новая установка Kubuntu 18.04.1 с аутентификацией пользователя через sssd
к Microsoft Active Directory компании.
У каждого пользователя есть доля Samba на //fileserver6/$USER
и я хочу смонтировать его во время входа в систему.
Мне удалось добраться pam_mount
настроенный для монтирования доли каждый раз, когда пользователь входит в систему, и это хорошо работало..., пока я не вышел из KDE и обнаружил, что sddm-зазывала не работала!
Вместо приглашения ко входу в систему существует только черный экран с указателем мыши. В ниже pam_mount.conf.xml
, Я могу прокомментировать <volume>
тег и журнал на пути sddm
, затем я могу не прокомментировать это и войти в терминальный сеанс, и каталог автосмонтирован. Но у меня не может быть обоих!
Приводя решение к сбою проблемы, я счастливо установлю другого менеджера по оформлению, если она будет работать (lightdm
даже не позволит мне выбрать пользователя). [ETA: lxdm
действительно работает]
/etc/security/pam_mount.conf.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
<!--
See pam_mount.conf(5) for a description.
-->
<pam_mount>
<!-- debug should come before everything else,
since this file is still processed in a single pass
from top-to-bottom -->
<debug enable="0" />
<!-- Volume definitions -->
<volume user="*" fstype="cifs" server="fileserver6" path="%(USER)"
mountpoint="/media/%(USER)/p" options="cruid=%(USER),sec=krb5" />
<!-- pam_mount parameters: General tunables -->
<luserconf name=".pam_mount.conf.xml" />
<!-- Note that commenting out mntoptions will give you the defaults.
You will need to explicitly initialize it with the empty string
to reset the defaults to nothing. -->
<mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" />
<!--
<mntoptions deny="suid,dev" />
<mntoptions allow="*" />
<mntoptions deny="*" />
-->
<mntoptions require="nosuid,nodev" />
<!-- requires ofl from hxtools to be present -->
<logout wait="0" hup="no" term="no" kill="no" />
<!-- pam_mount parameters: Volume-related -->
<mkmountpoint enable="1" remove="true" />
</pam_mount>
/etc/pam.d/sddm
auth requisite pam_nologin.so
auth required pam_succeed_if.so user != root quiet_success
@include common-auth
-auth optional pam_gnome_keyring.so
-auth optional pam_kwallet.so
-auth optional pam_kwallet5.so
@include common-account
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
session optional pam_keyinit.so force revoke
session required pam_limits.so
session required pam_loginuid.so
@include common-session
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open
-session optional pam_gnome_keyring.so auto_start
-session optional pam_kwallet.so auto_start
-session optional pam_kwallet5.so auto_start
@include common-password
session required pam_env.so
session required pam_env.so envfile=/etc/default/locale
/etc/pam.d/sddm-greeter
auth required pam_permit.so
@include common-account
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
session optional pam_keyinit.so force revoke
session required pam_limits.so
session required pam_loginuid.so
@include common-session
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open
password required pam_deny.so
session required pam_env.so
session required pam_env.so envfile=/etc/default/locale
/etc/pam.d/common-session
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session optional pam_umask.so
session required pam_unix.so
session optional pam_sss.so
session optional pam_mount.so
session optional pam_systemd.so
session optional pam_mkhomedir.so
/etc/pam.d/common-auth
auth [success=2 default=ignore] pam_unix.so nullok_secure
auth [success=1 default=ignore] pam_sss.so use_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
auth optional pam_mount.so
auth optional pam_cap.so
/etc/pam.d/common-password
password requisite pam_pwquality.so retry=3
password [success=2 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512
password sufficient pam_sss.so use_authtok
password requisite pam_deny.so
password required pam_permit.so
password optional pam_mount.so disable_interactive
password optional pam_gnome_keyring.so
Я столкнулся с подобной проблемой также на новой установке debian тестирование (уничтожителя) с sddm 0.18.0-1.
Ниже копия сообщения, которое я добавил к sddm проблеме GitHub: https://github.com/sddm/sddm/issues/637.
Измените конфигурацию pam_mount в /etc/security/pam_mount.conf.xml
для использования расширенного пользовательского элемента управления, для исключения sddm пользователя из попытки смонтировать объем:
<volume fstype="cifs" server="fileserver6" path="%(USER)" mountpoint="/media/%(USER)/p" options="cruid=%(USER),sec=krb5">
<not><user>sddm</user></not>
</volume>
systemctl stop sddm && startx
позволяет мне получать рабочую среду KDE Plasma хотя<volume fstype="cifs" server="server1.ad.lan" options="domain=MYDOMAIN,vers=3.0" path="data" mountpoint="~/mnt/server1/data" />
Быть более точным:
systemctl restart sddm
инициирует признаки, описанные вышеsystemctl restart sddm
, заставит sddm отобразиться правильно сноваВ системном журнале:
Jan 13 15:12:56 mycomputer sddm[2338]: Greeter starting...
Jan 13 15:12:56 mycomputer sddm[2338]: Adding cookie to "/var/run/sddm/{b73b2904-3de9-46d5-b2ac-a407bd3be089}"
Jan 13 15:12:56 mycomputer sddm-helper[2349]: [PAM] Starting...
Jan 13 15:12:56 mycomputer sddm-helper[2349]: [PAM] Authenticating...
Jan 13 15:12:56 mycomputer sddm-helper[2349]: [PAM] returning.
Jan 13 15:12:56 mycomputer sddm[2338]: (pam_mount.c:568): pam_mount 2.16: entering session stage
Jan 13 15:12:56 mycomputer sddm-helper[2349]: [PAM] Preparing to converse...
Jan 13 15:12:56 mycomputer sddm-helper[2349]: [PAM] Conversation with 1 messages
Jan 13 15:22:53 mycomputer sddm[2338]: Signal received: SIGTERM
Как указано в GitHub:
То же самое. Мне удалось получить эту работу путем комментирования:
@include common-session
и включая все содержание
common-session
кромеpam_mount.so
строка в/etc/pam.d/sddm-greeter
, но то, когда пользователи закрыли свои сеансы pam_mount, не знает поэтому, когда они выходят из системы, их точки монтирования не становятся размонтированными.
Проблема, кажется, происходит в /etc/pam.d/sddm-greeter
, при выполнении @include common-session
:
То, что я не понимаю:
/etc/pam.d/login
: этот pam_mount отказ проигнорирован, и вход в систему может обычно продолжаться/etc/pam.d/sddm-greeter
: процесс sddm ловит SIGTERM и завершаетсяДля процесса sddm действительно ли возможно тихо проигнорировать ошибки, в которых происходят /etc/pam.d/common-session
? Иначе, это возможный изменить /etc/pam.d/sddm-greeter
, при помощи условий в substack
вместо простого @include
?
Извините, я не эксперт с pam, я не знаю, имеет ли это смысл...
Иначе, в дополнение к вышеупомянутому предложению, ниже другое возможное обходное решение:
Как указано прежде, проблема, кажется, происходит, потому что pam_mount пытается смонтировать долю с помощью sddm
пользователь, который не имеет никаких учетных данных для него.
Так, в основном мы просто должны исключить sddm
пользователь (и другие, в случае необходимости), от монтирования доли. Это использует расширенные функции пользовательского элемента управления в pam_mount (ссылка).
Так, вместо того, чтобы определить объем как ниже в /etc/security/pam_mount.conf.xml
:
<volume fstype="cifs" server="server1.ad.lan" options="domain=MYDOMAIN,vers=3.0" path="data" mountpoint="~/mnt/server1/data" />
Мы можем записать (3 варианта, адаптироваться к Вашим потребностям):
<volume fstype="cifs" server="server1.ad.lan" options="domain=MYDOMAIN,vers=3.0" path="data" mountpoint="~/mnt/server1/data" uid="5000-999999999" />
<volume fstype="cifs" server="server1.ad.lan" options="domain=MYDOMAIN,vers=3.0" path="data" mountpoint="~/mnt/server1/data">
<not><uid>0-4999</uid></not>
</volume>
<volume fstype="cifs" server="server1.ad.lan" options="domain=MYDOMAIN,vers=3.0" path="data" mountpoint="~/mnt/server1/data">
<not><user>sddm</user></not>
</volume>
Извините за это длинное сообщение я надеюсь, что Вы найдете это полезным!
Удачи.