您如何使您明显处于生产系统中?

Sio*_*e21 136 linux root

我们公司中的一些人在生产服务器上拥有 root 访问权限。我们正在寻找一种很好的方法来在我们使用 ssh 时让它变得非常清楚。

我们的一些想法是:

  • 亮红色提示
  • 在得到壳之前先回答一个谜语
  • 在获得 shell 之前输入一个随机单词

你们使用哪些技术来区分生产系统?

Ken*_*ert 137

红色提示是个好主意,我也用过。

另一个技巧是在/etc/motd文件中放置一个大的 ASCII 艺术警告。
当您登录时,像这样的内容会引起您的注意:

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


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


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

您可以在本网站上生成这样的警告,也可以使用该figlet 命令。

无花果

就像 Nicholas Smith 在评论中建议的那样,您可以使用该cowsay命令为一些龙或其他动物增添趣味。

龙牛赛

除了使用 /etc/motd 文件,您还可以在文件中调用cowsay或。figlet.profile

  • 在 Windows 服务器上,我使用亮粉色桌面颜色和亮黄色标题栏/配色方案,以便它真的非常明显。这是我们的彩色命令提示符版本 (41认同)
  • 如果你输入了一些命令,你就不会再看到它了。 (13认同)
  • 我想将 [ASCII 龙](http://www.chris.com/ascii/index.php?art=creatures%2Fdragons) 添加到组合中。 (8认同)
  • 哦,我喜欢那个! (3认同)
  • 没错,这就是红色提示派上用场的地方。 (3认同)
  • 除了彩色终端的刺耳红色背景外,我都这样做了。http://i.imgur.com/GaFgi.png (2认同)

Ari*_*yck 80

不太一样,但该网站建议让您的开发人员在对生产系统进行更改时佩戴粉红色的宽边帽。你可能有一个类似的规则来进入它们。

穿着粉红色宽边帽的开发人员

  • 是的,您必须将流程更改为:1) 声明想要编辑制作。2) 拿出草帽并关闭所有其他窗户。3)在每个人都在看的时候做生产的东西。4) 退出会话并移除草帽。 (7认同)

sys*_*138 50

我使用过的最大的一个是离散命名方案,其中生产系统的命名与测试/开发实例明显不同。这使得“用户名@主机名:”风格提示明显不同。很明显,我的意思不仅仅是不同的词,还有不同的格式:

示例:PRD-WEB001 与 DEVEL-BOB-WEB001

这有几件事情要做:

  • 额外的连字符块使其成为三组而不是二组。
  • 第一组的长度不同。
  • 名称的总长度明显不同,这使得命令行间距相对于彼此和窗口中的其他文本不同。

最重要的是,它不需要用于生产的特殊终端配置,只是为了避免 Oops 错误。

根据我的经验,你想要一些能够不断提醒你所处位置的东西。像谜语这样的登录方法可以持续大约 10 秒钟,直到您忘记哪个窗口是哪个。所需要的只是ls在错误的目录中执行操作以将不祥的登录横幅滚动到视图之外,将终端窗口隐藏在浏览器窗口下,同时谷歌搜索某些内容,alt-tab 返回错误的窗口,然后就会发生混乱。最好有一些恒定的视觉提示,比如明显不同的命令提示符。


Tim*_*Tim 42

您需要记住的一件事是,这需要是一个持久的提醒,而不仅仅是登录时的指示器。很多时候,有人会在不同的选项卡中同时运行多个 shell 并在它们之间移动。有些是开发的,有些是生产的。所以当你运行一个命令时,你需要在那个点有一个指示器。因此,根据我的经验,有一个特殊提示是最好的方法,修改后的标题/标签栏是一个很好的补充,可以轻松找到正确的窗口/标签。

因此,我建议使用彩色提示(红色是显而易见的选择)和主机名的所有大写字母,并为用户提供类似的行为(特权与非特权)作为您的提示。一些例子:

彩色提示示例

通常类似

set prompt =  "%{\033[1;44m%}`whoami`@`hostname -s`#%{\033[0m%} "` 
Run Code Online (Sandbox Code Playgroud)

在你的 shell 启动文件中。这个是给蓝色的。更换4441杉木红色和42绿色。其他颜色和百搭图案也可用


小智 14

这些是我的建议:

1) 确保生产环境中的大多数命令(rm、chown、chmod、/etc/init.d/*)都需要 sudo 访问

2)使用PS1/PS2表示用户在Prod服务器

bash-3.2$  export PS1="[\u@\h \W]\$ "
Run Code Online (Sandbox Code Playgroud)

这将命令提示符显示为

[sridhar@prodappserver901 conf]$
Run Code Online (Sandbox Code Playgroud)

3) 如果使用 Putty/SSH 客户端,您可以随时设置独特的背景颜色/配置文件,使生产服务器脱颖而出。


Joh*_*ers 13

只需考虑您的第二个和第三个想法在初始连接期间有所帮助,但当您打开多个终端并从一个终端移动到另一个终端时就没有任何价值了。sysadmin1138 使用命名的想法在可以应用时很好,但也有很多情况不能应用。

我发现唯一真正值得的东西是彩色提示。我喜欢绿色用于开发/测试,红色用于生产,蓝色用于 DMZ 中的机器。这样,即使我有两台同名的机器(在不同的网络中),比如在准备更换机器时,我仍然可以很容易地分辨出我在哪一台。


Nil*_*ils 11

红色/特殊命令提示符很好。另一件事可能是使用 TMOUT 变量在这些机器上更快地自动注销。如果您打开了许多窗口,生产窗口会更快地消失。

这应该会导致不同的行为:

  1. 发展
  2. 测试
  3. 对临时服务器进行更改
  4. 然后快速进入生产环境并在那里部署(就像您在临时服务器上所做的那样)


小智 9

使用普通的 root 帐户在生产机器上工作从来都不是一个好主意。

拥有一个具有完全 sudo 权限的帐户。不允许保存 sudo 会话。禁止sudo su。使用单独的密码(不是你的开发机器的密码)。可能会调整 sudo 以在执行命令(通过 alias )之前通知 shell 的生产身份。

它会犯一些相当困难的意外错误。红色提示永远不会受到伤害。


Ric*_*Vel 8

我采用了红色提示的想法,发现为.bashrc.

所以这是我的版本,准备包含在.bashrc- https://github.com/RichVel/nicer-bash-prompt 中。它是完全由主机驱动的,所以只要你有一个合适的模式,以生产主机名(比如说xyprod01xyprod02等等),它会工作得很好,你可以使用相同.bashrc于各种环境。

它看起来像这样:

红色提示截图

这会创建一个更好的 bash 提示,包括生产主机上的红色提示 - 还会显示当前的 git 分支和 $PWD 中的最后 2 个目录。在 bash 中执行 Ctrl/R(反向搜索)时,注意避免弄乱提示显示。

还包括一个可选功能,用于在所有终端窗口中同步您的 bash 历史记录,沿着这个答案的路线。这很好,但不是每个人都想要它,所以默认情况下它是禁用的。


Kyl*_*nin 5

虽然我不知道您的 IT 设置是什么样的,但一种可能有效的解决方案是拥有一个特殊的房间,您必须以 root 身份通过 SSH 进入生产服务器。如果您有一个数据中心,这可能是服务器机房本身,但如果有一个单独的物理位置,“正常”工作不会从中完成,则可以非常有效地不断提醒您正在访问生产机器。

  • 虽然这肯定会有效,但在大多数情况下,它也会适得其反。 (2认同)