Как вы считаете, что вы на производственной системе?

У некоторых из нас в моей компании есть root-доступ на производственных серверах. Мы ищем хороший способ сделать его чрезвычайно понятным, когда у нас есть ssh'd.

Несколько идей, которые у нас были:

  • Яркое красное приглашение
  • Ответ на загадку перед получением оболочки
  • Введите случайное слово перед получением оболочки

Какие методы вы используете для дифференциации производственных систем?

129 голосов | спросил Sionide21 19 +04002011-10-19T22:21:47+04:00312011bEurope/MoscowWed, 19 Oct 2011 22:21:47 +0400 2011, 22:21:47

22 ответа


134

Красное приглашение - хорошая идея, которую я также использую.

Другим трюком является размещение большого предупреждения ASCII в файле /etc /motd .
Что-то вроде этого приветствую вас, когда вы входите в систему, должны обратить ваше внимание:

 _______ _ _ _____ _____ _____ _____
| __ __ | | | | _ _ | /____ | | _ _ | /____ | /\
   | | | | __ | | | | | (___ | | | (___ /\
   | | | __ | | | \ ___ \ | | \ ___ \ //\ \
   | | | | | | _ | | _ ____) | _ | | _ ____) | /____ \
   | _ | | _ | | _ | _____ | _____ /| _____ | _____ //_ /\ _ \


 _____ _____ ____ _____ _ _ _____ _______ _____ ____ _ _
| __ \ | __ \ /__ \ | __ \ | | | | /____ | __ __ | _ _ /__ \ | \ | |
| | __) | | __) | | | | | | | | | | | | | | || | | | \ | |
| ___ /| _ /| | | | | | | | | | | | | | || | | | , `|
| | | | \ \ | | __ | | | __ | | | __ | | | ____ | | _ | || | __ | | | \ |
| _ | | _ | \ _ \\ ____ /| _____ /\ ____ /\ _____ | | _ | | _____ \ ____ /| _ | \ _ |


 __ __ _____ _ _ _____ _ _ ______
| \ /| /\ /____ | | | | _ _ | \ | | ____ |
| \ /| /\ | | | | __ | | | | | \ | | | __
| | \ /| | //\ \ | | | __ | | | | , `| __ |
| | | | /____ \ | ____ | | | | _ | | _ | | \ | | ____
| _ | | _ /_ /\ _ \ _____ | _ | | _ | _____ | _ | \ _ | ______ |

Вы можете создать такое предупреждение на этом веб-сайте или использовать figlet команда.

figlet

Как и в комментариях к Николаю Смиту, вы можете придумать что-то с драконами или другими животными с помощью команды cowsay .

dragon cowsay

Вместо файла /etc /motd вы также можете вызвать cowsay или figlet в файле .profile .

ответил Kenny Rasschaert 19 +04002011-10-19T22:36:02+04:00312011bEurope/MoscowWed, 19 Oct 2011 22:36:02 +0400 2011, 22:36:02
51

Самый большой, который я использовал, - это дискретная схема именования, в которой имена prod-систем явно отличаются от экземпляров test /dev. Это приводит к тому, что приглашение стиля «Имя пользователя @ Имя хоста:» заметно отличается. И очевидным я имею в виду больше, чем просто разные слова, разные форматы:

пример: PRD-WEB001 vs DEVEL-BOB-WEB001

Для этого есть несколько вещей:

  • Дополнительный загиб блок делает его набором из трех вместо набора из двух.
  • Первый из множества - это другая длина.
  • Общая длина имен значительно отличается, что делает интервалы между командами отличными друг от друга и другим текстом в окне.

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

По моему опыту, вы хотите что-то, что является постоянным напоминанием о том, где вы находитесь. Логические методы, такие как загадки, хороши около 10 секунд, пока вы не забудете, какое именно окно. Все, что требуется, - это сделать ls в неправильном каталоге, чтобы прокрутить зловещий логин-баннер вне поля зрения, похоронить окно терминала в окне браузера, а что-то погулять, alt-tab вернуться в неправильное окно и наступает гнев. Лучше всего иметь некоторую постоянную визуальную подсказку, как существенно отличающееся приглашение командной строки.

