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
相关产品推荐
相关产品推荐

