使用 Ubuntu 12.04 和 VSFTPD 全新设置 LAMP 服务器。
我正在尝试/var/www
使用 FTP 用户访问该文件夹(Web 根目录)。
我创建了一个新用户ftpuser
并将其添加到www-data
Apache 自动创建的用户组。
该用户的主目录设置为/var/www
。我还将 的所有权更改为/var/www
组www-data
,并将 的权限更改为02775
。
但是,我仍然无法上传文件。错误是:“553 无法创建文件”。
- 有人可以向我解释如何正确设置这些权限吗?
- 正确的设置是什么?我应该将主目录设置为
ftpuser
还是/var/www
其他方式?
我在网上找到了很多主题,但没有一个能提供通用的解决方案。
谢谢你!
更新:
ls -l
以下是的输出/var/www
:
drwxr-sr-x 3 root ftpuser 4096
文件内容vsftpd.conf
:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=ftpuser
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
答案1
root
问题是因为您的文件夹由而不是拥有ftpuser
。
要修复它,请运行:
sudo chown -R ftpuser:nogroup /var/www/ftuuserfolder
答案2
我发现我设置了正确的所有权,但没有设置正确的权限。
例如,如果您的文件夹由用户“ftpuser”和组“www-data”拥有,那么......
drwxr-sr-x 3 ftpuser www-data 4096
那你可能还没跑……
sudo chmod -R g+w /var/www/ftpuserfolder
这为拥有这些文件/文件夹的组授予写权限。
答案3
对我来说没什么用。我发现初始目录我的 FTP 客户端中没有设置任何内容,因此它尝试访问 Linux 根目录。我先将其清空,因为我认为它会选择用户主目录。
我必须指定项目的完整路径。