Bug 23643

Summary: Не работает /sbin/nologin
Product: Sisyphus Reporter: Кузьмин Антон <kuzya>
Component: gdmAssignee: Dmitry V. Levin <ldv>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: critical    
Priority: P3 CC: aen, aris, cas, erthad, gns, kharpost, ldv, php-coder, rider, shaba
Version: unstableKeywords: security
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 23155, 23644    

Description Кузьмин Антон 2010-06-21 13:07:48 MSD
Здравствуйте. У меня на компьютере есть 5 учётных записей для локальных пользователей. Недавно мне понадобилось заблокировать 2 из них. Я зашёл в Центр Управления Системой, и у нужных аккаунтов установил интерпритатор команд как /sbin/nologin. Выйдя из своей учётной записи я увидел что они пропали из списка выбора пользователей. Но после перезагрузки они вновь там появились, и под ними можно заходить в систему. Я зашёл в Центр, и проверил стоит ли у них /sbin/nologin. Всё стояло правильно. Чтоб снова из заблокировать мне пришлось выбрать в качестве интерпритатора /bin/bash, а затем снова /sbin/nologin. Тогда они исчезли. Но опять до следующей перезагрузки :(
Comment 1 Andrey Cherepanov 2010-06-21 13:52:00 MSD
Смотрите, устанавливается ли интерпретатор в /etc/passwd.
Comment 2 Кузьмин Антон 2010-06-21 14:10:33 MSD
Да. Вот пример строки одного проблемного аккаунта
    nastya:x:502:502::/home/nastya:/sbin/nologin
При этом я спокойно переключаю пользователя и захожу под этим этим логином.

Забыл сказать, в ЦУПе галочки "Входит в группу администраторов" у этих аккаунтов не стоит
Comment 3 Andrey Cherepanov 2010-06-21 14:45:37 MSD
Имеем большую дырку в безопасности в KDM и GDM, когда пускает пользователей в графическую среду (правда, не даёт возможность воспользоваться эмулятором терминала). Спасибо за найденную уязвимость.

Из всех DM не подвержен этому поведению XDM.
Comment 4 Anton Farygin 2010-06-21 14:56:10 MSD
man usermod:
       -L     Lock  a  user's  password.  This  puts  a  '!'  in  front of the
              encrypted password, effectively  disabling  the  password.   You
              can't use this option with -p or -U.
Comment 5 Nick S. Grechukh 2010-06-21 14:57:46 MSD
(In reply to comment #3)
> Имеем большую дырку в безопасности в KDM и GDM, когда пускает пользователей в
> графическую среду (правда, не даёт возможность воспользоваться эмулятором
> терминала). Спасибо за найденную уязвимость.
> 
> Из всех DM не подвержен этому поведению XDM.

DESCRIPTION
       pam_shells is a PAM module that only allows access to the system if the users shell is listed in /etc/shells.

       It also checks if /etc/shells is a plain file and not world writable.

[altlinux@eeelive ~]$ sudo grep -i shell /etc/pam.d/*
/etc/pam.d/vsftpd:auth		required	pam_shells.so

[altlinux@eeelive ~]$ cat /etc/shells 
/bin/sh
/bin/bash
/bin/ash
/bin/bsh
/bin/csh
/bin/tcsh
/bin/ksh
/bin/zsh
Comment 6 Andrey Cherepanov 2010-06-21 15:49:24 MSD
(В ответ на комментарий №5)
> /etc/pam.d/vsftpd:auth        required    pam_shells.so
Да, именно строку 

auth  required   pam_shells.so

нужно добавить в /etc/pam.d/gdm.
Comment 7 Dmitry V. Levin 2010-06-21 15:52:27 MSD
I'll take care of this.
Comment 8 Repository Robot 2010-06-22 23:53:04 MSD
gdm-2.30.2-alt1 -> sisyphus:

* Tue Jun 22 2010 Alexey Shabalin <shaba@altlinux> 2.30.2-alt1
- 2.30.2
- ldv@: /etc/pam.d/gdm: Added pam_shells to auth stack (closes: #23643).