<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>55828</bug_id>
          
          <creation_ts>2025-09-01 13:31:23 +0300</creation_ts>
          <short_desc>`mount error(13): Permission denied` при монтировании через `pam_mount` общей папки с Windows AD DC на клиенте двусторонне доверенного домена FreeIPA</short_desc>
          <delta_ts>2025-09-01 13:31:23 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>samba</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Artem Varaksa">varaksaaa</reporter>
          <assigned_to name="Evgeny Sinelnikov">sin</assigned_to>
          <cc>sin</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>271792</commentid>
    <comment_count>0</comment_count>
    <who name="Artem Varaksa">varaksaaa</who>
    <bug_when>2025-09-01 13:31:23 +0300</bug_when>
    <thetext>Шаги
====

1. Развернуть Windows AD DC на Windows Server 2012 R2.

2. Развернуть FreeIPA DC на ALT Server 11.0 x86_64 (minimal).

3. Настроить two-way trust между доменами.

4. Ввести в домен FreeIPA клиентов ALT Workstation K 11.1, Workstation, Education (KDE), Education (XFCE) 11.0 x86_64 (с помощью sssd).

5. На сервере Windows AD DC создать папку С:\winadshare, открыть Свойства &gt; Доступ &gt; Общий доступ, добавить Все, установить разрешение Чтение и запись.

6. На клиентах проверить монтирование командой:

# mkdir -p /mnt/adshare &amp;&amp; mount -v -t cifs -o user=testuser //&lt;windows-ad-dc-ipv4&gt;/winadshare /mnt/adshare &amp;&amp; l /mnt/adshare

Ввести пароль доменного пользователя.

7. Настроить `pam_mount` на клиенте:

# cat &gt; /etc/security/pam_mount.conf.xml &lt;&lt; EOF
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
&lt;!DOCTYPE pam_mount SYSTEM &quot;pam_mount.conf.xml.dtd&quot;&gt;
&lt;pam_mount&gt;
    &lt;debug enable=&quot;1&quot; /&gt;
    &lt;volume uid=&quot;10000-2000200000&quot; fstype=&quot;cifs&quot; server=&quot;&lt;windows-ad-dc-ipv4&gt;&quot; path=&quot;winadshare&quot; mountpoint=&quot;~/share&quot;
    options=&quot;vers=2.0,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775,user=%(DOMAIN_USER)&quot; /&gt;
    &lt;cifsmount&gt;/sbin/mount.cifs //%(SERVER)/%(VOLUME) %(MNTPT) -o %(OPTIONS)&lt;/cifsmount&gt;
    &lt;cifsumount&gt;/sbin/umount %(MNTPT)&lt;/cifsumount&gt;
    &lt;mntoptions allow=&quot;nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other,sec&quot; /&gt;
    &lt;mntoptions require=&quot;nosuid,nodev&quot; /&gt;
    &lt;logout wait=&quot;0&quot; hup=&quot;no&quot; term=&quot;no&quot; kill=&quot;no&quot; /&gt;
    &lt;mkmountpoint enable=&quot;1&quot; remove=&quot;true&quot; /&gt;
&lt;/pam_mount&gt;
EOF

(Также можно указать `user=%(USER)` вместо `user=%(DOMAIN_USER)`.)

# cat &gt; /etc/pam.d/system-auth-sss &lt;&lt; &apos;EOF&apos;
#%PAM-1.0

auth        [success=5 perm_denied=ignore default=die]    pam_localuser.so
auth        [success=1 default=bad]    pam_succeed_if.so uid &gt;= 500 quiet
auth        [default=2]    pam_permit.so
auth        optional    pam_mount.so disable_interactive
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 &gt;= 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=5 perm_denied=ignore default=die]    pam_localuser.so
password    [success=1 default=bad]    pam_succeed_if.so uid &gt;= 500 quiet
password    [default=2]    pam_permit.so
password    optional    pam_mount.so disable_interactive
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=6 perm_denied=ignore default=die]    pam_localuser.so
session        [success=1 default=bad]    pam_succeed_if.so uid &gt;= 500 quiet
session        [default=3]    pam_permit.so
session     [success=1 default=ignore]  pam_succeed_if.so  service = systemd-user quiet
session        optional    pam_mount.so disable_interactive
session        substack    system-auth-sss-only
session        [default=1]    pam_permit.so
session        substack    system-auth-local-only
session        substack    system-auth-common
EOF

Перезагрузить клиента.

8. Войти на клиенте в пользователя из доверенного домена Windows AD, введя имя пользователя в виде `testuser@ad` (пример для realm `ad.testd`).

