3

В Linux есть команды (poweroff , reboot и т.д.), Которые могут выполняться без привилегий root в обычном сеансе, но требуются привилегии root, если они выполняются в сеансе SSH. Я хотел бы знать две вещи:

  1. Какова цель этого (почему)?

  2. Как это на самом деле реализовано (как)?

1 ответ1

4

Прежде всего, обратите внимание, что это не универсальное поведение. Не все системы Linux сконфигурированы таким образом, и на самом деле я не могу назвать ни одного дистрибутива, который по-умолчанию конфигурирует эти вещи без каких-либо серьезных исследований. В большинстве случаев любая система Linux либо потребует привилегии суперпользователя независимо (это то, что делают большинство систем), либо позволит кому-то в определенной группе сделать это, либо просто позволит всем это сделать (хотя это редко, так как довольно существенная дыра в безопасности, допускающая тривиальную DoS-атаку, если сетевой сервис скомпрометирован)

Зачем?

Почему это довольно просто, очень легко случайно отключить систему удаленно, когда кто-то пытается ее использовать. Требуя либо физического присутствия на консоли (то, что вы называете обычным сеансом), либо подтверждения полномочий над системой (путем аутентификации через sudo для получения привилегий root), система усложняет возникновение такой ситуации. , Подразумевается, что, присутствуя физически в системе или предоставляя учетные данные root, вы обладаете достаточными полномочиями, чтобы не имело значения, использует ли система кто-то другой.

Как?

На этот вопрос несколько сложнее ответить, не зная больше о рассматриваемой системе, но на ум приходит несколько методов:

  1. Вы можете сделать довольно аккуратный трюк с возможностями файловой системы, чтобы учесть это, но вы должны повторять это каждый раз, когда команды обновляются.
  2. В случае systemd shutdown , reboot и отключение poweroff предоставляются systemd и в конечном итоге эквивалентны различным подкомандам systemctl . Из-за этого и отслеживания сеанса, выполняемого logind , должна быть возможность довольно легко наложить подобные ограничения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .