
私は強制的に複数のLinuxシステムを1つのドメインに参加させる必要がありました。私は現在Debianの安定版を使用しており、私が書いた接続スクリプト(場所:https://rbmj.github.io/join.sh参考用)。この設定では、ゾーンとsssdを使用してすべての接続魔法を実行し、pam_mkhomedirを使用してホームディレクトリを作成します。マシンは Debian で安定しています。
getent passwd $USER
正しいuid / gidとホームディレクトリの設定をそのまま表示します/home/$DOMAIN/$USER
。
問題は、ログイン時にpam_mkhomedir.soが正しい場所()に/home/$DOMAIN/$USER
ホームディレクトリを作成しますが、ログインしようとしてchdir()
いる場合です/home/$USER
。
現在使用されている回避策/home/$DOMAIN
はにシンボリックリンクすることです/home
。はい見苦しいシンボリックリンクループが、今は正常に動作します。これを把握したら、システムアカウントは1つまたは2つしかないので、スクリプトを介して残りの部分を移動できるため、移行は非常に簡単になります。
これは最近インストールされた Debian 安定マシンであるため、標準のログインデーモンが systemd-logind または同様の cruft に置き換えられたと信じているので、これはシステムの問題だと思います。ログインがnsswitchに示されているように、ユーザーの正しいホームディレクトリにディレクトリを変更しようとする必要があるため、これはどこかのバグだと思いますが、専門家ではありません。
答え1
ここでsystemdが間違っている可能性はほとんどありません。 Logindはホームディレクトリに関連する操作を行いません(ローカルログインにローカルハードウェアへのアクセスを許可する役割を果たしますが、リモートログインには付与しないため、SSH経由でログインしている人はWebカメラを垣間見ることはできません)。
代わりに、すべてをうまくやっていない可能性が高くなります。
スクリプトを実行した後、PAM設定ファイルの内容を表示します。おそらくあなたはポイントを見逃しているでしょう。
nscd
キャッシュの問題でないことを確認するには、無効にしてみてください。
/etc/skel
へのハードコードされた参照が含まれていないことを確認してください/home/$USER
。