ユーザー名を変更した後は、SFTPを使用してログインできなくなります。

ユーザー名を変更した後は、SFTPを使用してログインできなくなります。

多くのユーザーが異なるユーザー名を使用して接続する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)と同じ名前を持つ必要があることを知らせます。そうでないため、ログインは拒否されます。ユーザー名と一致するようにディレクトリ名を変更すると、ログインできます。

残念ながら、ログファイルにはこの問題に関するヒントやエラーはありません。

関連情報