如何设置Linux目录下新建文件与文件夹默认权限为777
配置正确性判断
你当前使用setfacl的配置方式是正确的,可以满足folder目录下所有新建文件、子目录默认拥有777权限的需求,两条命令的作用如下:
setfacl -R -m default:other:rwX .:设置目录的默认ACL规则,后续该目录下所有新建的文件、子目录都会自动继承该规则,其中大写X参数只会给目录添加执行权限,普通文件不会额外加执行权限,符合常规权限设置逻辑:文件默认666、目录默认777。setfacl -R -m other:rwX .:给当前目录下已存在的所有文件、子目录批量设置other用户的读写/执行权限,覆盖配置前已经存在的旧文件权限。
其他可实现需求的方案
方案1:修改umask值
umask是Linux系统用于控制新建文件默认权限的掩码,如果你可以接受全局/当前会话所有新建文件都默认777权限,可以直接设置umask为000:
临时生效(当前会话有效):umask 000
永久生效(全局所有用户):在/etc/profile文件末尾添加umask 000,执行source /etc/profile生效
永久生效(仅当前用户):在~/.bashrc文件末尾添加umask 000,执行source ~/.bashrc生效
注意:该方案会影响所有位置的新建文件权限,安全性极低,仅适合纯测试环境使用。方案2:inotify监听目录自动改权限
如果你不想使用ACL规则,可以安装inotify-tools工具,监听folder目录的新建事件,触发后自动修改权限:- 安装工具:以CentOS为例执行
yum install inotify-tools -y - 执行监听命令:
也可以将该逻辑写成systemd服务实现开机自动后台运行。nohup inotifywait -m -r -e create /path/to/folder | while read path action file; do chmod -R 777 "$path$file"; done &- 安装工具:以CentOS为例执行
方案3:文件共享服务内置权限配置
如果该目录是Samba/NFS共享目录,可以直接在共享服务的配置文件中指定权限规则,以Samba为例:
在smb.conf对应共享目录的配置块中添加以下参数:
重启Samba服务后,所有通过共享创建的文件、目录都会自动设置为777权限。create mask = 0777 directory mask = 0777 force create mode = 0777 force directory mode = 0777
注意:777属于全开放权限,任何用户都可以对目录下的文件进行读写、执行、删除操作,非必要场景不建议使用,避免出现安全风险。
内容的提问来源于stack exchange,提问作者noze_potato
相关产品推荐
相关产品推荐

