我在 /var/www/html/ 文件夹中建立了 4 个网站。
- hbf 服务器
- 血流密度
- 转换函数
- 2e
我用来访问服务器的帐户是通过我的帐户harleyfrank
。
现在权限是 root:www-data 755,应该是递归的。但是,当我从我的帐户 harleyfrank 上传数据时,它只为我设置了许可,并且我因权限问题收到 apache 错误。
我关注了以下网站:
- 如何为publick_html中的所有文件和anly文件夹设置权限?
- 设置默认权限
- https://unix.stackexchange.com/questions/1314/how-to-set-default-file-permissions-for-all-folders-files-in-a-directory/1315#1315
- https://www.linuxquestions.org/questions/linux-desktop-74/applying-default-permissions-for-newly-created-files-within-a-specific-folder-605129/
- https://www.computerhope.com/unix/usetfacl.htm
但奇怪的是,它只将 harleyfrank:www-data 的读写权限应用于 harleyfrank。我不知道如何修复它。
更新日期:2018 年 1 月 15 日
根据 George 的回答,我尝试进行全局设置sudo setfacl -d -R -m u:root:rwx,g:www-data:rw,o::r /var/www/html
,但是它没有应用权限。上传文件时它仍然只使用我的用户名。
以下是 ACL 设置的权限:
getfacl: Removing leading '/' from absolute path names
# file: var/www/html
# owner: root
# group: www-data
user::rwx
group::rwx
other::r-x
default:user::rwx
default:user:root:rwx
default:group::r-x
default:group:www-data:rw-
default:mask::rwx
default:other::r--
在我创建的其中一个网络文件夹中ls -la
,结果如下。
drwxrwxr-x+ 3 root www-data 4096 Jan 15 19:52 .
drwxrwxr-x+ 6 root www-data 4096 Jan 12 21:35 ..
-rwxrwxr-x 1 root www-data 169 Jan 12 22:05 index.html
drwxrwxr-x+ 9 root www-data 4096 Jan 12 23:16 projects
-rw-rw-r--+ 1 harleyfrank harleyfrank 871 Jan 15 19:52 test_results.txt
我上传了 test_results.txt,但 apache 无法读取,因为它说我没有查看文件的权限。但是,它显示其他组中有读取权限。也许 apache2 正在使用 www-data 运行所有内容?
答案1
要修复此问题,请使用setfacl
命令设置权限和默认所有者:
sudo setfacl -d -R -m u:harleyfrank:rwX,g:www-data:rwX,o::r /var/www/html
信息:
-d
:设置为默认值,因此新文件夹将自动继承它-R
:递归-m
:修改现有的权限和所有权u:harleyfrank:rwX
:向用户提供root
rwx
文件夹和文件g:www-data:rwX
:授予用户www-data
文件夹的 rwX权限o::r
:授予其他人read
文件夹权限