我正在开发一个php应用程序,我想将/var/www安装到/w。我已经运行了chown -hR www-data:www-data /var/www
。
我想要实现的是能够使用我的本地帐户创建新的文件和目录,其中www数据作为所有者,www数据作为组,而不会出现问题。
因此,我决定使用sudo mount --bind /var/www /www
将/var/www装载到/www,这样所有本地帐户都可以修改它,文件和目录也将创建为www-data:www-data
,但我无法使其工作。
我想您在这里要找的是setfacl
命令,它为指定目录设置默认权限。装载目录后,请尝试以下操作:
sudo setfacl -d -m u:www-data:rwx /www
如果您也想更改现有权限,请添加-R
标志:
sudo setfacl -R -d -m u:www-data:rwx /www
我通过采取这些步骤解决了这个问题。
- 已安装程序包bindfs
sudo apt install bindfs
- 将自己添加到www数据组
sudo usermod -a -G www-data "$LOGNAME"
- 在/etc/fstab中使用安装/var/www/shared/user到/home/user/Projects/www数据
/var/www/shared/user /home/user/Projects/www-data fuse.bindfs create-for-user=www-data,create-for-group=www-data,mirror=@www-data 0 0
在/home/user/Projects/www数据下创建的文件看起来像是用户所有,但创建为www-data:www-data
ls -l /home/user/Projects/www-data
:输出
drwxrwxr-x+ 2 user www-data 4096 Sep 11 08:40 project_1
ls -l /var/www/shared/user
:输出
drwxrwxr-x+ 2 www-data www-data 4096 Sep 11 08:40 project_1