Pam mount: различия между версиями
м (+Групповые политики/Подключение сетевых дисков (спасибо Павлу Зильке)) |
м (Добавлены категории) |
||
(не показаны 4 промежуточные версии 2 участников) | |||
Строка 3: | Строка 3: | ||
1. Устанавливаем {{pkg|pam_mount}}: | 1. Устанавливаем {{pkg|pam_mount}}: | ||
apt-get install pam_mount | # apt-get install pam_mount | ||
Если осуществляется подключение файловых ресурсов по протоколу CIFS (SMB), то установите {{pkg|cifs-utils}}: | Если осуществляется подключение файловых ресурсов по протоколу CIFS (SMB), то установите {{pkg|cifs-utils}}: | ||
apt-get install cifs-utils | # apt-get install cifs-utils | ||
{{Attention|Для того, чтобы файловые ресурсы, подключенные с помощью pam_mount, корректно отключались при завершении сеанса, установите пакет {{pkg|systemd-settings-enable-kill-user-processes}} и перезагрузите систему: <source lang="text">apt-get install systemd-settings-enable-kill-user-processes</source>}} | {{Attention|Для того, чтобы файловые ресурсы, подключенные с помощью pam_mount, корректно отключались при завершении сеанса, установите пакет {{pkg|systemd-settings-enable-kill-user-processes}} и перезагрузите систему: <source lang="text"># apt-get install systemd-settings-enable-kill-user-processes</source>}} | ||
2. Прописываем pam_mount в схему аутентификации по умолчанию. В конец файла ({{path|/etc/pam.d/system-auth}}) добавьте строки | 2. Прописываем pam_mount в схему аутентификации по умолчанию. В конец файла ({{path|/etc/pam.d/system-auth}}) добавьте строки | ||
Строка 54: | Строка 54: | ||
3. Устанавливаем правило монтирования ресурса в файле {{path|/etc/security/pam_mount.conf.xml}}: | 3. Устанавливаем правило монтирования ресурса в файле {{path|/etc/security/pam_mount.conf.xml}}: | ||
<source lang="xml"><volume uid="10000-2000200000" fstype="cifs" server="c253.test.alt" path="sysvol" mountpoint="~/share" options="sec=krb5i,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775" /></source> | <source lang="xml"> | ||
<volume uid="10000-2000200000" | |||
fstype="cifs" | |||
server="c253.test.alt" | |||
path="sysvol" | |||
mountpoint="~/share" | |||
options="sec=krb5i,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775"/></source> | |||
где | где | ||
* '''uid="10000-2000200000"''' — диапазон присваиваемых для доменных пользователей UID (подходит и для Winbind и для SSSD); | * '''uid="10000-2000200000"''' — диапазон присваиваемых для доменных пользователей UID (подходит и для Winbind и для SSSD); | ||
Строка 67: | Строка 73: | ||
Пример файла {{path|/etc/security/pam_mount.conf.xml}}: | Пример файла {{path|/etc/security/pam_mount.conf.xml}}: | ||
{|class="mw-collapsible mw-collapsed" | |||
!С комментариями для изучения | |||
|- | |||
| | |||
<source lang="xml" highlight="16-21"><?xml version="1.0" encoding="utf-8" ?> | <source lang="xml" highlight="16-21"><?xml version="1.0" encoding="utf-8" ?> | ||
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd"> | <!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd"> | ||
<!-- | <!-- | ||
См. pam_mount.conf(5) для описания. | |||
--> | --> | ||
<pam_mount> | <pam_mount> | ||
<!-- | |||
Отладка должна быть раньше всего остального, | |||
т.к. этот файл все равно считываются за | |||
один проход сверху вниз | |||
--> | |||
<debug enable="0" /> | <debug enable="0" /> | ||
<!-- Определение монтируемых томов --> | |||
<volume uid="10000-2000200000" | <volume uid="10000-2000200000" | ||
fstype="cifs" | fstype="cifs" | ||
Строка 89: | Строка 101: | ||
options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775" /> | options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775" /> | ||
<!-- | |||
pam_mount parameters: General tunables | |||
--> | |||
<!-- | <!-- | ||
Строка 95: | Строка 110: | ||
--> | --> | ||
<!-- | <!-- | ||
Обратите внимание, что если закомментировать mntoptions, то будут заданы значения по умолчанию. | |||
Необходимо явно инициализировать его пустой строкой чтобы сбросить значения на по-умолчанию. | |||
--> | |||
<mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other,sec" /> | <mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other,sec" /> | ||
<!-- | <!-- | ||
<mntoptions deny="suid,dev" /> | <mntoptions deny="suid,dev" /> | ||
Строка 104: | Строка 122: | ||
<mntoptions deny="*" /> | <mntoptions deny="*" /> | ||
--> | --> | ||
<mntoptions require="nosuid,nodev" /> | <mntoptions require="nosuid,nodev" /> | ||
<!-- | <!-- | ||
Требуется наличие ofl из hxtools | |||
--> | |||
<logout wait="0" hup="no" term="no" kill="no" /> | <logout wait="0" hup="no" term="no" kill="no" /> | ||
<!-- Параметры pam_mount: связанные тома --> | |||
<mkmountpoint enable="1" remove="true" /> | |||
</pam_mount></source> | |||
|} | |||
{|class="mw-collapsible mw-collapsed" | |||
!Без комментариев для "продакшена" | |||
|- | |||
| | |||
<source lang="xml" highlight="16-21"><?xml version="1.0" encoding="utf-8" ?> | |||
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd"> | |||
<pam_mount> | |||
<debug enable="0" /> | |||
<volume uid="10000-2000200000" | |||
fstype="cifs" | |||
server="c253.test.alt" | |||
path="sysvol" | |||
mountpoint="~/share" | |||
options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775" /> | |||
<mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other,sec" /> | |||
<mntoptions require="nosuid,nodev" /> | |||
<logout wait="0" hup="no" term="no" kill="no" /> | |||
<mkmountpoint enable="1" remove="true" /> | <mkmountpoint enable="1" remove="true" /> | ||
</pam_mount></source> | </pam_mount></source> | ||
|} | |||
Для отладки подключения замените в файле {{path|/etc/security/pam_mount.conf.xml}} | Для отладки подключения замените в файле {{path|/etc/security/pam_mount.conf.xml}} | ||
<source lang="xml" highlight="16-21"> | |||
<debug enable="0" /> | <debug enable="0" /> | ||
</source> | |||
на | на | ||
<source lang="xml" highlight="16-21"> | |||
<debug enable="1" /> | <debug enable="1" /> | ||
</source> | |||
При этом отладочные сообщения будут показываться в журнале [[Journald]]. | При этом отладочные сообщения будут показываться в журнале [[Journald]]. | ||
Вы можете сменить механизм монтирования отдав его на откуп systemd. Для этого в pam_mount.xml.conf можно задать\переопределить опции cifsmount, umount | Вы можете сменить механизм монтирования отдав его на откуп systemd. Для этого в pam_mount.xml.conf можно задать\переопределить опции cifsmount, umount | ||
<source lang="xml" highlight="16-21"> | |||
<cifsmount>systemd-mount -A -G -q -t cifs %(COMBOPATH) %(MNTPT) -o uid=%(USERUID),gid=%(USERGID),username=%(USER),%(OPTIONS)</cifsmount> | <cifsmount>systemd-mount -A -G -q -t cifs %(COMBOPATH) %(MNTPT) -o uid=%(USERUID),gid=%(USERGID),username=%(USER),%(OPTIONS)</cifsmount> | ||
<umount>systemd-mount -u %(MNTPT)</umount> | <umount>systemd-mount -u %(MNTPT)</umount> | ||
</source> | |||
== Советы == | == Советы == | ||
* Для того, чтобы подключенная папка не показывалась на рабочем столе [[Mate]], следует в параметры добавить {{term|x-gvfs-hide}}. | * Для того, чтобы подключенная папка не показывалась на рабочем столе [[Mate]], следует в параметры добавить {{term|x-gvfs-hide}}. | ||
Строка 136: | Строка 192: | ||
[[Категория:HOWTO]] | [[Категория:HOWTO]] | ||
[[Категория:PAM]] | [[Категория:PAM]] | ||
{{Category navigation|title=PAM|category=PAM|sortkey={{SUBPAGENAME}}}} |
Текущая версия от 10:22, 5 августа 2024
Заданный файловый ресурс подключается с заданного сервера автоматически при каждом входе доменным пользователем.
1. Устанавливаем pam_mount:
# apt-get install pam_mount
Если осуществляется подключение файловых ресурсов по протоколу CIFS (SMB), то установите cifs-utils:
# apt-get install cifs-utils
# apt-get install systemd-settings-enable-kill-user-processes
2. Прописываем pam_mount в схему аутентификации по умолчанию. В конец файла (/etc/pam.d/system-auth) добавьте строки
session [success=1 default=ignore] pam_succeed_if.so service = systemd-user quiet session optional pam_mount.so disable_interactive
Параметр disable_interactive нужен для того, чтобы pam_mount не спрашивал пароль. Первая строка предназначена для того, чтобы не монтировать дважды при запуске systemd --user. Подробнее: https://wiki.archlinux.org/title/pam_mount#Login_manager_configuration
Пример файла /etc/pam.d/system-auth при аутентификации доменного пользователя под SSSD:
#%PAM-1.0
auth [success=4 perm_denied=ignore default=die] pam_localuser.so
auth [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet
auth [default=1] pam_permit.so
auth substack system-auth-sss-only
auth [default=1] pam_permit.so
auth substack system-auth-local-only
auth substack system-auth-common
account [success=4 perm_denied=ignore default=die] pam_localuser.so
account [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet
account [default=1] pam_permit.so
account substack system-auth-sss-only
account [default=1] pam_permit.so
account substack system-auth-local-only
account substack system-auth-common
password [success=4 perm_denied=ignore default=die] pam_localuser.so
password [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet
password [default=1] pam_permit.so
password substack system-auth-sss-only
password [default=1] pam_permit.so
password substack system-auth-local-only
password substack system-auth-common
session [success=4 perm_denied=ignore default=die] pam_localuser.so
session [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet
session [default=1] pam_permit.so
session substack system-auth-sss-only
session [default=1] pam_permit.so
session substack system-auth-local-only
session substack system-auth-common
session [success=1 default=ignore] pam_succeed_if.so service = systemd-user
session optional pam_mount.so disable_interactive
3. Устанавливаем правило монтирования ресурса в файле /etc/security/pam_mount.conf.xml:
<volume uid="10000-2000200000"
fstype="cifs"
server="c253.test.alt"
path="sysvol"
mountpoint="~/share"
options="sec=krb5i,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775"/>
где
- uid="10000-2000200000" — диапазон присваиваемых для доменных пользователей UID (подходит и для Winbind и для SSSD);
- server="c253.test.alt" — имя сервера с ресурсом;
- path="sysvol" — имя файлового ресурса;
- mountpoint="~/share" — путь монтирования в домашней папке пользователя.
Опционально можно добавить:
- sgrp="group_name" — имя группы, при членстве пользователя в которой, папка будет примонтирована.
Параметр sec=krb5i более безопасный, но требует больше вычислительных ресурсов. Вместо него можно указать sec=krb5.
Пример файла /etc/security/pam_mount.conf.xml:
С комментариями для изучения |
---|
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
<!--
См. pam_mount.conf(5) для описания.
-->
<pam_mount>
<!--
Отладка должна быть раньше всего остального,
т.к. этот файл все равно считываются за
один проход сверху вниз
-->
<debug enable="0" />
<!-- Определение монтируемых томов -->
<volume uid="10000-2000200000"
fstype="cifs"
server="c253.test.alt"
path="sysvol"
mountpoint="~/share"
options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775" />
<!--
pam_mount parameters: General tunables
-->
<!--
<luserconf name=".pam_mount.conf.xml" />
-->
<!--
Обратите внимание, что если закомментировать mntoptions, то будут заданы значения по умолчанию.
Необходимо явно инициализировать его пустой строкой чтобы сбросить значения на по-умолчанию.
-->
<mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other,sec" />
<!--
<mntoptions deny="suid,dev" />
<mntoptions allow="*" />
<mntoptions deny="*" />
-->
<mntoptions require="nosuid,nodev" />
<!--
Требуется наличие ofl из hxtools
-->
<logout wait="0" hup="no" term="no" kill="no" />
<!-- Параметры pam_mount: связанные тома -->
<mkmountpoint enable="1" remove="true" />
</pam_mount>
|
Без комментариев для "продакшена" |
---|
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
<pam_mount>
<debug enable="0" />
<volume uid="10000-2000200000"
fstype="cifs"
server="c253.test.alt"
path="sysvol"
mountpoint="~/share"
options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775" />
<mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other,sec" />
<mntoptions require="nosuid,nodev" />
<logout wait="0" hup="no" term="no" kill="no" />
<mkmountpoint enable="1" remove="true" />
</pam_mount>
|
Для отладки подключения замените в файле /etc/security/pam_mount.conf.xml
<debug enable="0" />
на
<debug enable="1" />
При этом отладочные сообщения будут показываться в журнале Journald.
Вы можете сменить механизм монтирования отдав его на откуп systemd. Для этого в pam_mount.xml.conf можно задать\переопределить опции cifsmount, umount
<cifsmount>systemd-mount -A -G -q -t cifs %(COMBOPATH) %(MNTPT) -o uid=%(USERUID),gid=%(USERGID),username=%(USER),%(OPTIONS)</cifsmount>
<umount>systemd-mount -u %(MNTPT)</umount>
Советы
- Для того, чтобы подключенная папка не показывалась на рабочем столе Mate, следует в параметры добавить x-gvfs-hide.
- Если при выходе пользователя всё равно файловый ресурс остаётся подключенным, отмонтируйте его и удалите файл /run/pam_mount/<имя_пользователя>