我有 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 命令并恢复用户名时,我可以登录。
我应该怎么做才能使用新用户名登录?
第五次检查后
sshd_config
,我发现了阻止登录的组规则。ChrootDirectory 基本上告诉我们,登录后,用户根目录将更改为指定目录,该目录必须与登录用户名 (%u) 具有相同的名称。由于情况并非如此,因此登录被拒绝。当我重命名目录以匹配用户名时,我能够登录。
不幸的是,日志文件中没有关于此问题的任何提示或错误。