通过最新的硬件/操作系统更新,我们在整个域中实施了 FQDN。现在,当我们 ssh 到远程站点时,我们在终端会话中无法获得正确的提示。这不会是一个问题,除非我们经常通过 ssh 连接到多个站点,并且无论我们连接到哪个站点,所有提示都是相同的。在实施 FQDN 之前,我们之前将每个站点网关服务器的主机名设置为站点名称(site1、site2 等),因此登录提示允许我们识别在每个远程终端会话中连接到的站点。
现在,RHEL 7 使用 FQDN,这是我们的主机名:
user1@site1:/home/user1
# hostnamectl status
Static hostname: gwsrv.site1.system.division.company.com
Pretty hostname: site1
Icon name: computer-server
Chassis: server
Machine ID: 988c77c116d744fb8b26629aab7beace
Boot ID: b56bd8e144924560a9051dafbd2ac867
Operating System: Red Hat Enterprise Linux Server 7.3 (Maipo)
CPE OS Name: cpe:/o:redhat:enterprise_linux:7.3:GA:server
Kernel: Linux 3.10.0-514.el7.x86_64
Architecture: x86-64
我们使用 /etc/profile.d/profile.sh 修改了提示符,并按预期格式化提示符:
PS1=`/usr/bin/whoami`@`/usr/bin/hostnamectl --pretty`:'$PWD
# '
返回提示:
user1@site1:/home/user1
#
如果我将自己提升为 root,我会得到相同的提示:
user1@site1:/home/user1
# su
Password:
root@site1:/home/user1
#
但是,如果我更改为任何其他用户,我会收到不同的提示:
user1@site1:/home/user1
# su user2
Password:
[user2@gwsrv user1]$
如果我以任何其他用户的身份 ssh 登录并不重要,我对所有用户的提示(除了 user1 和 root 之外)都会给出相同的提示:
[user#@gwsrv ~]$
我需要修改哪个文件和哪一行来更改此其他提示以类似于 user1 和 root 的提示:
[user#@site1 ~]$
具体来说,我们需要它来显示他们登录的是该站点而不是 gwsrv。
谢谢您的帮助。
答案1
中的配置/etc/profile
可以(并且经常会)被用户在其主目录中自己的设置覆盖(例如~/.bash_profile
)。如果没有以某种方式实现阻止用户在自己的环境中进行设置的机制PS1
,则实际上没有办法强制用户具有特定的提示。
你可以做一些事情,比如grep 'PS1=' /home/*/.*
找到可能改变事情的候选人,但这不一定是详尽无遗的。