我们在 debian5 上使用 plesk 和 proftpd。我想为目录 /var/www/vhosts/domain.de/httpdocs/test 添加一个 ftpuser 用户
因此我添加了一个系统用户
useradd USER -s /bin/false -d /var/www/vhosts/domain.de/httpdocs/test
,并使用 passwd 设置了密码。我也尝试使用 shell,结果相同。
但我无法通过 ftp 登录。我做错了什么?
答案1
答案可能在 /var/log/secure 中,尽管我通常认为 FTP 日志是缺乏的。目录 /var/www/vhosts/domain.de/httpdocs 目录仅对 psaserv 和该 vhost 的用户名可执行(如 Plesk 所见)。
如果你有可用的 ACL(不确定是否适用于 Debian 5),你可以尝试:
setfacl -m user:USER:r-x /var/www/vhosts/domain.de/httpdocs
setfacl -m -R user:USER:rwx /var/www/vhosts/domain.de/httpdocs/test
setfacl -m -R -d user:USER:rwx /var/www/vhosts/domain.de/httpdocs/test
如果您收到有关语法的错误,则可能需要使用 ACL 重新安装该分区。请尝试:
mount -o remount,acl /var
或mount -o remount,acl /
或任何相关分区。
如果没有,我建议不要授予任何用户完全权限,而是为其创建一个新的虚拟组来替换该目录的 psaserv,因此,大致如下:
groupadd your_dummy_group
for i in $(lid -g psaserv | cut -f2 -d" " | cut -f1 -d"("); do usermod -aG your_dummy_group $i; done
chgrp your_dummy_group /var/www/vhosts/domain.de/httpdocs
这样您就可以进入目录。至于读/写,您需要执行与上述相同的操作,但要对目录 /var/www/vhosts/domain.de/httpdocs/test 和组 psacln 进行递归操作(我相信但没有安装进行测试,但可以完全访问目录 - 如果没有,您将拥有更多权限进行修改)。
显然,你可以将整个事情 777 化,但这不是一个好主意。