
以下ではログインできません。端末{1-6}一般ユーザーとして。私はroot
...
一般ユーザーとしてログインすると、コンピュータにグリーティングメッセージが表示され、/etc/motd
すぐにログアウトされます。
なぜですか?
チェックするのに役立つログファイルは何ですか?
一般ユーザーとして正常にログインできます小人存在するtty7
。
答え1
テキストモードコンソールまたはネットワーク経由でログインするとログインシェル処刑される。複数のシステム全体およびユーザー固有の構成ファイルを読み取ります。以下は最も一般的なものです(シェルがここにリストされていない場合は、そのマニュアルを参照してください)。
- シェン、クッシュ:
/etc/profile
;~/.profile
- スラッシュ:
/etc/profile
、~/.bash_profile
なければ~/.bash_login
、なければ~/.profile
。 - zsh:
/etc/zshenv
、、、、(対話型の場合)、、、、(対話型の場合/etc/zprofile
)/etc/zlogin
。/etc/zshrc
~/.zshenv
~/.zprofile
~/.zlogin
~/.zshrc
- .csh、tcsh:
~/.login
- 魚:
/usr/share/fish/config.fish
,/etc/fish/config.fish
~/.config/fish/config.fish`
これらのファイルは他のファイルをロードできます。特に多くのディストリビューション/etc/profile
は/etc/profile.d
。
これらのファイルの1つにシェルを終了させる内容が含まれていると、コマンドを入力できない状態でログアウトされます。
set -x
そのファイルの上部にインクルード行を追加すると、実行されたコマンドのトレースを表示できます。 (これはBourneスタイルのシェルに適用され、set echo
cshで使用されます魚はそうではありません。)
GUI経由でログインする場合(ディスプレイマネージャ)、ログインシェルは実行されません。しかし、ほとんどのシステムはshまたはbashを実行し/etc/profile
、~/.profile
。
ログインできずに停止した場合:
- Ctrlログイン中に+ Cを押してみてください。適切な時点をクリックすると、構成ファイルのロードが開始されるとシェルがハングし、コマンドラインが表示されます。
- ネットワーク経由でコマンドを実行します。リモートシェルがログインシェルではないため、設定ファイルをロードしない
ssh mymachine.example.com 'mv .profile no.profile'
問題を解決してください。~/.profile
(しかしbashは奇妙です。.bashrc
親がインタラクティブであるrshd
か、sshd
シェルがインタラクティブでない場合でもロードされます。) - FTPまたはSFTPを介してアカウントにアクセスします。
答え2
さて、私の実験ではいくつかのファイルが残っていることがわかったので、cdm
ログイン/etc/profile.d/zzz-cdm-profile.sh
中に実行するとtty
すぐにログアウトが発生しました。これを削除すると問題が解決しました。