You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu Linux下设置/data目录默认文件夹权限为774求助

嘿,我来帮你搞定这个目录默认权限的问题!你怀疑umask是关键因素完全没错,但还要结合ACL的默认规则来调整,咱们一步步来操作:

1. 先检查www-data的当前umask值

目录的默认权限是777减去umask计算出来的,你现在创建的目录权限是345,对应的umask应该是432(777-345=432),这显然不符合常规设置。

先切换到www-data用户查看当前umask:

sudo su - www-data -s /bin/bash
umask
exit

如果输出确实是432,咱们先把它调整到合理值。

2. 调整www-data的umask为002

要让这个设置永久生效,有两种方式:

  • 全局生效:编辑/etc/bash.bashrc或者/etc/profile,添加一行:
    umask 002
    
  • 仅针对www-data:如果这个用户有home目录,编辑/home/www-data/.bashrc;如果没有,也可以在/etc/skel/.bashrc(新用户模板文件)里添加同样的行。

设置后,重新切换到www-data用户,再执行umask确认已经变成002。

3. 设置/data目录的默认ACL规则

因为你要让www-data创建的子目录继承正确的权限和属主属组,必须给/data设置默认ACL(访问控制列表):

首先确保acl工具已经安装:

sudo apt-get install acl

然后执行下面的命令设置默认ACL:

sudo setfacl -d -m u:www-data:rwx /data
sudo setfacl -d -m g:www-data:rwx /data
sudo setfacl -d -m o:r-- /data

这些命令的作用:

  • -d:标记为默认ACL,后续在/data下创建的所有文件/目录都会自动继承这些规则
  • u:www-data:rwx:给www-data用户默认分配读、写、执行权限
  • g:www-data:rwx:给www-data用户组默认分配读、写、执行权限
  • o:r--:给其他用户仅分配读权限

设置完成后,用getfacl /data检查,应该能看到类似下面的默认规则段:

default:user::rwx
default:user:www-data:rwx
default:group::r-x
default:group:www-data:rwx
default:other::r--
4. 验证设置是否生效

切换到www-data用户,在/data下创建一个测试目录,然后查看权限:

sudo su - www-data -s /bin/bash
mkdir /data/test_check
ls -ld /data/test_check
exit

正常情况下,输出应该是drwxrwxr-- 2 www-data www-data 4096 ... /data/test_check,也就是权限为774,属主和属组都是www-data,完全符合你的需求。

如果还有问题,记得检查/data目录本身的权限,确保它的属主/属组是www-data,且权限至少是drwxrwxr-x(775),这样www-data才能在里面正常创建子目录。

内容的提问来源于stack exchange,提问作者Asma.Said

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:05:41