Отключение команды выключения для всех пользователей, даже root - последствия?

Я хотел бы отключить команду shutdown для всех пользователей, даже root, при установке Ubuntu Server.

Причина, по которой я хочу это сделать, заключается в том, чтобы я не привык к такому выключению машины, так как я SSH подключаюсь ко многим рабочим машинам одновременно с этой, и я не хочу случайно выключать одну из других машин, введя команду в неправильном окне.

Сервер, на котором я хочу отключить отключение, работает только внутри VirtualBox на моем рабочем столе Windows, и я использую его только для локального тестирования, так что это не проблема, если я не могу выключить его из командной строки.

Я уже немного смягчил проблему, убедившись, что у меня есть другой пароль для образа VirtualBox, но, очевидно, если я нахожусь в «окне» sudo на одной из рабочих машин, я все равно мог бы случайно отключить его .

Мои вопросы:

  1. Как отключить команду выключения?
  2. Если я отключу команду выключения, есть ли какие-либо последствия, о которых мне следует знать? В частности, отключит ли он поддержку отключения ACPI , что эквивалентно нажатию кнопки питания на физической машине? Может ли это повлиять на другие универсальные приложения?

Для информации я просто использую этот образ VirtualBox для тестирования сценариев оболочки, запуска Tomcat и Java и тому подобного.

11
задан 13 December 2010 в 12:08

6 ответов

Если вы обычно запускаете команду как sudo shutdown, а не sudo /sbin/shutdown, то вы можете просто настроить псевдоним глобальной оболочки для «shutdown», чтобы вместо этого просто выводить сообщение на терминал. Настоящий исполняемый файл все еще будет там для всех других целей.

0
ответ дан 13 December 2010 в 12:08

Я думаю, что должно быть другое решение. Серверы должны иметь политику ssh для отключения выключения и инициализации 0 через ssh, или должен быть специальный диалог, отображаемый на консоли, как в Windows, для ввода «почему» и специального » пароль отключения ". Для этого кнопка питания должна быть защищена паролем при использовании Сервера.

В настоящее время мы используем «физический ключ переключения = 4 евро» вместо кнопки.

0
ответ дан 13 December 2010 в 12:08

Если вы хотите отключить команду shutdown.

cp / sbin / shutdown / sbin / shutdown-backup

rm / sbin / shutdown

это потому, что если кто-то пытается принудительно захотеть использовать это команда, то также он не может

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

будет отображаться сообщение о том, что команда не найдена, установить его.

vim /etc/bash.bashrc

Добавить строку в последнюю строку bash.bashrc

alias shutdown = "echo" Вы не разрешено использовать эту команду '"

, если вы хотите ее вернуть (включено). просто скопируйте его обратно

cp / sbin / shutdown-backup / sbin / shutdown

0
ответ дан 13 December 2010 в 12:08

Чтобы отключить команду shutdown, просто сделайте двоичный файл неисполнимым, т. Е. sudo chmod a-x /sbin/shutdown. Также я не думаю, что он повлияет на любой другой метод shutdown, потому что, как пишет man для shutdown, говорит

shutdown отправляет запрос в демон init, чтобы вывести систему на соответствующий уровень выполнения

, чтобы любая другая команда / скрипт могла сделать это даже после отключения команды выключения, например, я все еще могу выключить свою систему с помощью выключения из меню GNOME , Также вы все равно можете перезагрузить компьютер из командной строки, используя команду перезагрузки

0
ответ дан 13 December 2010 в 12:08

Гораздо лучший подход к решению этой проблемы - установить программу molly-guard на коробки, которые вы не хотите отключить, вместо того, чтобы пытаться приучить себя никогда не останавливаться.

molly-guard пытается предотвратить случайное выключение или перезагрузку машины. Это делается путем введения нескольких проверок перед существующими командами: остановка, перезагрузка, выключение и отключение питания.

Типичная конфигурация состоит в том, что вам нужно ввести имя хоста машины, чтобы подтвердить, что вы действительно правы.

Можно добавить новые сценарии в /etc/molly-guard/run.d (как описано на man-странице , файлы сценариев должны следовать именованию, ожидаемому run-parts .

). Если вы действительно хотите отключить shutdown (и это такая странная идея), просто выполните

chmod 0 /sbin/shutdown

, а затем, если вам нужно его использовать, верните его обратно в 0755.

0
ответ дан 13 December 2010 в 12:08

Команда shutdown находится в /sbin/shutdown. Вы можете отключить его, выполнив следующее:

sudo mv /sbin/shutdown /sbin/really-do-shutdown

Но : это означает, что почти ни один из обычных методов выключения системы больше не будет работать. Выключение gnome на моей тестовой машине для этого ответа заставляет его просто выйти из системы и вернуть вас в GDM.

Если вы хотите завершить свою систему впоследствии, вы должны сделать

sudo init 0

«Отключение» выключения повлияет на каждое приложение, которое использует команду для чего-либо. Поскольку init 0 не является рекомендуемым способом выключения системы, все программы, которым необходимо завершить работу системы, используют shutdown для нее, что больше не будет работать.

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

    sudo cp /bin/ps /sbin/shutdown
    

    Это после вы благополучно удалили оригинал.

Теперь все это довольно забавно, , и я рекомендую против этого по причинам, изложенным в комментарии Жоау Пинту. Но я не остановлю тебя от этого. : -)

Не только сделайте резервную копию / sbin / shutdown, но и разработайте план восстановления на случай, если это вызовет какие-либо проблемы. Не делайте этого на сервере, к которому вы, например, не можете добраться. И заранее протестируйте свой план восстановления, предполагая, что система вообще не загружается (она будет загружаться, конечно, - я проверял это - но , пожалуйста, на всякий случай).

0
ответ дан 13 December 2010 в 12:08

Другие вопросы по тегам:

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