Summary: | Не видит пользователей в /etc/tcb при составлении списка | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Fr. Br. George <george> | ||||||
Component: | accountsservice | Assignee: | Alexey Shabalin <shaba> | ||||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||||
Severity: | normal | ||||||||
Priority: | P3 | CC: | aris, shaba | ||||||
Version: | unstable | ||||||||
Hardware: | all | ||||||||
OS: | Linux | ||||||||
See Also: | https://bugzilla.altlinux.org/show_bug.cgi?id=48825 | ||||||||
Attachments: |
|
Description
Fr. Br. George
2018-08-04 12:27:34 MSK
Э-э-э, Гоша, не торопись, ты, наверное, не разобрался. GDM успешно получает список от accountsservice. ls /var/lib/AccountsService/users/ ? Created attachment 7688 [details]
Use getspent_r() instead of fgetspent_r() (TCB)
fgetspent_r() слегка несовмевстимо с TCB (надо по многу раз вызывать для каждого /etc/tcb/<user>/shadow). В данном случае, хоть оно и встречается в итераторе, но вызывается только в первой итерации.
(В ответ на комментарий №1) > Э-э-э, Гоша, не торопись, ты, наверное, не разобрался. > GDM успешно получает список от accountsservice. Возможно, он потом лезет сам куда-то. В коде accountsservice явно написано открывать _файл_ /etc/shadow и читать оттуда с помощью fgetspent_r(). С файлами они рабоают потому что внутри итератора, открытый файл в текущем состоянии можно записать в контекст, а как обеспечить контекст для getpwent(), например, непонятно. Но именно shadow там засасывается целиком в первой итерации, так что fgetspent_r вполне можно поменять на getspent_r, что я и сделал. > ls /var/lib/AccountsService/users/ > ? Пусто (В ответ на комментарий №3) > > ls /var/lib/AccountsService/users/ > > ? > Пусто Точнее, один я) (В ответ на комментарий №2) > Created an attachment (id=7688) [details] > Use getspent_r() instead of fgetspent_r() (TCB) Это плохой патч, негодный. Потому что так всё идёт _мимо_ nsswitch, а с патчем getspent_r() ьуда таки ходит. Я лучше посмотрю, так ли нужна информация из shadow по ходу. Created attachment 7708 [details]
Патч, игнорирующий несоответствие /etc/passwd и /etc/shadow
Как выяснилось, accountsservice вполне может работать с учётной записью в passwd, даже если в shadow такой нет. См. задание 211373
accountsservice-0.6.50-alt2.S1 -> sisyphus: Tue Aug 14 2018 Fr. Br. George <george@altlinux.ru> 0.6.50-alt2.S1 - Ignore ALT-specific empty /etc/shadow (closes: #35210) |