问题描述
我有一台运行Ubuntu 12.10 x64的服务器,以及最新版本的vsFTPd。
我的用户example.com的主文件夹设置在/var/www/example.com
上,
我在其中创建了public_html文件夹,并为其赋予了777
权限,并删除了家庭用户文件夹的写入权限。一切正常,但:
我通过FTP(使用SmartFTP)上传的每个文件的chmod均为0。
我的vsftpd.conf
只有一行相关:
local_umask=022.
我尝试更改为:
file_open_mode=777
local_umask=002
因此,我的文件在上载后将立即获得775
。
但是只有我上传的文件夹获得了775
权限。
我上传的文件得到1411 permissions
有人可以帮我解决这个问题吗?
最佳思路
我最终使用
file_open_mode=0777
local_umask=022
在vsftpd.conf上。问题在于,FTP用户和www-data用户都需要写权限,因此我不得不将www-data和ftpuser加入www-data用户组,然后CHMOD -R 775 /var /www上的所有文件-使用775 CHMOD,即组将具有读取,写入和执行的权限。现在,它可以完美运行。
次佳思路
得到了我的答案:
由于www-data是负责Web服务器的用户,而您的普通用户是ftp服务器的负责人,因此您首先需要使他们成为同一组的成员:www-data组。
创建自定义用户:
useradd –d /var/www/asasd.com -g www-data -m yourusername
这样,主目录将为/var/www/asasd.com,而您的用户将位于www-data组中。
之后,通过键入passwd
更改用户密码。
然后,您需要在yourusername主文件夹中创建public_html文件夹,因为FTP不能在主文件夹的根目录中写入,所以您必须创建一个子文件夹。
删除yourusername文件夹chmod a-w /var/www/asasd.com
的写入权限
然后,为子文件夹应用新的权限:chmod -R 775 /var/www/asasd.com/public_html
(请注意,您必须使用775 chmod,因为您需要组写权限,而不是用户写权限,因为您希望整个组(ftp和www-data)都可以写),然后拥有该文件夹用于www-data chown -R www-data:www-data /var/www/asasd.com/public_html
这样,您必须能够使用FTP并使Web服务器正常工作。
祝好运!
有趣的是,此信息很难找到。人们不再共享知识了吗?