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

10

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

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

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

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

Мои вопросы:

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

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

    
задан Rich 13.12.2010 в 09:08
источник

6 ответов

2

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

    
ответ дан Dave Jennings 13.12.2010 в 13:29
источник
12

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

  

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

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

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

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

chmod 0 /sbin/shutdown

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

    
ответ дан poolie 14.12.2010 в 00:01
1

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

  

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

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

    
ответ дан binW 13.12.2010 в 09:29
1

Команда 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, также имеет план восстановления на месте, если он вызывает какие-либо проблемы. Не делайте этого на сервере, к которому вы не можете попасть, например. И предварительно проверьте план восстановления, предполагая, что система вообще не загружается (она будет загружаться, конечно, - я ее протестировал, но пожалуйста, будет в безопасности).     

ответ дан Stefano Palazzo 13.12.2010 в 09:36
0

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

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

    
ответ дан user12646 19.03.2011 в 06:19
0

Я хочу отключить команду shutdown .

  

cp / sbin / shutdown / sbin / shutdown-backup

     

rm / sbin / shutdown

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

теперь никто не сможет использовать команду shutdown.

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

  

vim /etc/bash.bashrc

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

  

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

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

  

cp / sbin / shutdown-backup / sbin / shutdown

    
ответ дан Dishank Jindal 28.07.2014 в 07:55