Puppetにおけるディレクトリ作成時の権限仕様
※過去にまとめたwikiからの移行記事
puppetでは、fileリソースタイプを使用してディレクトリを作成すると、 読み取り許可が設定されている場合に実行権限が付加される仕様がある。
具体例
/tmp直下にtestディレクトリを作成。 root:wheelの644で設定する。
file {'/tmp/test':
ensure => directory,
owner => 'root',
group => 'wheel',
mode => '0644',
}
実行する。
[vagrant@localhost ~]$ sudo puppet apply directory.pp Notice: Compiled catalog for localhost.localdomain in environment production in 0.07 seconds Notice: /Stage[main]/Main/File[/tmp/test]/ensure: created Notice: Applied catalog in 0.02 seconds [vagrant@localhost ~]$ [vagrant@localhost ~]$ [vagrant@localhost ~]$ ls -l /tmp/ total 40 drwxr-xr-x. 2 root wheel 4096 Nov 30 13:19 test #rwxr-xr-x(655) -rw-r--r--. 1 root root 22256 Nov 24 07:27 vboxguest-Module.symvers -rw-------. 1 root root 286 Nov 23 10:29 yum_save_tx-2018-11-23-10-29tO5wVu.yumtx -rw-------. 1 root root 286 Nov 23 10:33 yum_save_tx-2018-11-23-10-33Zm7Doq.yumtx -rw-------. 1 root root 286 Nov 24 09:47 yum_save_tx-2018-11-24-09-47zwLb4x.yumtx
testディレクトリのmodeは644に指定しているにもかかわらず、実際は655で作成されている。
これは仕様であり、puppetでは読み取り許可が設定されている場所に実行許可を設定する。
リソースタイプドキュメントより引用
When specifying numeric permissions for directories, Puppet sets the search permission wherever the read permission is set.
ディレクトリに対する数値アクセス権を指定する場合、Puppetは読み取り許可が設定されている場所で検索許可を設定します。