LINUX.ORG.RU

Защита от случайного выключения удаленного сервера

 ,


0

2

Когда долго работаешь по ssh с удаленным сервером, можешь случайно, так сказать по инерции вырубить его, как привык делать с домашней машиной. И даже пароль вводится уже по инерции. В лучшем случае придётся бежать в серверную, в худшем ехать в другой город и так далее. Появилась такая идея: требовать подтверждения на исполнение определенных команд, например при помощи такого скрипта:

#!/bin/sh

# Количество символов подтверждения
mnpus_sym=8

# Количество попыток
mnpus_cnt=3

[ "$1" ] || { echo "Use: basename $0 <command>" ; exit ; }

while [ ! "$mnpus_cnt" -eq "0" ]  ; do
   mnpus_str="`head /dev/urandom | tr -dc 'a-zA-Z0123456789' | \
   cut -c 1-${mnpus_sym}`"
   printf "Confirm the command, enter this code: \033[36;1m${mnpus_str}\033[0m > "
   read mnpus_inp

   if [ "${mnpus_str}" = "${mnpus_inp}" ] ; then
      exec ${@}
   else
      echo "Enter the wrong code."
   fi

   mnpus_cnt=`expr ${mnpus_cnt} - 1`
done

Используется ли где-нибудь такое уже? И как вам идея?

★★★★

такие забывчивые надолго в индустрии не задерживаются

zolden ★★★★★ ()

проще:

chmod -x $(which shutdown)

PS: проблема надуманная

beastie ★★★★★ ()

Запахло оффтопиком. «Вы уверены, что хотите сохранить этот файл?» «Вы точно уверены?»

alexnorton ()
Ответ на: комментарий от beastie

chmod -x $(which shutdown)

No way. Некоторым скриптам, например, нужно перезагружать машину. А так в .cshrc прописал три alias'а и всё.

PS: проблема надуманная

К сожалению нет :(

IPR ★★★★ ()

Я в велосипедостроении ничего плохого не вижу (иногда это даже очень полезно), но это эталонное ненужно.

olibjerd ★★★★★ ()
Ответ на: комментарий от alexnorton

Запахло оффтопиком. «Вы уверены, что хотите сохранить этот файл?» «Вы точно уверены?»

Что за бред? Какая разница, если не придётся ехать за тридевять земель включать машину? :)

IPR ★★★★ ()

Ладно, судя по всему идея и впрямь дурацкая, для себя оставлю.

IPR ★★★★ ()

У меня проще.
При подключении по ссх цветом выделено и дописанно что это ссх

┌[lord] [dubhe] [ssh]:~ 
└>
Ну или в цвете.

Spirit_of_Stallman ★★★ ()
Ответ на: комментарий от IPR

Некоторым скриптам, например, нужно перезагружать машину.

o_O No way.

К сожалению нет :(

Отучиться выключать компьютеры. ☺ Я их например никогда не выключаю. Ни локальные, ни удалённые.

Ну и первое правило админа: сесть попой на свои ручьки и подумать, прежде чем тыцнуть энтер. ©

beastie ★★★★★ ()

Зачем ты выключаешь домашний компьютер командой?

sin_a ★★★★★ ()
Ответ на: комментарий от IPR

ехать за тридевять земель включать машину

Телефон / техподдержка / KVM.

beastie ★★★★★ ()
Ответ на: комментарий от beastie

Телефон / техподдержка / KVM.

Да там старые деды например, со своей нефтяной телеметрией. Ничего другого не умеют. А добраться можно только на вертолёте летом :(

IPR ★★★★ ()
Ответ на: комментарий от sin_a

Зачем ты выключаешь домашний компьютер командой?

Я вообще его не выключаю. Просто пару раз на автомате было.

IPR ★★★★ ()
Ответ на: комментарий от IPR

либо следи за набераемыми командами либо недолго тебе работать. Ты rm -rf по инерции не запускаешь от рута ?

blokant ★★ ()

по ssh с удаленным сервером
пароль вводится уже по инерции
пароль

Но зачем?

как привык делать с домашней машиной

Выключаю только в экстренных обстоятельствах. Деревья всё равно сожгут, так чего мне экономить-то?

Deleted ()
Ответ на: комментарий от beastie

Ороро, интересно к чему приведёт снятие флага исполнимости со /sbin/init.

Deleted ()

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

все гораздо проще - отвыкай выключать домашнюю машину.

MKuznetsov ★★★★★ ()

Отвыкай вырубать домашнюю машину.

kernelpanic ★★★★★ ()
Ответ на: комментарий от MKuznetsov

все гораздо проще - отвыкай выключать домашнюю машину.

Она шумит однако.

AS ★★★★★ ()
Ответ на: комментарий от IPR

Некоторым скриптам, например, нужно перезагружать машину.

echo b > /proc/sysrq-trigger

:D

YAR ★★★★★ ()
Ответ на: комментарий от AS

Ну так сделай её не шуметь. Ты мужик или вендузятник?

anonymous ()
Ответ на: комментарий от anonymous

Ну так сделай её не шуметь.

У меня есть, куда денег деть. :-)
Дешевле выключить.

AS ★★★★★ ()
Ответ на: комментарий от AS

У меня есть, куда денег деть. :-)
Дешевле выключить.

