我正在运行一个服务器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
有人能帮我解决这个问题吗?
答案1
我最终使用了
file_open_mode=0777
local_umask=022
在 vsftpd.conf 上。问题是 FTP 用户和 www-data 用户都需要写入权限,所以我必须将 www-data 和 ftpuser 加入 www-data 用户组,然后 CHMOD -R 775 删除 /var/www 上的所有文件 - 这样,使用 775 CHMOD,该组将具有读取、写入和执行的权限。现在它运行正常。
答案2
得到了我的答案:
由于 www-data 是负责网络服务器的用户,而普通用户负责 ftp 服务器,因此您首先需要让他们成为同一组的成员:www-data 组。
创建自定义用户:
useradd –d /var/www/asasd.com -g www-data -m yourusername
这样主目录将成为/var/www/asasd.com你的用户将会www-数据团体。
此后,通过键入来更改用户密码passwd
。
然后,你需要创建一个公共的html文件夹内的您的用户名主文件夹,因为 FTP 无法在主文件夹的根目录中写入,所以您必须创建一个子文件夹。
删除您的写入权限您的用户名文件夹
chmod a-w /var/www/asasd.com
然后,为子文件夹应用新权限:(
chmod -R 775 /var/www/asasd.com/public_html
请注意,您必须使用 775 chmod,因为您需要组写入权限,而不是用户写入权限,因为您希望整个组(ftp 和 www-data)能够写入)然后,拥有该文件夹的www-数据
chown -R www-data:www-data /var/www/asasd.com/public_html
这样,您就必须能够使用 FTP 并且使 Web 服务器正常运行。
祝你好运!
有趣的是,这些信息很难找到。人们不再分享知识了吗?
答案3
我也遇到过这样的问题:当我通过 ftp 上传文件时,文件权限被更改。这个问题可以通过修改我的vsftpd.conf
local_umask=val(like 022,007,etc.,)
答案4
您需要更改该文件的所有权:
chown root:root /home/username