Bug 42703

Summary: Пустая вкладка Share (Публикация) в Dolphin на нелокальной учетной записи
Product: Regular Reporter: Илья Демьянов <cavetroll>
Component: kde5Assignee: Slava Aseev <ptrnine>
Status: NEW --- QA Contact: Andrey Cherepanov <cas>
Severity: normal    
Priority: P5 CC: karamba_zzz, mike, ptrnine, ruslandh, zerg
Version: не указана   
Hardware: x86_64   
OS: Linux   
Attachments:
Description Flags
Пустая вкладка Публикация в Dolphin
none
kworkstation 10.0 RC3
none
Workstation K 10 RC3+
none
Кнопки нет none

Description Илья Демьянов 2022-05-06 13:15:00 MSK
Created attachment 10709 [details]
Пустая вкладка Публикация в Dolphin

KDE startkit p10.

$ rpm -q kde5-dolphin kde5-network-filesharing samba
kde5-dolphin-21.12.3-alt1.x86_64
kde5-network-filesharing-21.12.3-alt1.x86_64
samba-4.14.12-alt2.x86_64

Система введена в домен AD путем установки task-auth-ad-sssd и оснастку alterator-auth.

В smb.conf в секцию [global] добавлены строчки:

usershare path = /var/lib/samba/usershares
usershare max shares = 100
usershare allow guests = yes
usershare owner only = yes

Создана группа sambashare, каталог /var/lib/samba/usershares. Доменный пользователь введен в группу sambashare путем отображение глобальных групп на локальные и  может через добавлять шары через net usershare add:

$ ls -la /var/lib/samba/usershares
итого 12
drwxrwx--T 2 root        sambashare          4096 мая  6 11:30 .
drwxr-xr-x 7 root        root                4096 мая  6 12:36 ..
-rw-r--r-- 1 demyanov-ia пользователи домена  113 мая  6 11:30 tmp

Причем каталог отображается расшаренным как в Dolphin, так и в KDE Info Center. Но вкладка Публикация в свойствах этого (и любого другого) каталога - пустая (см. скриншот).

При вызове свойств каталога Dolphin сыпет в консоль:

PermissionsHelper::reload() failed: current user is null
qrc:/org.kde.filesharing.samba/qml/main.qml:39: TypeError: Cannot read property 'inSamba' of null
Comment 1 Michael Shigorin 2022-05-06 13:29:07 MSK
Самбы в стартеркитах и не положено; предполагается, что желающие странного могут сами накрутить нужную конфигурацию, отталкиваясь от загруженной компактной системы и репозитория.

По собственно теме сказать нечего, так как несколько лет уж как не сталкивался
с таким -- но призываю помогать выпускающему стартовые наборы (в т.ч. самостоятельным выяснением и _предложениями_ по составу образов, например), а не пытаться получить от него именно техническую поддержку: так вымотается, на нём огромный пласт работы (часть которого я прекрасно знаю, поскольку снят с меня).

