如何使用Puppet文件资源为目录赋予与其文件不同的权限?

时间:2013-08-20 13:48:34

标签: ruby linux puppet

我想使用Puppet来管理目录。我希望该目录由用户root和组admin拥有,具有0770权限。

我希望目录中的所有文件都由用户apache和具有0600权限的组管理员拥有。

我还没有找到一种方法来使用Puppet中的文件资源来实现这一目标。我尝试过使用两种资源:

file { 'phpsessions_files':
    path => '/var/phpsessions',
    ensure => directory,
    owner => 'apache',
    group => 'admin',
    mode => 0600,
    recurse => true,
    before => File['phpsessions_dir'],
}

file { 'phpsessions_dir':
    path => '/var/phpsessions',
    recurse => false,
    owner => 'root',
    group => 'admin',
    mode => 0770,
}

但是我不允许在同一条路径上创建两个文件资源,我看不到如何用一个资源实现我想要的东西。

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

创建一个包含exec的define,以在递归后更改目录的模式。

http://projects.puppetlabs.com/projects/1/wiki/File_Permission_Check_Patterns

答案 1 :(得分:0)

据我所知,这在p中是不可能的。我将仅管理 以下

  file { 'phpsessions_dir':
      path => '/var/phpsessions',
      recurse => false,
      owner => 'root',
      group => 'admin',
      mode => 0770,
  }
如果

php / apache未在php.ini中进行修复,则应该使用正确的权限在该文件夹中创建文件。如果您担心会发生其他事情并更改权限,请退回到cron作业,或者最好使用systemd.timer进行周期性检查并更正