我正在使用 proftpd。当我尝试登录 FTP 服务器时,它在日志中显示以下消息:
USER Err (Login failed): Invalid shell: '/dev/null'
经过多次搜索,我发现我应该将RequireValidShell
其设置为关闭,然后我在日志中收到此错误:
Err chdir("/dev/null"): Not a directory
我还尝试将我的 shell 访问权限设置为“/dev/false”,但这并没有改变任何东西。客户端显示登录失败。我不知道该怎么办了,我花了大约 4 个小时才弄清楚。真的需要一些帮助。
这是我的proftpd.conf:
Include /etc/proftpd/modules.conf
UseIPv6 on
IdentLookups off
ServerName "192.168.0.100"
ServerType standalone
RequireValidShell off
DeferWelcome off
MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 600
DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"
DenyFilter \*.*/
Port 21
<IfModule mod_dynmasq.c>
</IfModule>
MaxInstances 3
User proftpd
Group nogroup
Umask 022 022
AllowOverwrite on
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
<IfModule mod_quotatab.c>
QuotaEngine off
</IfModule>
<IfModule mod_ratio.c>
Ratios off
</IfModule>
<IfModule mod_delay.c>
DelayEngine on
</IfModule>
<IfModule mod_ctrls.c>
ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
</IfModule>
<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>
Include /etc/proftpd/conf.d/
PRoFTPD-1.3.4a
Xubuntu 12.10
答案1
也许配置帐户的人在分配主目录时就像分配 shell 时一样被误导了。
这可以解释为什么当他们成功登录 FTP 服务时无法进行 chdir 操作。
grep [username] /etc/passwd
将显示用户的主目录是否与 shell 一样设置不当。sudo usermod -d /home/[username] -s /usr/sbin/nologin [username]
可以为帐户设置合理的 shell 和主目录。您可能还需要sudo mkdir -p /home/[username]
和sudo chown [username] /home/[username]
。