自从我从 9.04 升级到 Ubuntu 9.10 以来,我在使用 ProFTPD 时遇到了问题。
当我以 ftp 用户 (userftp) 身份登录终端时,我可以在其主目录中正常创建目录。但是当我以此用户身份使用 ftp 时,当我尝试执行相同操作(创建目录)时,权限被拒绝 (550 asl:权限被拒绝)。但上传文件却没问题。
我对 proftpd 使用的配置和以前一样,我不知道哪里出了问题。如能得到任何帮助,我将不胜感激!
配置如下:
Include /etc/proftpd/modules.conf
UseIPv6 on
IdentLookups off
ServerName "whatever"
ServerType inetd
DeferWelcome off
MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"
DenyFilter \*.*/
DefaultRoot ~
Port 21
<IfModule mod_dynmasq.c>
</IfModule>
MaxInstances 8
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>
#
# My additions
#
MaxLoginAttempts 5
#
# My user config
#
#VALID LOGINS
<Limit LOGIN>
AllowUser userftp DenyALL
</Limit>
<Directory /home/userftp>
Umask 022 022
AllowOverwrite off
<Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD> DenyAll </Limit>
</Directory>
<Directory /home/userftp/upload/>
Umask 022 022
AllowOverwrite on
<Limit READ>
DenyAll
</Limit>
<Limit STOR CWD MKD RMD DELE>
AllowAll
</Limit>
</Directory>
答案1
好的,经过反复试验后,我找到了解决方案。
我需要将命令 XRMD 和 XMKD 添加到用户允许的命令中。根据http://www.castaglia.org/proftpd/doc/contrib/ProFTPD-mini-HOWTO-Limit.html
因此,或许我的系统中的某个地方现在正在使用这些命令。
我的配置结尾现在如下:
<Directory /home/userftp/upload>
Umask 022 022
AllowOverwrite on
<Limit READ>
DenyAll
</Limit>
<Limit STOR CWD MKD RMD DELE XRMD XMKD>
AllowAll
</Limit>
</Directory>