Intereting Posts
Регистрация выходных команд на нескольких серверах ssh Хранение git приводит к переменной приводит к странному поведению awk + gsub + как работать со всеми типами символов File Globbing: добавление * * & * * вместе Монтаж по блочному адресу Создание дерева символических ссылок в существующих каталогах Определить, какая программа заблокирована брандмауэром Как исправить загрузку в приглашение initramfs и «mount: не могу прочитать» / etc / fstab: Нет такого файла или каталога »и« Нет init found »? mount.nfs: доступ запрещен сервером при установке на машинах Ubuntu? Как получить имя ближайшей интерактивной оболочки предка из сценария? Невозможно скопировать / переместить между файловыми системами с помощью SFTP Как установить предыдущую версию пакета .deb и вывести его? Как / почему пакеты Firefox могут работать на всех Linux? Создание виртуального хоста с nginx Запустить новую группу процессов в .xinitrc

Есть ли способ отключить выключение удаленной машины?

Я иногда ошибочно выключил удаленный компьютер, используя sudo init 0 , поэтому я написал что-то вроде одного из моих rc-файлов:

 alias sudo='sudo ' if [ $SSH_CLIENT ]; then alias init 'echo Never use init when ssh' fi 

Однако, хотя файлы rc выполняются, init все еще запускает /sbin/init а не псевдоним. И я не люблю добавлять глобальный сценарий оболочки в /usr/local/bin . Можно ли отключить sudo init 0 ? Или я должен попросить администратора о помощи?

Переопределить sudo как функцию:

 sudo() if [ "$1" = init ] && [ -n "$SSH_CLIENT" ]; then echo >&2 "Never use init when ssh" return 1 else command sudo "$@" fi 

Если вы хотите, чтобы ваши псевдонимы расширялись после sudo , вы все равно можете добавить

 alias sudo='sudo ' 

он все равно вызовет нашу функцию sudo .

Для debian и производных есть часть программного обеспечения под названием molly-guard которая делает именно то, что вы хотите – она ​​перехватывает команду выключения, если она обнаруживает удаленный вход в систему и просит вас подтвердить, что вы уверены, что закрываете правильную систему путем ввода имени системы.

Из вашего описания проблемы я понимаю, что вы не используете sudo очень часто при регистрации в SSH. Вы должны просто сказать это самому себе:

 if [ -n "$SSH_CLIENT" ]; then alias sudo='echo "Reconsider your wish, you must! "' fi 

Это приведет к тому, что каждый вызов sudo приведет к предупреждению. Если вы все еще хотите sudo init 0 вам нужно будет ввести \sudo init 0 . \ Заставит оболочку использовать настоящую команду, а не ваш псевдоним.

Тем не менее, мой фактический совет для вас – прекратить использование sudo в течение следующих 5 лет. Серьезно.