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

Я иногда ошибочно выключил удаленный компьютер, используя 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 ? Или я должен попросить администратора о помощи?

  • Отправить команду с паролем в сценарии upstart
  • ssh master - выполнить su удаленно
  • Почему «login» и «sudo» развивают дочерний процесс, а не exec () сразу?
  • Блокировать встроенное приложение?
  • Скрипт для su-c на экран не работает как предполагалось
  • ключевое слово сервиса «сервис» не требуется
  • Директива Sudo для чтения файла журнала
  • linux + написать синтаксис в visudo
  • 3 Solutions collect form web for “Есть ли способ отключить выключение удаленной машины?”

    Переопределить 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 лет. Серьезно.

    Linux и Unix - лучшая ОС в мире.