chdir()の代わりに正しいホームディレクトリ(AD / realmd / sssd)にログインしてください。

chdir()の代わりに正しいホームディレクトリ(AD / realmd / sssd)にログインしてください。

私は強制的に複数の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

おすすめ記事