ローカル端末が同じユーザーとしてログインしていても、「ホームディレクトリが見つかりません」というメッセージでsshが失敗します(ディレクトリが存在し、権限があります)。

ローカル端末が同じユーザーとしてログインしていても、「ホームディレクトリが見つかりません」というメッセージでsshが失敗します(ディレクトリが存在し、権限があります)。

sshが一部のユーザーのホームディレクトリ(存在)を見つけることができませんが、同じユーザーがローカル端末を介して自分のコンピュータに直接ログインできるという奇妙な問題があります。

詳細は次のとおりです。

私は学生がSFTPを通じて課題などを提出することができるサーバー(server.domain.edu)を管理しています。マシンでFedora Linux 22を実行しています。初期設定でサーバーにsshを接続し、デフォルトのパスワードを変更しました。

以下でアカウントを設定しました。

useradd -s /bin/changepasswd -p `openssl passwd -1 studentname` studentuname

Changepasswdは、いくつかの指示を印刷し、passwdを呼び出す単純なシェルスクリプトです。権限は/bin/changepasswd755で、所有者:グループはルート:ルートです。

home/studentnameSFTP関連の問題を避けるために、/の所有権とグループを変更します。ls -ld /home/studentname生産する

drwxr-xr-x. 24 root teacher 4096 Jan 18 13:58 studentname

不思議なことは、私が10人以上の学生のためにまったく同じ設定でアカウントを作成したことです。場合によっては期待どおりに動作します(ログインすると、システムはChangepasswdを実行し、セッションはスクリプトで終了します)。残りの場合は、次のようなことが発生します。

ssh [email protected]

Could not chdir to home directory /home/studentname: No such file or directory
/bin/changepasswd: No such file or directory
Connection to server.domain.edu closed.

一方、sshに問題がある同じユーザーがサーバーのローカル端末を使用している場合(ローカルテキストログイン)、上記のエラーメッセージなしですべてが期待どおりに実行されます。 Macでputty / sshコマンドなどのクライアントを使用するか、サーバーのxtermからサーバーとしてsshを使用するか(ローカルで直接ログインするのではなく)、SSHの問題があります。

sshd_configファイル:

sshd_configは少し珍しいです。各生徒名について、次のとおりです。

一致グループ 学生名
ForceCommand /bin/changepasswd
ChrootDirectory /home/studentname
PermitTunnel いいえ
AllowAgentForwarding いいえ
X11Forwarding いいえ
AllowTcpForwarding

もう一度申し上げますが、これは実際には一部の学生には効果がありますが、他の学生にはそうではありません。 sshd_config ファイルの残りの部分はデフォルト値です。

何が間違っている可能性がありますか?

関連情報