2 zerg: можете глянуть на kworkstation такое?
Comment 2 Антон Мидюков 2022-05-06 13:33:57 MSK
cavetroll@ предлагаю Вам воспроизвести проблему на бете Kworkstation 10.0
Если проблема есть, багрепортить на неё, если нет, отписаться здесь.
Comment 3 ruslandh 2022-05-06 13:35:51 MSK
Что-то аналогичное получилось ?
https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2018-16852
Comment 4 Sergey V Turchin 2022-05-06 14:12:08 MSK
(Ответ для Michael Shigorin на комментарий #1)
> 2 zerg: можете глянуть на kworkstation такое?
У меня предложение нажать кнопку "Создать пароль Samba".
Возможно, в Стартере или должно быть предложение установить или я его скрыл, т.к. надо PackageKit или скрыто само по причине отсутствия PK.

Что, если установить plasma5-discover-packagekit?
Comment 5 Sergey V Turchin 2022-05-06 14:19:05 MSK
Да. Я вырубил "установку samba", поэтому пусто.
Сейчас врублю, но она без PK не заработает.
Comment 6 Илья Демьянов 2022-05-06 15:31:36 MSK
Created attachment 10711 [details]
kworkstation 10.0 RC3
Comment 7 Илья Демьянов 2022-05-06 15:34:01 MSK
(Ответ для Антон Мидюков на комментарий #2)
> cavetroll@ предлагаю Вам воспроизвести проблему на бете Kworkstation 10.0
> Если проблема есть, багрепортить на неё, если нет, отписаться здесь.

Проверили на 10.0 RC3. Завели машину в домен, отобразили AD-группу на локальную sambashare. Результат аналогичный - см. скриншот выше.

Нужно ли заводить отдельный баг для Kworkstation?
Comment 8 Sergey V Turchin 2022-05-06 16:16:49 MSK
(Ответ для Илья Демьянов на комментарий #7)
> Нужно ли заводить отдельный баг для Kworkstation?
Там всё настроено и работает без дополнительных движений.
Если вы при установке сняли галку с установки Plasma, то ССЗБ.
Comment 9 Илья Демьянов 2022-05-06 16:27:05 MSK
(Ответ для Sergey V Turchin на комментарий #8)
> (Ответ для Илья Демьянов на комментарий #7)
> > Нужно ли заводить отдельный баг для Kworkstation?
> Там всё настроено и работает без дополнительных движений.
> Если вы при установке сняли галку с установки Plasma, то ССЗБ.

Вроде ничего подобного я не писал...

Установили Kworksation, при установке добавили только крыжик авторизации в АД (который тянет task-auth-ad-sssd).
Comment 10 Sergey V Turchin 2022-05-06 16:34:59 MSK
(Ответ для Илья Демьянов на комментарий #9)
> Установили Kworksation, при установке добавили только крыжик авторизации в
> АД (который тянет task-auth-ad-sssd).
Тогда у вас всё работает. Там кнопка "Создать пароль Samba".
Comment 11 Sergey V Turchin 2022-05-06 16:40:10 MSK
Created attachment 10712 [details]
Workstation K 10 RC3+

Вроде никаких изменений после RC3 не было, но оно работает.
Comment 12 Илья Демьянов 2022-05-06 16:48:35 MSK
Created attachment 10713 [details]
Кнопки нет

Прошу обратить внимание, что у меня не локальная учетка, а AD - я думаю, что скорее всего проблема в этом - dolphin или kde5-network-filesharing обламывается на проверке прав нелокальной учётки.
Comment 13 Sergey V Turchin 2022-05-06 16:58:08 MSK
(Ответ для Илья Демьянов на комментарий #12)
> Прошу обратить внимание, что у меня не локальная учетка, а AD
Да. Наверняка в этом дело.
Comment 14 Евгений 2022-05-11 09:27:44 MSK
(Ответ для Илья Демьянов на комментарий #0)
> Создано вложение 10709 [details] [подробности]
> Пустая вкладка Публикация в Dolphin
> 
> KDE startkit p10.
> 
> $ rpm -q kde5-dolphin kde5-network-filesharing samba
> kde5-dolphin-21.12.3-alt1.x86_64
> kde5-network-filesharing-21.12.3-alt1.x86_64
> samba-4.14.12-alt2.x86_64
> 
> Система введена в домен AD путем установки task-auth-ad-sssd и оснастку
> alterator-auth.
> 
> В smb.conf в секцию [global] добавлены строчки:
> 
> usershare path = /var/lib/samba/usershares
> usershare max shares = 100
> usershare allow guests = yes
> usershare owner only = yes
> 
> Создана группа sambashare, каталог /var/lib/samba/usershares. Доменный
> пользователь введен в группу sambashare путем отображение глобальных групп
> на локальные и  может через добавлять шары через net usershare add:
> 
> $ ls -la /var/lib/samba/usershares
> итого 12
> drwxrwx--T 2 root        sambashare          4096 мая  6 11:30 .
> drwxr-xr-x 7 root        root                4096 мая  6 12:36 ..
> -rw-r--r-- 1 demyanov-ia пользователи домена  113 мая  6 11:30 tmp
> 
> Причем каталог отображается расшаренным как в Dolphin, так и в KDE Info
> Center. Но вкладка Публикация в свойствах этого (и любого другого) каталога
> - пустая (см. скриншот).
> 
> При вызове свойств каталога Dolphin сыпет в консоль:
> 
> PermissionsHelper::reload() failed: current user is null
> qrc:/org.kde.filesharing.samba/qml/main.qml:39: TypeError: Cannot read
> property 'inSamba' of null

Баг подтверждаю!
Comment 15 Илья Демьянов 2022-06-14 12:11:41 MSK
После обновления на 22.04: 

$ rpm -q kde5-dolphin kde5-network-filesharing 
kde5-dolphin-22.04.1-alt1.x86_64
kde5-network-filesharing-22.04.1-alt2.x86_64

ничего не изменилось.
Comment 16 Slava Aseev 2022-06-15 19:43:25 MSK
(Ответ для Илья Демьянов на комментарий #15)
> После обновления на 22.04: 
> 
> $ rpm -q kde5-dolphin kde5-network-filesharing 
> kde5-dolphin-22.04.1-alt1.x86_64
> kde5-network-filesharing-22.04.1-alt2.x86_64
> 
> ничего не изменилось.

Похоже, в коде есть проверка на присутствие текущего пользователя в списке, сгенерированном с помощью getpwent.
Доменного пользователя там не будет, если не включить enumerate в sssd.conf (enumerate = True).
Видимо, проверял с enumerate, поэтому и пропустил этот момент.
Comment 17 Илья Демьянов 2022-06-16 11:53:03 MSK
(In reply to Slava Aseev from comment #16)

> 
> Похоже, в коде есть проверка на присутствие текущего пользователя в списке,
> сгенерированном с помощью getpwent.
> Доменного пользователя там не будет, если не включить enumerate в sssd.conf
> (enumerate = True).
> Видимо, проверял с enumerate, поэтому и пропустил этот момент.

Да, включил enumerate, открытие свойств в Dolphin каталога теперь происходит с задержкой. По умолчанию не рекомендуют его включать: https://docs.pagure.org/sssd.sssd/users/faq.html
https://access.redhat.com/solutions/500433

На вкладке Публикации теперь "Недостаточно прав для управления пользовательскими ресурсами Samba", хотя пользователь включен в группу:

$ id | grep -q sambashare && echo true || echo false
true
Comment 18 Slava Aseev 2022-06-16 19:09:28 MSK
(Ответ для Илья Демьянов на комментарий #17)
> Да, включил enumerate, открытие свойств в Dolphin каталога теперь происходит
> с задержкой. По умолчанию не рекомендуют его включать:
> https://docs.pagure.org/sssd.sssd/users/faq.html
> https://access.redhat.com/solutions/500433

Подвисает, видимо, потому что теперь выгребает всех пользователей. Отправлю патч, чтобы работало без enumerate (однако, без enumerate пока что нельзя будет настроить права доступа шары для какого-либо конкретного доменного пользователя).

> 
> На вкладке Публикации теперь "Недостаточно прав для управления
> пользовательскими ресурсами Samba", хотя пользователь включен в группу:
> 
> $ id | grep -q sambashare && echo true || echo false
> true

Вот здесь даже не знаю, что это может быть, такого не наблюдалось. Если прав недостаточно (хотя у вас должно быть все нормально), там обычно отображается вспомогательный диалог для добавления пользователя в группу.

Здесь же будто бы вообще не удалось определить, надо ли добавлять в группу. Быть может, какая-то проблема возникает при получении пути usershare (из которого и берется группа):
testparm --debuglevel=0 --suppress-prompt --verbose --parameter-name 'usershare path'
В stdout должно быть /var/lib/samba/usershares (ну или то, что указано в smb.conf).

А если запустить Dolphin из эмулятора терминала, туда ничего интересного не выводится?
Comment 19 Илья Демьянов 2022-06-17 09:07:02 MSK
(In reply to Slava Aseev from comment #18)
> testparm --debuglevel=0 --suppress-prompt --verbose --parameter-name
> 'usershare path'
> В stdout должно быть /var/lib/samba/usershares (ну или то, что указано в
> smb.conf).
> 
> А если запустить Dolphin из эмулятора терминала, туда ничего интересного не
> выводится?

$ testparm --debuglevel=0 --suppress-prompt --verbose --parameter-name 'usershare path'
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Weak crypto is allowed

ERROR: Do not use the 'sss' backend as the default idmap backend!

/var/lib/samba/usershares

$ ls -la /var/lib/samba/usershares
итого 8
drwxrwx--T 2 root sambashare 4096 июн 16 12:02 .
drwxr-xr-x 7 root root       4096 июн 16 11:30 ..

>А если запустить Dolphin из эмулятора терминала, туда ничего интересного не выводится?

нет, тишина
Comment 20 Slava Aseev 2022-07-04 16:29:06 MSK
В сизиф прошло исправление (теперь в определенных случаях работает и без enumerate в sssd.conf): https://git.altlinux.org/tasks/302164

Но, подозреваю, что в описанном здесь случае, проблема с "Недостаточно прав для управления пользовательскими ресурсами Samba" остается. Как исправить - идей пока нет. Попозже попробую развернуть домен AD (раньше дел с ним не имел, разворачивал freeipa).

В случае freeipa у меня работал немного другой механизм: на /var/lib/samba/usershares был поставлен ACL :
setfacl -m g:sambashare:rwx /var/lib/samba/usershares
Соответственно, /var/lib/samba/usershares был доступен всем пользователям, включенным в доменную группу sambashare (наверное, лучше для доменной группы sambashare выбрать другое имя, но так тоже работает).
Comment 21 Илья Демьянов 2022-07-06 16:57:52 MSK
1. Протестировал https://git.altlinux.org/tasks/303241/ - теперь вкладка отображается с отключенным enumerate

2. Проблема с "Недостаточно прав для управления пользовательскими ресурсами Samba" была связана с тем, что testparam возвращал -1 из-за ошибки: 

ERROR: Do not use the 'sss' backend as the default idmap backend!

Приведение конфигурации smb.conf к такому виду решило проблему:

idmap config MYDOMAIN : backend = sss 
idmap config MYDOMAIN : range = 200000-2000200000
idmap config * : backend = tdb
idmap config * : range = 100000-199999

Список пользователей для настройки прав теперь состоит только из "Любой" и текущего доменного пользователя.