我已经在 Ubuntu 上设置了 Apache 和 vsftpd。我对 Linux 还很陌生,但我正在尝试弄清楚如何自动设置所有权。
当我通过 FTP 上传文件时,除非我将所有权设置为 www-data,否则我无法访问它们。
我每次上传内容时都需要这样做:
sudo chown -R www-data:www-data /folder/
如何实现这一点自动发生?
答案1
将所有文件/目录的组递归更改为 www-data 组
chgrp -R www-data /folder/
递归地向组授予写权限
chmod -R g+w /folder/
将所需的 ftp 用户添加到 www-data 组
usermod -a -G www-data ftp_user
现在 ftp_user 应该对 /folder/ 和子文件夹具有读/写权限。这意味着他/她可以上传文件,但这些文件的所有者和组为 ftp_user。换句话说,Web 服务器用户 (www-data) 将不具有对这些文件的写权限。为了解决这一矛盾,您可以在父目录上设置 SGID。
chmod g+s /folder/
从现在开始,ftp_user 创建的每个文件/目录的所有者都是 ftp_user,但组将自动更改为 www-data。