Сегодня я по ошибке остановил производственную машину, потому что думал, что я на своей локальной машине. Я знаю, начинающая ошибка :-(
Чтобы решение не повторилось, я подумал об удалении разрешения на выполнение для команды выключения, поскольку эта машина должна быть всегда включена.
Это хорошая идея? Можете ли вы увидеть какой-либо нежелательный побочный эффект при этом?
Ура, Дэн
Ответы:
Еще один подход к предупреждению о том, что вы работаете на серийном компьютере, - это пометить терминал. Например,
user@machine:~#
текст может быть красным на производственных машинах, зеленым на стадии разработки и т. Д. Вот хороший учебник, как это сделать: Color Bash Promptисточник
Лучший совет, который я могу вам дать, - не входите в систему как root, если вам не нужен root-доступ, и убедитесь, что у вас есть разные пароли root / sudo на каждой машине.
Сделать отключение недоступным - это один из вариантов, но он не очень хороший. Либо псевдоним
shutdown
дляshutdown -a
иtouch /etc/shutdown.allow
илиchmod a-x /sbin/shutdown
Кроме того, где это заканчивается? Собираетесь ли вы также запретить остановку, перезагрузку и инициализацию?
источник
-a
. Кроме того, полагаться на такой псевдоним - то же самое, что полагаться на негоalias rm='rm -i'
- когда-нибудь его не будет, когда он действительно понадобится. Кроме того,shutdown -a
имеет лишь ограниченную полезность в любом случае.Некоторые моменты для рассмотрения:
источник
Я не думаю, что путаница с разрешениями
shutdown
- это способ справиться с ситуацией. В основном вы только что выучили урок. Выше голову.Я делал то же самое - получал длинные цепочки сессий SSH, а затем связывался с маршрутами на одной из машин, через которые я проходил SSH, отсекая себя. Я испортил запрос на rsync, что привело к систематическому уничтожению системы на другом конце света. Я работал
rm -rf / path
на производственном сервере. (Тогда я узнал, как работали реставрации.)Итак, намного старше и, надеюсь, немного мудрее, теперь у меня есть строгие правила, которые я навязываю себе.
Характер моей работы требует, чтобы я проводил много времени с множеством разных корневых запросов, но благодаря моим прошлым ошибкам я гораздо лучше осведомлен о ситуации, чем когда я начинал.
источник
Если вы используете Ubuntu, попробуйте Molly-guard. Как обсуждено в этом подобном вопросе .
источник
Зависит, действительно. Вы можете попробовать просто обернуть команду, но это означает, что если вы делаете обновления или обновления, которые затрагивают этот исполняемый файл, вы можете забыть об этом и заставить его испортить обновление. Игра с командами выключения системы может быть PITA, особенно если у вас есть новые сотрудники или замена, которая заканчивается тем, что вы не знаете, что вы играете с системными двоичными файлами.
Лично я бы посмотрел на обертывание команды в сценарии, который идентифицирует систему по имени и заставляет вас подтвердить, что вы действительно хотите это сделать перед запуском действительного двоичного файла, или что вам нужно набрать определенную последовательность букв, чтобы подтвердить завершение работы прежде чем он запускает двоичный файл. Это должно дать некоторую паузу.
источник
Возможно, вы захотите установить в командной строке имя компьютера, по крайней мере, на серверах. Это может помочь предотвратить запуск других команд на неправильном компьютере в будущем. Это более эффективно, если имена компьютеров окрашены, чтобы они выделялись, и вы могли даже раскрасить код, чтобы определить роли сервера.
источник
Одним из способов является не использовать
su
и / или войти в систему напрямуюroot
. Лучше войти непосредственно в учетную запись И иметь другой пароль дляroot
локальной машины и ключ ssh.Конечно, это в дополнение к наблюдению за красной подсказкой «#».
источник
Да, удаление бита выполнения в команде shutdown является самым простым и безопасным способом предотвращения случайного выключения, особенно если на компьютере установлена среда рабочего стола, такая как KDE, и вы хотите предотвратить случайное завершение работы при выходе из системы.
Что касается путаницы новых людей, я думаю, что первое, что они сделают, это
ls -l /sbin/shutdown
выяснят, почему это не работает (особенно, если у них есть хорошая привычка дополнять табуляцию именами исполняемых файлов). Очевидно, что вы должны рассказать им о любых изменениях, которые вы сделали.Для дополнительной безопасности вы можете добавить строку для
/etc/rc.local
удаления бита выполнения из команды выключения, чтобы не забыть сбросить его после перезагрузки.источник
Вы можете просто удалить / sbin / из пути root. таким образом, вам нужно ввести полный путь для его выполнения, и он обычно исправляет аварии.
источник