さまざまなユーザーのBashプロンプトを変更する

さまざまなユーザーのBashプロンプトを変更する

最新のハードウェア/OSアップデートにより、ドメイン全体に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やルートのプロンプトと同様に変更するには、どのファイルとどの行を変更する必要がありますか?

[user#@site1 ~]$

特に、gwsrvではなくこのサイトにログインしていることを示すために必要です。

助けてくれてありがとう。

答え1

の構成は、/etc/profileユーザーのホームディレクトリ(たとえば~/.bash_profile)の設定によって上書きされ、しばしば上書きされます。ユーザーが自分の環境で設定するのを防ぐメカニズムを実装せずに、ユーザーPS1に特定のプロンプトを表示するように強制する方法はありません。

あなたできる状況を変更できる候補者を特定するなどの作業を行いますが、grep 'PS1=' /home/*/.*徹底する必要はありません。

関連情報