Puppet – 2.7.x – 设置SGID

我试图puppetize模块,这将确保我有相同的path在服务器上存储自定义Web应用程序的本地日志文件。 因此,我想设置SGID以确保即使文件/目录属于apache,属于文件pipe理组的任何人仍然可以rwx到相同的资源。 然而,我在设置模式有问题,我已经尝试了数字(2775)和符号(u + rwx,g + rwxs,o + rw),都没有出现工作。 以下是我见过的结果:

  • 数字 :看起来像775(完全忽略第一个值)。 尽pipe根据文档 ,傀儡说,2775被支持,我怀疑它不支持2.7.x.

  • 符号 :它有点作品,除了我结束以下(注意小写字母t):drwxrwsrwt

有另一种方法吗? 我应该运行一个Exec并运行一个shell命令来执行chmod g + s吗?

更新1.23.2014

奇怪,所以我跑了与Zoredache相同的testing,结果如下:

root@dev-a-1 /tmp/puppet # -> puppet --version 2.7.24 root@dev-a-1 /tmp/puppet # -> cat test.pp file { '/tmp/puppet/test_dir': ensure => directory, mode => 2755 } root@dev-a-1 /tmp/puppet # -> ls total 24 drwxr-xr-x. 3 root root 4096 Jan 23 22:03 . drwxrwxrwx. 8 root root 12288 Jan 23 22:00 .. drwxr-sr-x. 2 root root 4096 Jan 23 22:03 test_dir -rw-r--r--. 1 root root 67 Jan 23 22:03 test.pp 

更新1.23.2014#2

在操作中,我没有提及该模式是在hieraconfiguration文件中设置的。 我没有提到,因为我不认为这会造成这个问题。 但是,当我在hieraconfiguration中的模式(“2755”)上添加引号时,所有内容都按预期工作。

这似乎工作find我

 root@srv:~# puppet --version 2.7.23 root@srv:~# cat test.pp file {'/root/test.pp': mode => 2775 } root@srv:~# puppet apply test.pp notice: Finished catalog run in 0.06 seconds root@srv:~# ls -al test.pp -rwxrwsr-x 1 root root 40 Jan 22 22:54 test.pp 

愚蠢的问题,但底层的文件系统支持sgid权利? 尝试简化你的规则,也许你的傀儡运行一个strace,看看是否正在设置权限,然后被你没有想到的东西恢复。

文件系统(在你的情况/ tmp)可能会挂载nosuid选项。