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

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

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

  • Как использовать SCSUDO для запуска скриптов с позиционными параметрами?
  • Как мы можем разрешить пользователям без полномочий root управлять сервисом system.d?
  • Могу ли я сказать, чтобы найти, чтобы не восстановить исходный рабочий каталог?
  • Окружающая среда USER и USERNAME в CentOS 7
  • Зачем мне tty запускать sudo, если я могу sudo без пароля?
  • Невозможно отредактировать / proc / sys / net / core / wmem_max
  • запустить команду с sudo su в скрипте и перенаправить stdin и stdout
  • Обновление кучи компьютеров Mac через SSH. Может помочь
  • поиск и замена текста
  • Мне нужно подключиться к пользователю IPA и запустить программу как root без паролей
  • Предоставляет ли команда unattended-upgrade безопасным пользователям, не использующим sudo?
  • Linux и Unix - лучшая ОС в мире.