Ubuntu - это дистрибутив операционной системы GNU / Linux, которая, в свою очередь, принадлежит к семейству систем Unix - общей архитектуры для ряда современных операционных систем.
Традиционно Unix используется для работы на мэйнфреймах. Центральные вычислительные средства, которые обслуживают десятки или сотни пользователей через удаленные терминалы. Поскольку все пользователи полагались на доступность мэйнфрейма, ни одному из пользователей не разрешалось выдавать команду отключения. Идея, которая является фундаментальной для архитектуры Unix - ядро системы никогда не инициализирует выключение, если соответствующая функция не вызывается процессом суперпользователя.
В современных настольных системах разработчики приложили определенные усилия, чтобы сделать отключение доступным для простого пользователя настольного компьютера. Обычный метод - позволить менеджеру входа в систему, который обычно работает в контексте безопасности пользователя root, обрабатывать завершение работы и перезагрузку. В этом случае графическая оболочка выдает диспетчеру входа запрос на выключение компьютера. Это предполагает использование межпроцессного взаимодействия (IPC), как правило, через службу dbus.
Упомянутый выше набор политик расширяет этот процесс, предоставляя стандартизированную структуру, посредством которой менеджер входа в систему (или любая другая программа, предоставляющая службу выключения) может проверять, каким пользователям разрешено вызывать завершение работы, и через которого администратор может настраивать эти разрешения соответственно.
В некоторых средах рабочего стола не используются службы на основе IPC, а скорее набор вспомогательных программ для обеспечения тех же или аналогичных функций. Эти вспомогательные программы будут вызываться через механизмы, позволяющие переходить в контекст суперпользователя, например, sudo, suid или механизм набора политик, подобный sudo.
В любом случае, глупая традиционная программа выключения на оболочке не работает таким образом, она требует, чтобы вы видели, что она запускается в контексте суперпользователя.
sudo shutdown -h now
но проблема заключалась в том, что без разрешения доступаshutdown
она никогда не работает. Потому что, где и как она попросит ввести пароль после нажатия сочетания клавиш .. Надеюсь, вы понимаете мою ситуацию .. :)