私のインフラストラクチャは、主に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
。 Ubuntuの場合は、はい。.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の設定を有効にしたくない非対話型シェルから読み取らないように1つを追加してください。