다양한 사용자에 대한 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
# 

루트 권한으로 권한을 높이면 동일한 메시지가 표시됩니다.

user1@site1:/home/user1
# su
Password:
root@site1:/home/user1
#

그러나 다른 사용자로 변경하면 다른 메시지가 표시됩니다.

user1@site1:/home/user1
# su user2
Password:
[user2@gwsrv user1]$

다른 사용자로 SSH에 접속해도 상관없습니다. 모든 사용자(user1 및 루트 제외)에 대한 프롬프트는 동일한 프롬프트를 제공합니다.

[user#@gwsrv ~]$

이 다른 프롬프트를 user1 및 루트의 프롬프트와 유사하게 변경하려면 어떤 파일과 어떤 줄을 수정해야 합니까?

[user#@site1 ~]$

특히 gwsrv가 아닌 이 사이트에 로그인했음을 보여주기 위해 필요합니다.

도움을 주셔서 감사합니다.

답변1

의 구성은 /etc/profile사용자의 홈 디렉터리(예 ~/.bash_profile: ) 설정에 의해 재정의될 수 있으며 종종 재정의됩니다. 사용자가 자신의 환경에서 설정하는 것을 방지하는 메커니즘을 구현하지 않고는 PS1사용자에게 특정 프롬프트를 표시하도록 강제할 수 있는 방법이 없습니다 .

할 수 있다상황을 바꿀 수 있는 후보자를 식별하는 등의 작업을 수행 grep 'PS1=' /home/*/.*하되 철저할 필요는 없습니다.

관련 정보