ACL default::マスクは新しいファイルには使用されません。

ACL default::マスクは新しいファイルには使用されません。

次のACLルール設定を含むディレクトリがあります。

cd /nobackupp13/jrwrigh7
getfacl .

わかりました。

# file: .
# owner: jrwrigh7
# group: a1983
user::rwx
group::r-x
group:a1983:r-x
mask::r-x
other::---
default:user::rwx
default:group::r-x
default:group:a1983:r-x
default:mask::r-x
default:other::---

ただし、このディレクトリにテストファイルを作成すると、デフォルト値はmask適用されず、ファイルに対する権限は次のようにr--制限されますr-x

cd /nobackupp13/jrwrigh7
touch testfile
getfacl testfile

わかりました。

# file: testfile
# owner: jrwrigh7
# group: a1983
user::rw-
group::r-x                      #effective:r--
group:a1983:r-x                 #effective:r--
mask::r--
other::---

umaskACLの適用を受けるとします(参照https://serverfault.com/q/349145/530204 )、とにかく結果は次のとおりですumask

cd /nobackupp13/jrwrigh7
umask

わかりました。

077

これをブロックする他の権限システムがありますか?

究極の目標は、r-xこのグループがこのディレクトリに作成されたすべてのファイルを生成することですa1983。私がこれを経験したのは、私の研究グループが管理管理権限を持たないコンピュータ上のお互いのファイルにアクセス/実行するのに問題があるからです。所有者が設定したかどうかにかかわらず、すべてのスクリプトファイルが実行可能であることを保証したいと思います。

ベストアンサー1

一般情報

ファイルを生成するためにシステムコールを行うときに設定がopen()ありますmode。ファイルが受け取るすべての権限は、modeこのパラメーターで要求する必要があります。

親ディレクトリにデフォルトのACLがない場合、ファイルの権限modeumask

親ディレクトリにデフォルトのACLがある場合、これはmode所有者権限と他のすべてのユーザーの権限を決定します。

他のすべてのACLエントリは、変更されていないデフォルトのACLを使用します。同じ効果を得るために、ACLマスクは、ACLが明示的に設定されている場合など、項目に基づいて計算されず、代わりにグループACL_USER部分ACL_GROUPに設定されます。ACL_GROUPmode

modeマスク値は、基本 ACL と基本マスクによって決まります。これには、3つの要素すべてに含まれる権限のみが含まれます。したがって、デフォルトのマスクは通常縮小されますが、他の値も縮小するために使用できます。

プログラムが「奇妙に」動作すると、結果が混乱する可能性があります。たとえば、モードをgcc使用して出力ファイルを作成します666chmod()777

あなたの状況

  • touchモードを使用してファイルを作成します666
  • デフォルトのACL設定は次のとおりです。750
  • 結果(両方の権限を含む)はです640

おすすめ記事