系统:CentOS 版本 6.4(最终版)
问题:在同一系统中具有相同的umask:022,但在/B/test/2018
文件夹中创建文件夹和移动文件时有奇怪的继承问题
test@CMS-OPER-01 ~]$ umask
0022
流程工作:
Tomcat 以 root 身份运行:
[test@CMS-OPER-01 ~]$ ps aux | grep tomcat root 15633 2.1 3.4 14387604 1118180 ? Sl 2017 2848:00 /usr/java/default/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -XX:PermSize=256m -XX:MaxPermSize=256m -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
Web 应用程序确实将文件从文件夹移动
/A/test/2018
到/B/test/2018
系统中的存储挂载:
[test@OPER-01 201801]$
1.1.1.10:/hnas1-data01
200T 176T 25T 88% /A
1.1.1.11:/hnas1-data02
200T 72T 129T 36% /B
父文件夹相同权限:
[test@OPER-01 -]$ getfacl /A/test/201801
getfacl: Removing leading '/' from absolute path names
# file: A/test/201801
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
[test@OPER-01 -]$ getfacl /B/test/201801
getfacl: Removing leading '/' from absolute path names
# file: B/test/201801
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
在父文件夹中创建文件夹,移动的文件具有不同的权限,尽管具有相同的 umask 022:
[test@OPER-01 -]$ getfacl /A/test/201801/*
# file: A/test/201801/197275
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
[test@OPER-01 -]$ getfacl /B/test/201801/*
# file: B/test/201801/197258
# owner: root
# group: root
user::rwx
group::r-x
other::--x
答案1
umask 和默认 ACL(在您的情况下不存在)仅影响新创建的对象。即对于常规文件,必须执行某个进程open()
(或者mkdir()
对于目录。
权限在创建时确定(根据open()
参数、umask 和可能的默认 ACL)并存储在 inode 中。
如果文件刚刚移动(在文件系统内),rename()
则会调用该文件,并且此系统调用根本不会影响 inode,只会影响文件系统层次结构中显示的位置。