Примечание: на KDE использовать X11 как workaround для https://bugzilla.altlinux.org/55210.


Фактический результат
=====================

6. Монтирование успешно.

8. Вход успешный, но монтирование не успешно:

&gt; gdm-password][1753]: (pam_mount.c:568): pam_mount 2.18: entering session stage
&gt; gdm-password][1753]: (mount.c:781): Could not get realpath of /home/ad.testd/testuser/share: Нет такого файла или каталога
&gt; gdm-password][1753]: (mount.c:251): Mount info: globalconf, user=testuser@ad.testd &lt;volume fstype=&quot;cifs&quot; server=&quot;&lt;windows-ad-dc-ipv4&gt;&quot; path=&quot;winadshare&quot; mountpoint=&quot;/home/ad.testd/testuser/share&quot; cipher=&quot;(null)&quot; fskeypath=&quot;(null)&quot; fskeycipher=&quot;(null)&quot; fskeyhash=&quot;(null)&quot; options=&quot;vers=2.0,cruid=1615601142,nounix,uid=1615601142,gid=1615601142,file_mode=0664,dir_mode=0775,user=testuser@ad.testd&quot; /&gt; fstab=0 ssh=0
&gt; gdm-password][1753]: (mount.c:305): mkmountpoint: checking /home
&gt; gdm-password][1753]: (mount.c:305): mkmountpoint: checking /home/ad.testd
&gt; gdm-password][1753]: (mount.c:305): mkmountpoint: checking /home/ad.testd/testuser
&gt; gdm-password][1753]: (mount.c:305): mkmountpoint: checking /home/ad.testd/testuser/share
&gt; gdm-password][1753]: (mount.c:329): mkdir[1615601142] /home/ad.testd/testuser/share
&gt; gdm-password][1753]: (mount.c:660): Password will be sent to helper as-is.
&gt; gdm-password][1753]: command: &apos;/sbin/mount.cifs&apos; &apos;//&lt;windows-ad-dc-ipv4&gt;/winadshare&apos; &apos;/home/ad.testd/testuser/share&apos; &apos;-o&apos; &apos;vers=2.0,cruid=1615601142,nounix,uid=1615601142,gid=1615601142,file_mode=0664,dir_mode=0775,user=testuser@ad.testd&apos;
&gt; kernel: netfs: FS-Cache loaded
&gt; kernel: Key type dns_resolver registered
&gt; kernel: Key type cifs.spnego registered
&gt; kernel: Key type cifs.idmap registered
&gt; kernel: CIFS: enabling forceuid mount option implicitly because uid= option is specified
&gt; kernel: CIFS: enabling forcegid mount option implicitly because gid= option is specified
&gt; kernel: CIFS: Attempting to mount //&lt;windows-ad-dc-ipv4&gt;/winadshare
&gt; kernel: CIFS: Status code returned 0xc000006d STATUS_LOGON_FAILURE
&gt; kernel: CIFS: VFS: \\&lt;windows-ad-dc-ipv4&gt; Send error in SessSetup = -13
&gt; kernel: CIFS: VFS: cifs_mount failed w/return code = -13
&gt; gdm-password][1753]: (mount.c:68): Messages from underlying mount program:
&gt; gdm-password][1753]: (mount.c:72): mount error(13): Permission denied


Ожидаемый результат
===================

6. Монтирование успешно.
8. Вход и монтирование успешны.


Дополнительно
=============

Если на шаге 6 ввести неправильный пароль, то такая же ошибка `mount error(13): Permission denied`.


Воспроизводимость
=================

Воспроизводится на виртуальных машинах:

[sisyphus] ALT Workstation K 11.1, Workstation, Education (KDE), Education (XFCE) 11.0 x86_64
spice-vdagent-0.22.1-alt2.x86_64
pam_mount-2.18-alt1.x86_64
samba-4.21.7-alt4.x86_64
sssd-2.9.7-alt3.x86_64

[p11+393268.1] ALT Workstation K 11.1, Workstation, Education (KDE), Education (XFCE) 11.0 x86_64
spice-vdagent-0.22.1-alt2.x86_64
pam_mount-2.18-alt1.x86_64
samba-4.21.7-alt4.x86_64
sssd-2.9.7-alt3.x86_64

[p11] ALT Workstation K 11.1, Workstation, Education (KDE), Education (XFCE) 11.0 x86_64
spice-vdagent-0.22.1-alt2.x86_64
pam_mount-2.18-alt1.x86_64
samba-4.20.8-alt2.x86_64
sssd-2.9.7-alt1.x86_64</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>