Больше информации - где те папки? C:\? Или в подпапке изолированной подсистемы? У меня был подобный случай однажды на папке FTP (полностью изолированный) где я случайно llowed все для загрузки файлов. Просто закрытый дыра.
Если то есть, хотя, в системе / исполняемая папка (веб-сайт), удаляют сервер, переустанавливают.
Красная подсказка - хорошая идея, и я также используйте.
Еще одна уловка - поместить большое предупреждение в формате ASCII-art в файл / etc / motd
.
Такое приветствие при входе в систему должно привлечь ваше внимание:
_______ _ _ _____ _____ _____ _____ |__ __| | | |_ _|/ ____| |_ _|/ ____| /\ | | | |__| | | | | (___ | | | (___ / \ | | | __ | | | \___ \ | | \___ \ / /\ \ | | | | | |_| |_ ____) | _| |_ ____) | / ____ \ |_| |_| |_|_____|_____/ |_____|_____/ /_/ \_\ _____ _____ ____ _____ _ _ _____ _______ _____ ____ _ _ | __ \| __ \ / __ \| __ \| | | |/ ____|__ __|_ _/ __ \| \ | | | |__) | |__) | | | | | | | | | | | | | | || | | | \| | | ___/| _ /| | | | | | | | | | | | | | || | | | . ` | | | | | \ \| |__| | |__| | |__| | |____ | | _| || |__| | |\ | |_| |_| \_\\____/|_____/ \____/ \_____| |_| |_____\____/|_| \_| __ __ _____ _ _ _____ _ _ ______ | \/ | /\ / ____| | | |_ _| \ | | ____| | \ / | / \ | | | |__| | | | | \| | |__ | |\/| | / /\ \| | | __ | | | | . ` | __| | | | |/ ____ \ |____| | | |_| |_| |\ | |____ |_| |_/_/ \_\_____|_| |_|_____|_| \_|______|
Вы можете создать такое предупреждение на этом веб-сайте или можете использовать фиглет
Как Николас Смит предложил в комментариях, вы могли бы оживить обстановку некоторыми драконами или другими животными, используя команду cowsay
.
Вместо использования файла / etc / motd вы могли бы также вызовите cowsay
или figlet
в файле .profile
.
Здесь у нас есть конфигурации замазки по умолчанию, чтобы сделать цвет переднего плана всего экрана ярко-розовым.
Работает неплохо, но мне нравятся некоторые другие идеи здесь.
Иметь другой (возможно, более длинный) пароль root на производственных машинах.
Вы можете создать специальный sudo (или оболочку sudo), чтобы на производственные машины выводилось специальное сообщение .
Я использую изменения подсказок, как и другие здесь. Это быстро и неприятно, но отлично подходит для моих целей. Это даст вам красный цвет как обычный пользователь в производственной системе и красный верхний регистр как root в производственной системе.
Это можно было бы записать меньшим количеством строк, но я делаю это так, чтобы я мог настроить другие 2 случая (не root-non prod), если я хочу.
Мы работаем исходя из предположения, что производственный сервер не используйте DHCP, но вы можете использовать любой другой метод для определения, является ли это производственной системой. Все, что вам подходит.
productionSrv = 1
grep -qi bootproto = dhcp / и т.д. / sysconfig / сетевые сценарии / ifcfg- *
если ["$?" -экв 0]; затем
productionSrv = 0
фи
hostName = `hostname`
userName = `whoami`
если [$ userName == "root"]
затем
если ["$ productionSrv" == 1]
затем
hostName = `echo $ hostName | tr [: lower:] [: upper:] `
PS1 = '[\ e [0; 31m] \ u [\ e [0m] @ [\ e [0; 31m] $ hostName [\ e [0m] [$?] [\ E [0; 31m] [\ W] [\ e [0m] [\ e [0; 31m] \ $ [\ e [0m]: '
еще
PS1 = '[\ e [0; 31m] \ u [\ e [0m] @ [\ e [0; 35m] $ hostName [\ e [0m] [$?] [\ E [0; 31m] [\ W] [\ e [0m] [\ e [0; 31m] \ $ [\ e [0m]: '
фи
ПУТЬ = $ ПУТЬ: / sbin /
еще
если ["$ productionSrv" == 1]
затем
PS1 = '[\ e [0; 32m] \ u [\ e [0m] @ [\ e [0; 31m] $ hostName [\ e [0m] [$?] [\ E [0; 31m] [\ W] [\ e [0m] [\ e [0; 32m] \ $ [\ e [0m]: '
еще
PS1 = '[\ e [0; 32m] \ u [\ e [0m] @ [\ e [0; 35m] $ hostName [\ e [0m] [$?] [\ E [0; 31m] [\ W] [\ e [0m] [\ e [0; 32m] \ $ [\ e [0m]: '
фи
фи
Другой способ дать понять, что вы работаете в производственной системе, - это установить в производственной системе функцию TMOUT (автоматический выход).
Из-за обширных нормативных требований при работе в определенной отрасли, здесь все действия записываются в журнал для любых будущих споров. . По этой причине доступ также ограничен, и вам нужно перепрыгнуть через несколько «меню», которые позволят вам получить доступ к машине как одному из немногих доверенных пользователей. Устанавливая эту систему, человек должен сознательно выбрать среду ПРОИЗВОДСТВА или контроля качества, а затем выбрать из списка хост, к которому он хочет получить доступ. У этого также есть период тайм-аута, чтобы вы не столкнулись с ситуацией, когда вы зайдете на хост prod и забудете, в какой среде вы находитесь на следующий день.
Simple answer? Change the color of your shell to red in the shell config. It will be dead obvious and simple to set up. Not only that, but unlike server headers it won't go away after you type in a few commands.
Помимо уникального приглашения (которое кажется наиболее надежным решением), если вы входите в систему с одной и той же рабочей станции, вы можете использовать разные профили для своих сеансов SSH.
Например, у меня есть красный фон для производственных систем, зеленый для разработки, синий для инфраструктуры (маршрутизаторы и т. Д.) И белый для локальной рабочей станции.
Если вы используете GNOME, есть простой способ запустить SSH-соединение с желаемым profile:
gnome-terminal --window-with-profile = production -e 'ssh root@production.example.com '
Главный недостаток - это клиентская сторона, поэтому специальное приглашение по-прежнему лучше если вы обращаетесь к серверам из разных мест.
Моя группа использует Visionapp Remote Desktop (редактирование 2017: похоже, что продукт был переименован, но я думаю, что это то же самое) как для RDP на машинах Windows, так и на SSH на машинах Linux . Наши подключения сгруппированы в папки по уровням и имеют цвет вкладок.
Так что всякий раз, когда мы открываем производственное соединение - бац! - мы видим ярко-красный цвет на нашем лице:
Это определенно стоит вложения, если вы большой магазин Windows и много полагаетесь на RDP. Бьюсь об заклад, есть и другие отличные инструменты, если все, что вам нужно, это SSH.
Никогда не стоит работать на производственной машине с простой учетной записью root.
Иметь учетную запись с полными разрешениями sudo. Не позволяет сохранять сеанс sudo. Запретить sudo su. Используйте для него отдельный пароль (не тот, который у вас есть для вашей машины разработчика). Вероятно, настроить sudo, чтобы уведомлять о производственной идентичности оболочки перед выполнением команды (через псевдоним).
Это будет делать случайные ошибки довольно серьезными. А красная подсказка никогда не повредит.
Просто поправьте приведенные выше предложения. Я использую CDE в качестве рабочего стола unix и всех производственных систем, к которым я обращаюсь через меню в .dt / dtwmrc. На всех системах разработки и UAT я сохраняю свою обычную цветовую схему, но в системах prod я установил для терминала красный фон. Мне не нравится внешний вид, но в этом-то и суть.
eta - пропустил предложение Кароля о том же
В PuTTY вы можете изменить заголовок окна на любой, отличный от значения по умолчанию для определенного сохраненного сеанса. Это всегда остается в окне, независимо от того, что вы делаете внутри окна. Это также отображается на панели задач.
Разверните окно, нажмите «Поведение». Введите что-нибудь в заголовке окна, например:
* * * * * * * * * * * * PRODUCTION * * * * * * * * * * * * PRODUCTION * * * * * * * * * * * *
Красная / специальная командная строка - это хорошо. Другой способ - более быстрый автоматический выход из системы на этих машинах с помощью переменной TMOUT. Если вы открыли много окон, рабочие окна закроются быстрее.
Это должно привести к другому поведению:
Хотя я не знаю, как выглядит ваша ИТ-система, одним из эффективных решений может быть наличие специальной комнаты, в которую вы должны перейти к SSH на производственные серверы с правами root. Если у вас есть центр обработки данных, это может быть сама серверная комната, но наличие отдельного физического места, из которого не выполняется «нормальная» работа, вполне эффективно служило бы постоянным напоминанием о том, что вы получаете доступ к производственным машинам.
Просто учтите, что ваши вторая и третья идеи помогают при первоначальном подключении, но не имеют никакой ценности, когда у вас открыто несколько терминалов и вы перемещаетесь от одного к другому. Идея sysadmin1138 об использовании именования хороша, когда ее можно применить, но во многих случаях это невозможно.
Единственное, что я нашел действительно стоящим, - это цветное приглашение. Мне нравится зеленый цвет для разработки / тестирования, красный для производства и синий для машин в DMZ. Таким образом, даже если у меня есть две машины с одинаковым именем (в разных сетях), например, при подготовке новой машины, я все равно могу легко определить, на какой из них я работаю.
Вот мои предложения:
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 вы всегда можете настроить уникальный цвет / профиль фона, чтобы сделать Производственные серверы выделяются.
Не совсем то же самое, но этот веб-сайт рекомендует, чтобы ваши разработчики носили розовое сомбреро при внесении изменений в производственные системы. У вас, вероятно, могло бы быть похожее правило для sshing в них.
Вы должны помнить одну вещь: это должно быть постоянное напоминание, а не просто индикатор при входе в систему. Очень часто у кого-то будет одновременно работать несколько оболочек на разных вкладках и перемещаться между ними. Кто-то будет разработчиком, кто-то продакшен. Поэтому, когда вы запускаете команду, вам нужен индикатор в этот момент. Так что, по моему опыту, наличие специального приглашения - лучший метод, при этом измененная панель заголовка / вкладки является хорошим дополнением к этому для легкого поиска нужного окна / вкладки.
Поэтому я бы рекомендовал иметь цветное приглашение (красный является очевидным выбором) и заглавными буквами для имени хоста, с аналогичным поведением для пользователя (привилегированный или непривилегированный), как ваше приглашение. Некоторые примеры:
Обычно что-то вроде
set prompt = "%{\033[1;44m%}`whoami`@`hostname -s`#%{\033[0m%} "`
в файле запуска оболочки. Это для синих. Замените 44
на 41
елово-красный, а 42
- на зеленый. Также доступны другие цвета и дикие узоры .
Самым большим из тех, что я использовал, является дискретная схема именования, в которой названия prod-систем явно отличаются от названий экземпляров test / dev. Это делает " Имя пользователя @ Имя хостаВсе, что нужно, - это выполнить команду ls
в неправильном каталоге, чтобы скрыть зловещий баннер входа в систему, скрыть окно терминала под окном браузера во время поиска в Google, перейти на другую вкладку с помощью alt-tab и вернуться в неправильное окно и начинается погром. Лучше всего иметь постоянную визуальную подсказку, например, существенно отличающуюся командную строку.
Когда Я вхожу в производственную машину, получаю абзац, предупреждающий меня, что это производственная машина, а также краткий список рекомендаций. Есть номер, по которому я могу позвонить в службу поддержки UNIX, если не буду Не думаю, что смогу выполнить свою задачу в одиночку, напоминание о том, что взрыв производственной машины может стоить мне работы, и напоминание о том, что все, что я делаю, регистрируется.
edit: Я работаю в транспортной отрасли.
Я выбрал красную подсказку и нашел довольно утомительным поиск рабочего кода для .bashrc
.
Итак, вот моя версия, готовая к включению в .bashrc
- https://github.com/RichVel/nicer-bash-prompt . Он полностью управляется именем хоста, поэтому, если у вас есть подходящий шаблон для рабочих имен хостов (скажем xyprod01
, xyprod02
и т. Д.), Он будет работать хорошо, и вы можете использовать один и тот же .bashrc
во всех средах.
Это выглядит так:
Это создает более удобное приглашение bash, включая красное приглашение на производственных узлах - также показывает текущую ветку git, и последние 2 каталога в $ PWD. Он позаботится о том, чтобы не испортить отображение подсказок при выполнении Ctrl / R (обратный поиск) в bash.
Также включает дополнительную функцию для синхронизации вашей истории bash во всех окнах терминала в соответствии со строками этого ответа . Это хорошо, но не всем это нужно, поэтому по умолчанию он отключен.
Он позаботится о том, чтобы не испортить отображение подсказок при выполнении Ctrl / R (обратный поиск) в bash.Также включает дополнительную функцию для синхронизации вашей истории bash во всех окнах терминала в соответствии со строками этого ответа . Это хорошо, но не всем это нужно, поэтому по умолчанию он отключен.
Он позаботится о том, чтобы не испортить отображение подсказки при выполнении Ctrl / R (обратный поиск) в bash.Также включает дополнительную функцию для синхронизации вашей истории bash во всех окнах терминала в соответствии со строками этого ответа . Это хорошо, но не всем это нужно, поэтому по умолчанию он отключен.
Вот что я сделал на своем Mac. Для каждого сервера я добавляю запись для него в свой файл ~ / .ssh / config, например
Host app13
HostName server.example.com
User tom
PermitLocalCommand yes
LocalCommand osascript %d/bin/change_terminal_colours.scpt 12 35 35
Этот Applescript запускается после установления сеанса SSH. Он устанавливает цвет фона терминала на предоставленные значения RGB (или обратно на значение по умолчанию, если значения цвета не указаны). Потенциально сложная часть - перехватить конец сеанса SSH, чтобы вернуть цвета к значениям по умолчанию. Для этого я создал следующий сценарий оболочки как ~ / bin / ssh, чтобы переопределить команду ssh по умолчанию. Это по существу перехватывает и обертывает любые вызовы команды SSH. Я пробовал использовать псевдонимы и функции, но это решение сработало лучше всего:
#!/bin/bash
/usr/bin/ssh $@
osascript ~/bin/change_terminal_colours.scpt
Вот источник сценария change_terminal_colours.scpt . Поместите это также в свой каталог ~ / bin:
on run argv
tell application "Terminal"
# NOTE: Color values range from 0 to 65535.
if (count of argv) > 0 then
set backgroundColor to {(item 1 of argv) * 256, (item 2 of argv) * 256, (item 3 of argv) * 256}
else
set backgroundColor to background color of default settings
end if
try
set background color of (selected tab of front window) to backgroundColor
end try
end tell
end run
Я написал это решение неделю назад и с тех пор использую его. Я надеюсь, что другие сочтут это ценным. Я считаю, что это работает лучше, чем любое из решений, найденных мной в Google.
Вот мой
Я использовал ascii-image-converter для изображения (перенаправить результат в файл и разместить его в верхней части вашего.bashrc). Также использую это для полного эффекта:
export PS1="\[\e[1;32m\]\u\[\e[3;31m\]@\[\e[3;31m\] PROD \[\e[0;37m\]: \[\e[1;34m\]\w \[\e[0;31m\]$ \[\e[0m\]"