Рейтинг:19

Как запретить доступ к выключению, но не к перезагрузке?

флаг in

У меня есть компьютер с Ubuntu, работающий как сервер plex. Как мне сделать так, чтобы никто не мог выключить компьютер, а только разрешить пользователю перезагружать машину? Я знаю, что это возможно в Windows, но мне просто интересно, возможно ли это в Ubuntu.

флаг in
Обратите внимание, что для того, чтобы никто не мог отключить систему, вам необходимо полностью ограничить физический доступ к машине. Любой, кто может физически прикоснуться к системе, может либо просто вытащить вилку из розетки, либо принудительно отключить питание, просто удерживая кнопку питания в течение нескольких секунд.
TooTea avatar
флаг cn
@AustinHemmelgarn Отключение кнопки питания от материнской платы занимает 1 минуту (вместе с настройкой компьютера на включение после отключения переменного тока). Однако сделать невозможным выдергивание вилки может быть сложнее, а также незаконно в некоторых регионах (из соображений пожарной безопасности).
флаг in
@TooTea Внутреннее отключение кнопки питания не устраняет требования к физической безопасности, даже если вы игнорируете проблему со шнуром питания. Вам все равно придется предотвратить доступ к внутренней части корпуса. И если уж на то пошло, если у вас есть физическая консоль, любой, у кого есть к ней доступ, почти наверняка может выключить систему, если только у вас не защищены паролем и загрузчик, и аварийный режим.
TooTea avatar
флаг cn
@AustinHemmelgarn Я бы предположил, что любая машина, физически доступная для ненадежных пользователей, уже имеет пароль BIOS и замок на корпусе (я также видел заклепки вместо винтов на корпусе, но это несколько усложняет обслуживание).
Bryan Krause avatar
флаг ke
@AustinHemmelgarn Скорее всего, OP в первую очередь занимается удаленным доступом; по-видимому, они имеют высокий уровень доверия к пользователям, которым они предоставляют этот уровень привилегий, но хотели бы избежать неудобств, связанных с непреднамеренным (или, возможно, безобидным розыгрышем) пользователем отключением машины, поэтому требуется, чтобы кто-то имел физический доступ к машина для решения проблемы.
флаг be
@TooTea Я бы предположил, что любой ненадежный пользователь, имеющий физический доступ к машине, знает, как обойти пароль BIOS и взломать замок.
wizzwizz4 avatar
флаг de
@chepner Я бы предположил, что любой ненадежный пользователь, имеющий физический доступ к машине, знает, как неоднократно бить ее стулом.
флаг be
@wizzwizz4 В том-то и дело. Если у них есть физический доступ, все ставки сняты.
флаг in
@BryanKrause Действительно, я согласен с контекстом, что это разумное предположение здесь, я просто чувствую себя обязанным указать на аспект физической безопасности, потому что это то, что часто либо упускается из виду, либо оценивается на основе неверных предположений со стороны менее опытные пользователи.
Рейтинг:26
флаг in

Наиболее эффективным способом сделать это было бы замаскировать цель отключения питания следующим образом:

sudo systemctl маска poweroff.target

Теперь никто не сможет выключить машину, если он не удержит кнопку питания или физически не отключит машину от источника питания.

Эта маска не влияет на перезагрузку.


Если в будущем вам потребуется выключить машину для обслуживания или замены оборудования, вы можете разоблачать цель:

sudo systemctl размаскировать poweroff.target
Peter Cordes avatar
флаг fr
Я сомневаюсь, что это повлияет на волшебные клавиши SysRq, такие как alt+sysrq+o для отключения питания (https://en.wikipedia.org/wiki/Magic_SysRq_key), поэтому, если у вас есть удаленный доступ к консоли, который выглядит для Linux как настоящий физическую клавиатуру (например, через KVM-over-IP), вы также захотите защитить более интересные из них с помощью `/etc/sysctl.d/10-magic-sysrq.conf`, если маска Ubuntu по умолчанию еще не предотвратить это (и, возможно, небезопасные перезагрузки).
флаг in
@PeterCordes • Это интересный случай, с которым я еще не сталкивался. Нужно будет немного изучить. Спасибо за совет
David Holland avatar
флаг in
Немного поздно, но я попробовал это, и это тот, который сработал.
Рейтинг:10
флаг bd

Если вам просто нужно дать возможность перезагрузки пользователям без прав администратора, вы можете добавить запись для них в свой sudoers файл для перезагрузка (и/или перезагрузка системы, в зависимости от того, что вы хотите, чтобы они запускались). Тогда они смогут бегать судо перезагрузка (и/или перезагрузка sudo systemctl). Этот ответ предполагает, что в противном случае они не имеют доступа к судо то есть, что они являются обычными пользователями без прав администратора, которые не являются частью колесо группа.

sudoers файл живет в /etc/sudoers, но ты не должна отредактируйте его напрямую. Скорее, вы должны редактировать его только с помощью зрение. Вам нужно быть root, чтобы редактировать его, поэтому вы запустите Судо Визудо. зрение Команда проверит синтаксис ваших правок, и вы всегда должны использовать ее, чтобы не нарушить конфигурацию и не допустить сам получение root-доступа в будущем.

Затем вы можете добавить что-то вроде следующих строк в свой sudoers файл:

имя пользователя ALL=(root): /usr/sbin/reboot
имя пользователя ALL=(root): /usr/bin/systemctl reboot

куда имя пользователя имя пользователя (или %имя группы для группы), а где пути — это фактические пути к командам в вашей системе (уточните у который, например, какая перезагрузка.).

Для получения дополнительной информации, проверьте человек судоерс, человек судо, и человек визуально.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.