ответил sysadmin1138 19 +04002011-10-19T22:33:44+04:00312011bEurope/MoscowWed, 19 Oct 2011 22:33:44 +0400 2011, 22:33:44
38

Одна вещь, которую вы должны иметь в виду, это то, что это должно быть постоянным напоминанием, а не только индикатором во время входа в систему. Очень часто у кого-то будет несколько оболочек, работающих одновременно на разных вкладках и перемещающихся между ними. Некоторые будут dev, некоторые производства. Поэтому, когда вы используете команду, вам нужно иметь индикатор в этой точке. Таким образом, наличие специального приглашения - лучший метод, по моему опыту, с измененным заголовком /вкладкой, который является хорошим дополнением к этому, чтобы легко найти нужное окно /вкладку.

Итак, я рекомендую иметь цветное приглашение (красный - очевидный выбор) и все шапки для имени хоста, с аналогичным поведением для пользователя (привилегированное и не привилегированное) в качестве приглашения. Некоторые примеры:

цветные подсказки

Обычно что-то вроде

  set prompt = "% {\ 033 [1; 44m%}` whoami` @ `hostname -s` #% {\ 033 [0m%}" `
 

в файле запуска оболочки. Это для синего. Замените 44 на 41 fir red и 42 на зеленый. Другие цвета и дикие шаблоны доступны также .

ответил Tim 20 +04002011-10-20T01:26:09+04:00312011bEurope/MoscowThu, 20 Oct 2011 01:26:09 +0400 2011, 01:26:09
14

Это мои предложения:

1) Убедитесь, что для большинства команд (rm, chown, chmod, /etc/init.d/*) в рабочей среде требуется доступ к sudo

2) Используйте PS1 /PS2, чтобы указать, что пользователь находится на сервере Prod

  bash-3.2 $ export PS1 = "[\ u @ \ h \ W] \ $"
 

Это отобразит командную строку как

  [sridhar @ prodappserver901 conf] $
 

3) Если вы используете клиенты Putty /SSH, вы всегда можете настроить уникальный цвет фона /профиль, чтобы выделять производственные серверы.

ответил Sridhar Jayakumar 19 +04002011-10-19T22:50:57+04:00312011bEurope/MoscowWed, 19 Oct 2011 22:50:57 +0400 2011, 22:50:57
13

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

Единственное, что мне показалось действительно полезным, это цветное приглашение. Мне нравится зеленый для dev /testing, красный для производства и синий для машин в DMZ. Таким образом, даже если у меня есть две машины с одним и тем же именем (в разных сетях), например, при подготовке сменной машины, я все же могу легко сказать, на какой из них я нахожусь.

ответил John Gardeniers 20 +04002011-10-20T01:16:04+04:00312011bEurope/MoscowThu, 20 Oct 2011 01:16:04 +0400 2011, 01:16:04
11

Красная /специальная командная подсказка хороша. Еще одна вещь может заключаться в более быстром автоматическом выходе на эти машины с использованием переменной TMOUT. Если вы открыли много окон, производственные будут быстрее уходить.

Это должно привести к другому поведению:

  1. Разработка
  2. Тест
  3. Внесите свои изменения на промежуточном сервере
  4. Только тогда сделайте быстрый тире для производства и разверните его (точно так же, как вы сделали это на промежуточном сервере)
ответил Nils 19 +04002011-10-19T23:06:33+04:00312011bEurope/MoscowWed, 19 Oct 2011 23:06:33 +0400 2011, 23:06:33
8

Работа на производственной машине с простой учетной записью root никогда не бывает хорошей идеей.

У вас есть учетная запись с полными разрешениями sudo. Не позволяет сохранить сеанс sudo. Запретить sudo su. Используйте для этого отдельный пароль (не тот, который у вас есть для вашей машины dev). Вероятно, twoak sudo уведомляет о производственной идентичности оболочки перед выполнением команды (через псевдоним).

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

ответил Mihails Strasuns 20 +04002011-10-20T06:44:56+04:00312011bEurope/MoscowThu, 20 Oct 2011 06:44:56 +0400 2011, 06:44:56
8

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

Итак, вот моя версия, готовая быть включенной в .bashrc - https://github.com/RichVel/nicer-bash-prompt . Он полностью управляется именем хоста, так что если у вас есть подходящий шаблон для производственных имен хостов (например, xyprod01 , xyprod02 и т. Д.), Он будет работать хорошо, и вы можете использовать такой же .bashrc во всех средах.

Он выглядит следующим образом:

снимок экрана с красным приглашением

Это создает более приятную подсказку bash, включая красную подсказку на производственных хостах - также показывает текущую ветку git и последние 2 каталога в $ PWD. Во избежание беспорядочного отображения подсказки при выполнении Ctrl /R (обратный поиск) в bash.

Также включает дополнительную функцию для синхронизации истории bash во всех окнах терминала в строках этот ответ . Это хорошо, но не все хотят этого, поэтому по умолчанию он отключен.

ответил RichVel 17 FebruaryEurope/MoscowbSun, 17 Feb 2013 21:33:20 +0400000000pmSun, 17 Feb 2013 21:33:20 +040013 2013, 21:33:20
5

Хотя я не знаю, как устроена ваша ИТ-установка, одним из эффективных решений могло бы стать создание специальной комнаты, в которую вы должны перейти на SSH на рабочие серверы с правами root. Если у вас есть датацентр, это может быть сама серверная комната, но наличие отдельного физического местоположения, из которого «нормальная» работа не будет выполнена, вполне эффективно послужит постоянным напоминанием о том, что вы обращаетесь к производственным машинам.

ответил Kyle Cronin 20 +04002011-10-20T07:19:37+04:00312011bEurope/MoscowThu, 20 Oct 2011 07:19:37 +0400 2011, 07:19:37
4

Просто настройтесь на приведенные выше предложения. Я использую CDE как мой рабочий стол unix и все производственные системы, к которым я обращаюсь через меню в .dt /dtwmrc. На всех dev и UAT-системах я сохраняю свою обычную цветовую схему, но в системах prod я устанавливаю терминал на красный фон. Мне не нравится внешний вид, но это своего рода вопрос.

eta - пропустил Карола, предлагая в основном то же самое

ответил Wudang 20 +04002011-10-20T11:27:23+04:00312011bEurope/MoscowThu, 20 Oct 2011 11:27:23 +0400 2011, 11:27:23
4

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

edit: Я работаю в транспортной отрасли.

ответил Basil 20 +04002011-10-20T20:15:01+04:00312011bEurope/MoscowThu, 20 Oct 2011 20:15:01 +0400 2011, 20:15:01
3

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

Разверните окно, нажмите «Поведение». Введите что-то в заголовке окна, например:

  * * * * * * * * * * * * ПРОИЗВОДСТВО * * * * * * * * * * * * ПРОИЗВОДСТВО * * * * * * * * * * * *
 
ответил sjbotha 20 +04002011-10-20T19:00:43+04:00312011bEurope/MoscowThu, 20 Oct 2011 19:00:43 +0400 2011, 19:00:43
3

Простой ответ? Измените цвет оболочки на красный в конфигурации оболочки. Это будет совершенно очевидно и прост в настройке. Не только это, но в отличие от заголовков серверов он не исчезнет после ввода нескольких команд.

ответил donatJ 21 +04002011-10-21T09:07:17+04:00312011bEurope/MoscowFri, 21 Oct 2011 09:07:17 +0400 2011, 09:07:17
3

Вот что я сделал на своем Mac. Для каждого сервера я добавляю запись для него в файл ~ /.ssh /config, например.

  Host app13
    HostName server.example.com
    Пользователь tom
    PermitLocalCommand да
    LocalCommand osascript% d /bin /change_terminal_colours.scpt 12 35 35
 

Этот Applescript запускается после установления сеанса SSH. Он устанавливает цвет фона терминала на предоставленные значения RGB (или возвращается к умолчанию, если не указаны значения цвета). Потенциально сложная часть состоит в том, чтобы перехватить конец сеанса SSH, чтобы вернуть цвета к значениям по умолчанию. Для этого я создал следующий сценарий оболочки как ~ /bin /ssh, чтобы переопределить команду ssh по умолчанию. Это по существу перехватывает и завершает любые вызовы SSH-команды. Я пытался использовать aliasing и функции, но это решение работало лучше всего:

  #! /Bin /Баш
/usr /bin /ssh $ @
osascript ~ /bin /change_terminal_colours.scpt
 

Вот источник сценария change_terminal_colours.scpt . Поместите это в каталог ~ /bin также:

  для запуска argv
    сообщить заявку «Терминал»
        # ПРИМЕЧАНИЕ. Значения цвета варьируются от 0 до 65535.
        if (count argv)> 0 затем
            set backgroundColor {{item 1 of argv) * 256, (item 2 of argv) * 256, (item 3 of argv) * 256}
        еще
            установить backgroundColor в фоновый цвет настроек по умолчанию
        конец, если

        пытаться
            установите цвет фона (выбранная вкладка переднего окна) на backgroundColor
        попробуйте
    конец сказать
конечный запуск
 

Я написал это решение неделю назад и использовал его с тех пор. Надеюсь, что другие считают это ценным. Я считаю, что это работает лучше, чем любое решение, которое я нашел в Google.

ответил TomWardrop 3 FebruaryEurope/MoscowbMon, 03 Feb 2014 08:29:18 +0400000000amMon, 03 Feb 2014 08:29:18 +040014 2014, 08:29:18
3

Моя группа использует viewapp Remote Desktop (2017) : похоже, что продукт получил переименование, но я думаю, что это то же самое) для RDP в Windows-машинах и SSH в Linux. Наши соединения сгруппированы в папки по уровням и назначены цвета вкладки.

Поэтому всякий раз, когда мы открываем производственное соединение - bam! - у нас на красном лице красный цвет:

введите описание изображения здесь

Это, безусловно, стоит инвестиций, если вы большой магазин Windows и много полагаетесь на RDP. Уверен, что есть другие отличные инструменты, если все, что вам нужно, это SSH.

ответил Nick Chammas 21 +04002011-10-21T00:51:32+04:00312011bEurope/MoscowFri, 21 Oct 2011 00:51:32 +0400 2011, 00:51:32
2

Помимо уникальной подсказки (которая, кажется, является самым надежным решением), если вы входите с одной рабочей станции, вы можете использовать разные профили для своих сеансов SSH.

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

Если вы используете GNOME, есть простой способ запустить соединение SSH с вашим желаемым профилем:

gnome-terminal --window-with-profile = production -e 'ssh [email protected]'

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

ответил Karol J. Piczak 20 +04002011-10-20T00:01:57+04:00312011bEurope/MoscowThu, 20 Oct 2011 00:01:57 +0400 2011, 00:01:57
2

Еще один способ дать понять, что вы на производственной системе - установить функцию TMOUT (autologout) в производственной системе.

ответил Peter K. 20 +04002011-10-20T03:48:24+04:00312011bEurope/MoscowThu, 20 Oct 2011 03:48:24 +0400 2011, 03:48:24
2

В связи с обширными нормативными требованиями при работе в конкретной отрасли, здесь вся деятельность каждого пользователя регистрируется для любых будущих споров. Из-за этого доступ также ограничен, и вам нужно перепрыгнуть через несколько «меню», которые позволят вам получить доступ к машине как к одному из нескольких доверенных пользователей. При настройке этой системы человек должен заодно выбрать среду ПРОДУКЦИИ или ОК, а затем выбрать хост, из которого они хотят получить доступ из списка. У этого также есть период ожидания, поэтому вы не сталкиваетесь с ситуацией входа в хостинг prod и забываете, в какой среде вы находитесь на следующий день.

ответил Alexandra 20 +04002011-10-20T20:20:21+04:00312011bEurope/MoscowThu, 20 Oct 2011 20:20:21 +0400 2011, 20:20:21
2

Я использую подсказки, как и другие. Его быстро и противно, но отлично работает для моих целей. Это даст вам красный цвет как обычный пользователь в производственной системе, а красный верхний регистр - как root в системе prod.

Он может быть написан меньше в строках, но я делаю это так, чтобы я мог настроить другие 2 случая (non root-non prod), если захочу.

Мы работаем над предположением, что производственный сервер не использует DHCP, но вы можете использовать любой другой метод для разработки, если его система prod. Что бы ни работало для вас.

productionSrv = 1
grep -qi bootproto = dhcp /etc /sysconfig /network-scripts /ifcfg- *
если ["$?" -eq 0]; тогда
    productionSrv = 0
фи
Hostname = `hostname`
UserName = `whoami`
if [$ userName == "root"]
тогда
    если ["$ productionSrv" == 1]
    тогда
        hostName = `echo $ hostName | tr [: lower:] [: upper:] `
        PS1 = '[\ е [0; 31m] \ и [\ е [0м] @ [\ е [0; 31m] $ Hostname [\ е [0м] [$] [\ е [0;? 31m] [\ W] [\ e [0m] [\ e [0; 31m] \ $ [\ e [0m]: '
    еще
        PS1 = '[\ е [0; 31m] \ и [\ е [0м] @ [\ е [0; 35m] $ Hostname [\ е [0м] [$] [\ е [0;? 31m] [\ W] [\ e [0m] [\ e [0; 31m] \ $ [\ e [0m]: '
    фи
    PATH = $ PATH: /SBIN /
еще
    если ["$ productionSrv" == 1]
    тогда
        PS1 = '[\ е [0; 32m] \ и [\ е [0м] @ [\ е [0; 31m] $ Hostname [\ е [0м] [$] [\ е [0;? 31m] [\ W] [\ e [0m] [\ e [0; 32m] \ $ [\ e [0m]: '
    еще
        PS1 = '[\ е [0; 32m] \ и [\ е [0м] @ [\ е [0; 35m] $ Hostname [\ е [0м] [$] [\ е [0;? 31m] [\ W] [\ e [0m] [\ e [0; 32m] \ $ [\ e [0m]: '
    фи
фи

ответил Sirex 20 +04002011-10-20T11:27:47+04:00312011bEurope/MoscowThu, 20 Oct 2011 11:27:47 +0400 2011, 11:27:47
1

У вас есть другой (возможно, более длинный) пароль root на производственных машинах.

Вы можете создать специальную sudo (или sudo wrapper), чтобы на рабочих машинах выводилось специальное сообщение.

ответил mdpc 19 +04002011-10-19T22:45:16+04:00312011bEurope/MoscowWed, 19 Oct 2011 22:45:16 +0400 2011, 22:45:16
1

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

  • Prod: ярко-розовый.
  • Регрессия: бледно-зеленый
  • Модель: бледно-голубой
  • Dev: normal

Это работает очень хорошо, но мне нравятся некоторые другие идеи здесь.

  • Pro: если что-то не использует цвет переднего плана .., КАЖДЫЙ экран prod ярко-розовый.
  • Con: Очевидно, если вы используете ssh через нечто иное, чем значение по умолчанию putty config это ничего не делает.
ответил user606723 20 +04002011-10-20T19:04:46+04:00312011bEurope/MoscowThu, 20 Oct 2011 19:04:46 +0400 2011, 19:04:46
1

в .bashrc /.bash_profile

  echo "ЭТО ПРОИЗВОДСТВЕННАЯ СИСТЕМА. ОТВЕТСТВЕННОСТЬ .." ..
 
ответил Jay D 20 +04002011-10-20T23:04:16+04:00312011bEurope/MoscowThu, 20 Oct 2011 23:04:16 +0400 2011, 23:04:16

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132