내 인프라는 주로 Ubuntu 시스템과 많은 사용자로 구성되어 있습니다. 우리는 원격 액세스를 위해 X2GO를 사용하는 것을 좋아하며 훌륭하게 작동합니다. 현재 AlmaLinux 8.8 시스템이 있습니다. X2GO로 로그인하고 터미널을 열 때 프롬프트가 혼란스럽고 다음과 같은 내용만 표시됩니다 bash-4.4$
. 우리는 X2GO에서 터미널을 여는 것이 로그인 셸이 아니기 때문에(죄송합니다. 더 이상 확실하지 않습니다. 편집을 참조하세요. ) Ubuntu . 시스템은 /etc/bashrc
에 의해 실행되지 않습니다/etc/profile
.bashrc
사용자 홈 디렉터리의 로컬 디렉터리 없이 작동하도록 구성되어 있습니다. 따라서 모든 홈 디렉토리는 no 에 있습니다 .bashrc
.
나는 항상 AlmaLinux 시스템에서 작업을 수행하고 싶습니다 /etc/bashrc
. 이는 새 사용자를 위한 새 홈을 생성하는 메커니즘에 액세스할 수 없고 모든 사용자에게 로컬 .bashrc
. 이것을 달성하는 방법? Alma 머신에 대한 sudo 권한이 있습니다.
[편집] 다시 확인한 후 다음 위치에서 이 블록을 발견했습니다 /etc/profile
.
if [ -n "${BASH_VERSION-}" ] ; then
if [ -f /etc/bashrc ] ; then
# Bash login shells run only /etc/profile
# Bash non-login shells run only /etc/bashrc
# Check for double sourcing is done in /etc/bashrc.
. /etc/bashrc
fi
fi
답변1
설명이 좀 과하네요. 로그인 쉘은 profile
파일 계열을 읽지만 파일 bashrc
자체는 읽지 않습니다. 비로그인 쉘이므로 읽지는 않지만 profile
읽습니다 bashrc
. 우분투의 경우, 그렇습니다. .bashrc
아마도 at이 없기 때문에 local이 없도록 설정되었을 수 있습니다 /etc/skel
. 여기에 기본 파일을 추가하고 모든 신규 사용자를 위해 해당 파일을 복사할 수 있습니다.
로그인 쉘이 읽게 하는 것에 관해서는 bashrc
개인적으로 필요한 설정을 대신 사용하는 것이 좋습니다 /etc/profile
. 하지만 그렇게 하고 싶지 않다면 /etc/profile
소스를 만들 수 있습니다 /etc/bash.bashrc
. 이것을 다음 항목에 추가하세요 /etc/profile
:
if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
fi
/etc/bash.bashrc
쉘이 bash를 (POSIX 모드의 bash) /etc/profile
로 읽지 않고 bash를 읽는 경우 이는 소스가 됩니다. /bin/sh
내가 아는 한 일부 Linux 배포판은 기본적으로 Debian 제품군의 배포판에서만 이 작업을 수행하지만 다른 배포판도 이 작업을 수행할 수 있습니다. 이는 /etc/bash.bashrc
쉘이 대화형이 아닐 때 종료되는 코드가 있다고 가정합니다. 내 아치에서는 다음과 같습니다.
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
비슷한 줄이 없으면 /etc/bash.bashrc
bashrc의 설정이 활성화되기를 원하지 않는 비대화형 쉘에서 읽지 않도록 하나를 추가하십시오.