Created attachment 19354 [details] мой /etc/shells для иллюстрации GDM и GNOME считают человеческими пользователями (помимо китерия про UID >= 1000) только тех, у чей shell находится в списке /etc/shells. Однако, согласно spec-файлу пакета fish, в этот список добавляется только её реальный путь, то есть /usr/bin/fish. Путь /bin/fish, в отличие от подобных для остальных оболочек (по умолчанию предоставленных пакетом setup), там не появляется. Вследствие этого при неаккуратной установке оболочки по умолчанию на /bin/fish, вход в систему перестаёт работать вообще. Поскольку знать, что в системе /bin - ссылка на /usr/bin, - это не обязанность пакета fish, наиболее разумным выходом было бы просто добавить эту оболочку в /etc/shells изначально. P.S. Пишу, как баг пакета setup, потому что в аналогичном запросе на fish другого пользователя именно это делать и послали.
(Ответ для Андрей на комментарий #0) > P.S. Пишу, как баг пакета setup, потому что в аналогичном запросе на fish > другого пользователя именно это делать и послали. P.P.S. Это был запрос 55600.
У нас давно висит пожелание сделать /etc/shells автогенерируемым из состава пакетов (и локальных добавлений от администратора)
(In reply to Андрей from comment #1) > (Ответ для Андрей на комментарий #0) > > P.S. Пишу, как баг пакета setup, потому что в аналогичном запросе на fish > > другого пользователя именно это делать и послали. > P.P.S. Это был запрос 55600. > Bug 55600 - NetworkManager (etcnet): Удаление link-local IPv6-адреса с помощью `ip`, если CONFIG_IPV6=yes, ... Не похоже. :)
(Ответ для Arseny Maslennikov на комментарий #3) > > Bug 55600 - NetworkManager (etcnet): Удаление link-local IPv6-адреса с помощью `ip`, если CONFIG_IPV6=yes, ... > Не похоже. :) Да-да, 50600, ошибся
Сейчас по умолчанию в p11 (ALT Workstation 11.0 x86_64): > # cat /etc/shells > /bin/sh > /usr/bin/sh > /bin/bash > /usr/bin/bash > /bin/ash > /usr/bin/ash > /bin/bsh > /usr/bin/bsh > /bin/csh > /usr/bin/csh > /bin/tcsh > /usr/bin/tcsh > /bin/ksh > /usr/bin/ksh > /bin/zsh > /usr/bin/zsh В sisyphus дополнительно ещё и: > /bin/xonsh > /usr/bin/xonsh Т. е. все shell указаны как с /usr/bin, так и с /bin. --- После установки fish действительно добавляется только /usr/bin/fish. # chsh test -s /usr/bin/fish Вход через GDM под пользователем test успешный. # chsh test -s /bin/fish Пользователь исчезает из списка (может исчезнуть и сам список, т. к. пользователь один), возможен только ручной ввод имени пользователя и пароля. При ручном вводе отображается ошибка "Вход с паролем не сработал. Попробуйте ещё раз, пожалуйста.". # echo "/bin/fish" >> /etc/shells Вход становится возможным. [p11] ALT Workstation 11.0 x86_64 gdm-47.0-alt3.x86_64 pam-1.7.1-alt1.x86_64 setup-2.2.21-alt1.noarch gnome-session-47.0.1-alt1.x86_64 kernel-image-6.12-6.12.41-alt1.x86_64 [sisyphus] ALT Workstation 11.0 x86_64 gdm-48.0-alt5.x86_64 pam-1.7.1-alt1.x86_64 setup-2.2.22-alt1.noarch gnome-session-48.0-alt1.x86_64 kernel-image-6.12-6.12.42-alt1.x86_64 В sisyphus из-за https://bugzilla.altlinux.org/55655 потребовалось выполнить обход для https://bugzilla.altlinux.org/55646 (# apt-get install -y --reinstall xkeyboard-config && reboot).
Версия fish в p11 и sisyphus: fish-4.0.2-alt1.x86_64