Bug 9141

Summary: не работает reboot и рядом из консоли при работе по ssh
Product: Sisyphus Reporter: stalker <stalker>
Component: SysVinit-usermodeAssignee: Nobody's working on this, feel free to take it <nobody>
Status: REOPENED --- QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P2 CC: 0oh2wiep, inger, rider, ruslandh
Version: unstable   
Hardware: all   
OS: Linux   

Description stalker 2006-02-23 15:15:22 MSK
При логоне по ssh не получается перезагрузить\выключить машинку от простого
пользователя:
[stalker@vm stalker]$ reboot
consolehelper: Project-Id-Version: PACKAGE VERSION
POT-Creation-Date: 2002-03-18 16:08+0300
PO-Revision-Date: 2002-03-18 16:08+0300
Last-Translator: Dmitry V. Levin <ldv@altlinux.org>
Language-Team: <devel@altlinux.ru>
MIME-Version: 1.0
Content-Type: text/plain; charset=koi8-r
Content-Transfer-Encoding: 8bit

consolehelper-0.2.9.1-alt1
Steps to Reproduce:
1. Залогониться по ssh
2. сказать reboot
3. посмотреть на результаты
Comment 1 Dmitry V. Levin 2006-02-24 03:13:06 MSK
У меня другой результат получается:

$ reboot       
consolehelper: Аутентификация завершилась неудачно
Comment 2 stalker 2006-02-24 12:32:24 MSK
(In reply to comment #1)
> У меня другой результат получается:
> 
> $ reboot       
> consolehelper: Аутентификация завершилась неудачно
> 

Может дело вт ом что у меня pam более старый? так как сизиф от 27.11.2005
Comment 3 ruslandh 2015-02-15 12:34:42 MSK
Нельзя использовать функции из пакета SysVinit-usermode, до тех пор, пока тот-же пользователь не войдёт локально: 

Как-только я локально вошёл тем-же пользователем локально, я смог перезагрузить комп по сети. Вход локально другим пользователем не помогает.

http://forum.altlinux.org/index.php/topic,31564.msg246990.html
Comment 4 ruslandh 2015-02-15 12:36:37 MSK
То-же поведение и на дистрибутивах p7.
Comment 5 Anton Farygin 2015-02-15 13:30:25 MSK
Как воспроизвести ?

У меня всё работает - стоят виртуалки с SysVInit и нормально перезагружаются.
Как вы заходите удалённо на пользователя и рута ?

#rpm -q consolehelper 
consolehelper-0.3.1-alt1
Comment 6 ruslandh 2015-02-15 13:32:39 MSK
По ssh захожу. От пользователя.
Comment 7 Anton Farygin 2015-02-15 13:33:27 MSK
команда reboot даётся от пользователя или от рута?
Comment 8 ruslandh 2015-02-15 13:35:08 MSK
По ssh захожу. От пользователя.
Comment 9 ruslandh 2015-02-15 13:35:33 MSK
команда reboot даётся от пользователя
Comment 10 ruslandh 2015-02-15 13:35:53 MSK
команда reboot даётся от пользователя
Comment 11 ruslandh 2015-02-15 13:36:44 MSK
Антон, я там на форуме всё подробно описал.
Comment 12 Anton Farygin 2015-02-15 13:45:58 MSK
после установки SysVinit-usermode-1.5-alt2 проблема воспроизводится на текущем Sisyphus. Всё как описано - если зайти по ssh, то ошибка:

$ reboot 
consolehelper: Неизвестная ошибка.

# control consolehelper
public

Если при этом ещё зайти и локально - то reboot проходит без проблем.
Comment 13 ruslandh 2015-02-15 13:52:15 MSK
Да, если локально войти, то проблем нет.
А вот если локально пользователь не вошёл, то перезагрузка не работает.
Я сейчас проверил на нескольких дистрибутивах. Закрываешь все "сеансы" работы локально, а потом входишь на такой комп по ssh - при команде reboot, poweroff и т.п. выскакивает сообщение 
"consolelper неизвестная ошибка"
или, как вариант:
consolehelper: Аутентификация завершилась неудачно
Comment 14 ruslandh 2015-02-15 13:54:58 MSK
Потом входишь на такой комп по ssh - от обычного пользователя.
Помогает даже такой костыль:

Цитата с форума:

"для временного решения проблемы.
1. Установите пакет agetty.
2. Пропишите в /etc/inittab такую, например, строчку:
Код: [Выделить]
user:2345:respawn:/sbin/agetty -a user tty11"
Comment 15 Dmitry V. Levin 2015-02-15 14:30:51 MSK
(In reply to comment #12)
> после установки SysVinit-usermode-1.5-alt2 проблема воспроизводится на текущем
> Sisyphus. Всё как описано - если зайти по ssh, то ошибка:
> 
> $ reboot 
> consolehelper: Неизвестная ошибка.
> 
> # control consolehelper
> public
> 
> Если при этом ещё зайти и локально - то reboot проходит без проблем.

Так было всегда (только код ошибки был другим) - это же главная фича пакета, чтобы reboot от пользователя только с консоли работал.
Comment 16 ruslandh 2015-02-15 14:38:24 MSK
Понятно, и никакой возможности отключить эту фичу нет?
Comment 17 ruslandh 2015-02-15 14:45:38 MSK
Или сделать, как в systemctl reboot - запрос пароля пользователя при выполнения этой команды?

PS Скорее более важно, что-бы другому пользователю, работающему на этой машине не помешать, а если он один, то зачем ему запрещать выключение/перезагрузку?
Тем более, что установлен пакет SysVinit-usermode
Comment 18 Dmitry V. Levin 2015-02-15 14:55:42 MSK
(In reply to comment #16)
> Понятно, и никакой возможности отключить эту фичу нет?

Есть, конечно, почему нет?

Если заменить в /etc/pam.d/reboot
auth     required       pam_deny.so
на
auth     required       pam_permit.so
то reboot будут давать всем подряд.

(In reply to comment #17)
> Или сделать, как в systemctl reboot - запрос пароля пользователя при 
> выполнения этой команды?

Попробуйте заменить в /etc/pam.d/reboot
auth     required       pam_deny.so
на
auth     include        system-auth
Comment 19 ruslandh 2015-02-15 15:18:12 MSK
Первый вариант работает, а второй требует пароль root:
$ reboot
Чтобы выполнить "reboot",
необходима дополнительная информация.
Введите пароль системного администратора root:  

А пароль нельзя, что-бы пароль пользователя требовал?
Comment 20 ruslandh 2015-02-15 15:37:12 MSK
По такому случаю, я ставлю баге enhancement, т-к хотелось-бы видеть вариант, когда для перезагрузки требовался-бы пароль пользовател, ну и какой-нибудь control не помешал-бы для выбора поведения reboot/poweroff по-сети
Comment 21 Dmitry V. Levin 2015-02-15 15:54:23 MSK
(In reply to comment #19)
> Первый вариант работает, а второй требует пароль root:
> $ reboot
> Чтобы выполнить "reboot",
> необходима дополнительная информация.
> Введите пароль системного администратора root:  
> 
> А пароль нельзя, что-бы пароль пользователя требовал?

Можно. Насколько я помню, для этого достаточно убрать или закомментировать строчку USER=root в файле /etc/security/console.apps/reboot.
Comment 22 ruslandh 2015-02-15 16:14:50 MSK
Спасибо, всё правильно помните, всё так и есть.