現在、私はActive Directoryドメインに参加しており、ユーザー管理にSSSDを使用する多数のLinuxシステムを持っています。ほとんどはubuntuで、一部はRaspianです。
私はpam_mkhomedir.soを使用して/etc/pam.d/common-sessionを介してすべてのドメインログインに対してローカルにホームディレクトリを作成します。
session required pam_mkhomedir.so skel=/etc/skel/ umask=0077
これはローカルコンソールログインにも当てはまりますsu [domainuser]
。 /home/[domain]/[user] にディレクトリが作成されます。ただし、ユーザーがSSHを介して初めてログインすると(通常はサーバーの場合)、ディレクトリは正しいユーザーではなくroot:rootによって所有されます。
私はこれについて恐れて、私が見つけることができるすべてを試しました。どんなアイデアがありますか?
答え1
わかりましたら関係のないことでした - DOH。
LDAP属性からキーを取得するために、ssh AuthorizedKeysCommandのカスタムbashスクリプトを実行しています。ユーザーのホームディレクトリにキャッシュされたバージョンのキーを書き込みます。存在しない場合はパスを作成します。。
その結果、少なくともキーベースの認証を使用するときにディレクトリがすでに存在するため、pam_mkhomedirは実行されません。したがって、pam mkdirはまったく問題にはなりません。
このスクリプトを削除すると完璧に動作しました。これで、SSH キーキャッシュをホームディレクトリの外に保存するようにスクリプトを再構築し、すべてが期待どおりに動作します。
同様の問題があるかもしれない他の人々に思い出させるためにここにこれを記録しなさい。固定概念から外れ、 pam_mkhomedir が期待されるとき、特にカスタムスクリプトが実行されたときに実際に実行されることを確認してください。