дешевле подумать и настроить гибернейт по простою. Но видимо «есть куда думать деть» :)

MKuznetsov ★★★★★ ()
Последнее исправление: MKuznetsov (всего исправлений: 1)
Ответ на: комментарий от Deleted

интересно к чему приведёт снятие флага исполнимости со /sbin/init

Вопрос интерессный. Касательно BSD всё просто: init запускается через sys_execve и соответственно не запустится. В таком случае будет попытка запустить альтернативные версии /sbin/oinit и /sbin/init.bak. В противном случае останов.

beastie ★★★★★ ()
Ответ на: комментарий от MKuznetsov

дешевле подумать и настроить гибернейт по простою.

Во-первых, гибирнейт ничем не отличается от «выключить» с практической точки зрения на десктопе, во-вторых, для этого надо поставить систему поновее. А, для этого... Короче, не надо парить мне мозг. :)

AS ★★★★★ ()
Ответ на: комментарий от IPR

No way. Некоторым скриптам, например, нужно перезагружать машину. А так в .cshrc прописал три alias'а и всё.

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

ktk ★★★★ ()

Хорошая идея, только скоро начнешь автоматом копипастить код подтверждения. Предлагаю использовать капчу, в консоли естественно ascii-art капчу.

sdio ★★★★★ ()

alias shutdown='shutdown +5'

Если что, успешь отменить. Скрипты будут работать дальше.

ifhbr0 ()

Когда долго работаешь по ssh с удаленным сервером, можешь случайно, так сказать по инерции вырубить его, как привык делать с домашней машиной. И даже пароль вводится уже по инерции.

Что, и пароли одинаковые? Вот это уже ламерство

router ★★★★★ ()
Ответ на: комментарий от kompas

Удобно. Как повторить?

В bashrc, до объявления PS1, добавить строки:

BLUE='\e[1;34m'
RED='\e[1;31m'
GREEN='\e[0;32m'
NC='\e[0m' # No Color
[ -n "$SSH_CLIENT" ] && ps1_informer=" ${BLUE}[ssh]${NC}"
И в сам PS1 добавляем эту переменную (т.е. если она пустая, ничего не ломает)
+тут еще если рут, выделяет красным, если что не трудно убрать:
if [ $(id -u) -eq 0 ];
then # you are root, set red colour prompt
  PS1="┌${RED}[\u]${NC} [\h]$ps1_informer:\[\e[0;32;49m\]\w\[\e[0m \n└>"
else # normal
  PS1="┌[${GREEN}\u${NC}] [\h]$ps1_informer:\[\e[0;32;49m\]\w\[\e[0m \n└>"
fi

Spirit_of_Stallman ★★★ ()

molly-guard
kexec-tools тоже можешь глянуть, если действительно нужно перезагружать

anonymous_sama ★★★★★ ()
Последнее исправление: anonymous_sama (всего исправлений: 2)
Ответ на: комментарий от router

Что, и пароли одинаковые? Вот это уже ламерство

Не моя печаль была. Требование начальства.

IPR ★★★★ ()
Ответ на: комментарий от sdio

Предлагаю использовать капчу, в консоли естественно ascii-art капчу.

Можно строку пропускать через figlet :)

IPR ★★★★ ()

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

А нехрен иметь одинаковые рутовые пароли на сервере и на домашней машине

Pinkbyte ★★★★★ ()
Ответ на: комментарий от IPR

Не моя печаль была. Требование начальства.

Смени пароль на домашней машине - делов-то

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

А нехрен иметь одинаковые рутовые пароли на сервере и на домашней машине

Не надо. Но вот я например, после нескольких часов работы любой пароль ввожу по инерции (поручики, молчать!).

IPR ★★★★ ()
Ответ на: комментарий от Pinkbyte

Смени пароль на домашней машине - делов-то

Читай моё предыдущее сообщение.

IPR ★★★★ ()
Ответ на: комментарий от sin_a

Зачем ты выключаешь домашний компьютер командой?

У меня на ноуте awesome, кнопок для выключения не делал :)

tazhate ★★★★★ ()
Ответ на: комментарий от tazhate

А зачем у тебя на ноутбуке кнопка питания?

И, о боже мой, зачем ты выключаешь ноутбук? Ну открой мне секрет. У тебя не закрывается крышка?

sin_a ★★★★★ ()
Последнее исправление: sin_a (всего исправлений: 1)
Ответ на: комментарий от sin_a

А зачем у тебя на ноутбуке кнопка питания?

Не знаю О_О Зачем?

И, о боже мой, зачем ты выключаешь ноутбук?

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

tazhate ★★★★★ ()
Ответ на: комментарий от tazhate

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

И, да, ну на неделю можешь выключить. Хотя в спящем режиме оно потребляет не так много как кажется.

sin_a ★★★★★ ()
Ответ на: комментарий от sin_a

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

Дистрибутивах, а не ноутбуках. У меня такого диалога нет и не будет.

И, да, ну на неделю можешь выключить. Хотя в спящем режиме оно потребляет не так много как кажется.

О, спасибо что разрешил %)

tazhate ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.