centos linux 中权限继承奇怪

centos linux 中权限继承奇怪

系统: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,只会影响文件系统层次结构中显示的位置。

相关内容