Обычно ОС запускает при запуске службу, которая запускается от имени пользователя root, и предлагает настольным средам некоторые возможности относительно компьютера. Обычно это либо ConsoleKit, либо systemd-logind.
Например, в KDE вы можете выключить компьютер из командной строки как обычный пользователь с помощью чего-то вроде:
qdbus org.kde.ksmserver /KSMServer logout 0 0 0
Это возможно, потому что менеджер сеансов KDE свяжется со службой DBus, которая работает от имени пользователя root, и при вызове запустит shutdown
команду с привилегиями root.
В системах с ConsoleKit вы можете использовать:
gdbus call -y -d org.freedesktop.ConsoleKit \ -o /org/freedesktop/ConsoleKit/Manager \ -m org.freedesktop.ConsoleKit.Manager.Stop
В системах, использующих systemd-logind, shutdown
утилита уже использует DBus и не требует привилегий.
Подводя итог, вы можете выключить компьютер как обычный пользователь, потому что в среде рабочего стола запущена служба, которая предлагает возможность запуска команды shutdown [1] от имени пользователя root.
[1] На самом деле служба выполняет другие функции, чтобы обеспечить правильное завершение рабочего стола.