请教一个关于 Linux 目录权限的问题

2017-09-11 15:56:06 +08:00
 siagasky

由于特殊需求想要指定某个目录及其所有子目录权限为 777, 目前已经知道可以通过 chmod -R 777 实现. 但是这样之后在此目录下新创建的目录还是没有 777 权限, 还需要再重新设置. 请问有什么 方法可以实现在此目录下创建的文件默认权限就是 777 吗?

3142 次点击
所在节点    Linux
14 条回复
knightdf
2017-09-11 16:04:40 +08:00
mkdir -m 777
jones
2017-09-11 16:09:20 +08:00
umask
blueionic
2017-09-11 16:35:07 +08:00
umask 000 就好啦,以后创建的文件夹全是 777,文件全是 666
siagasky
2017-09-11 16:46:35 +08:00
@knightdf 谢谢, 我试下
siagasky
2017-09-11 16:47:28 +08:00
@jones
@blueionic
谢谢, 不过 umask 方法似乎是整个系统新建目录的权限都变成 777 了? 我只是想在一个已知目录下新建的子目录都是 777.
ZackB0T
2017-09-11 17:14:09 +08:00
Winscp 文件夹权限有个勾选项 大概是“循环设置权限”,之后这个文件下新建文件夹权限和设置这个保持一样。命令就不清了。man 下 chmod 看看
csensix
2017-09-11 17:18:32 +08:00
如果是通过程序来创建目录,应该有对应命令可以再目录创建后修改权限
Sh888
2017-09-11 17:45:48 +08:00
分区启用 acl 可以继承文件夹权限。http://wdj01.blog.51cto.com/1059856/677511
seers
2017-09-11 17:48:47 +08:00
写个脚本定时遍历一遍?
Tink
2017-09-11 18:53:06 +08:00
setfacl
erlinux
2017-09-11 19:07:07 +08:00
setfacl -m u::rwX -R <PATH>
setfacl -m d:u::rwX <PATH>
前者将现有目录内容递归设置为 777 权限,后者设置默认 ACL 权限(后续 folder 即按照 default 处理)

至于 “-X ” 表示只为目录设置执行权限,文件并不会被递归到执行权限。

这是 Red Hat Certified Engineer (RHCE)的内容 = 。 =
erlinux
2017-09-11 19:10:46 +08:00
至于删除:

setfacl -x u:name,g:name file 删除文件的默认 ACL
setfacl -k directory 删除目录的默认 ACL
setfacl -b file 移除文件的所有 ACL


getfacl 用来查询。好了,下一个问题(逃
ila
2017-09-11 19:12:12 +08:00
@erlinux ヽ(〃∀〃)ノ
siagasky
2017-09-11 21:41:35 +08:00
@ZackB0T
@erlinux
@Tink
@seers
@Sh888
@csensix
谢谢各位, 我用 @erlinux 提供的方法实现了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/389769

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX