Почему для перезагрузки и выключения требуются привилегии root? [duplicate]

Имя хоста системы не установлено с помощью файла /etc/hosts.

Имя хоста задается с помощью системы управления конфигурацией системы. Место постоянного хранения имени хоста зависит от дистрибутива. Например, на моей машине kali имя хоста хранится в файле /etc/hostname, откуда оно считывается при запуске; на моей машине gentoo оно хранится в /etc/conf.d/hostname.

63
07.01.2016, 10:38
1 ответ

Для 1st вопроса:

Какой риск безопасности возникает, если не требовать от этого процесса привилегий root? GUI предоставляет возможность любому пользователю выключить или перезагрузить систему, так почему команды терминала должны выполняться от имени root?

Да, как сказано в этом ответе, Linux по своей природе спроектирован как многопользовательская система. Если в системе работает более одного пользователя, то будет плохо, если любому нормальному пользователю будет позволено выключить систему, пока другие работают. Представьте себе, что произойдет, если ваш веб-сервер отключит пользователь, находящийся на расстоянии! Поэтому только системный администратор, он же root-пользователь, имеет право выключать или перезагружать систему.

Вы также можете понять:

$ which poweroff reboot
/sbin/poweroff
/sbin/reboot

Итак, poweroff и reboot находятся в каталоге /sbin который содержит утилиты и команды только для root, необходимые двоичные файлы для загрузки, восстановления, восстановления и/или ремонта системы.

Предполагается, что эти команды будут выполняться системным администратором/пользователем root, посетите manpage:

DESCRIPTION
       These programs allow a system administrator to reboot, halt or poweroff the system.

Также посетите связанный вопрос: Почему нам нужно быть root в терминале для выключения и перезагрузки?


На 2и вопрос:

Говоря об опциях из GUI, если терминал требует прав root для выключения или перезагрузки компьютера Linux, как GUI может представить опцию, которая делает то же самое, не требуя ввода пароля?

GUI - это вопрос удобства, и очевидно, что пользователь, вошедший в GUI, знает, что происходит и что он/она делает. Поэтому он не ожидает запроса/требования пароля от пользователя, т.е. ему разрешено быть выключенным или перезагруженным через какой-то механизм, например policy-kit. Но в случае командной строки все совершенно иначе...

Конечно, вы можете использовать эквивалентную команду, предоставляемую Desktop-Environment. Например, для gnome, вы можете использовать: gnome-session-quit с соответствующей опцией, которая не требует привилегий root.

Также посетите связанный вопрос: Как кнопка питания выключает компьютер без прав root?

5
27.01.2020, 19:32

Теги

Похожие вопросы