システム: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
/A/test/2018
Webアプリケーションはフォルダから別のフォルダにファイルを移動します。/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 にまったく影響を与えず、ファイルシステム階層に表示されている場所にのみ影響を与える場合に呼び出されます。