多くのユーザーが異なるユーザー名を使用して接続するSFTPサーバーがあります。ユーザーが名前の変更を要求しました。とても簡単な過程だと思い、一般的な方法でやってみました。
usermod --login new_username old_username
それ以降は、新しい名前でログインできなくなります。ユーザーが複数人なので、権限を比較していますが、すべてが大丈夫です。また、ログファイルを確認すると、ユーザーのパスワードが承認されたことがわかりました。サービスを再起動しましたが、まだ同じです。
- オペレーティングシステム:Centos7。
- まだ LDAP サーバーは使用されていません。
- すべてのユーザーはローカルユーザーです。
- 名前を変更した後は、以前のユーザー名でもアクセスできません。
- 再起動せずにサービスのみを再起動しました。
- sshd_config には、ユーザー以外のグループのルールがあります。グループは変更されません。
名前が変更された/etc/passwdエントリは次のとおりです。
newname:x:2108:2000:oldname:/opt/ftp/oldname/:/usr/sbin/nologin
しかし、手動でpasswdエントリを次のように変更しても(切迫した試み):
newname:x:2108:2000:newname:/opt/ftp/oldname/:/usr/sbin/nologin
ログインできません。
usermodコマンドを再実行してユーザー名を復元すると、ログインできます。
新しいユーザー名でログインするにはどうすればよいですか?
答え1
5番目の確認の結果、sshd_config
ログインをブロックするグループルールが見つかりました。
Match Group ftp
ChrootDirectory /opt/ftp/%u
ForceCommand internal-sftp -u 0002
X11Forwarding no
AllowTcpForwarding no
ChrootDirectoryは、デフォルトでは、ログイン後にユーザーのルートディレクトリが指定されたディレクトリに変更されます。これは、ログインしたユーザー名(%u)と同じ名前を持つ必要があることを知らせます。そうでないため、ログインは拒否されます。ユーザー名と一致するようにディレクトリ名を変更すると、ログインできます。
残念ながら、ログファイルにはこの問題に関するヒントやエラーはありません。