Linux

Puppet - 2.7.x - SGID 集

  • January 24, 2014

我試圖木偶化一個模組,該模組將確保我在伺服器上具有相同的路徑,用於儲存自定義 Web 應用程序的本地日誌文件。因此,我想設置 SGID 以確保即使文件/目錄歸 apache 所有,屬於文件管理器組的任何人仍然可以 rwx 到相同的資產。但是我在設置模式時遇到問題,我嘗試了數字(2775)和符號(u+rwx,g+rwxs,o+rw),但似乎都不起作用。以下是我看到的結果:

  • 數字:表現得像 775(完全忽略第一個值)。儘管根據文件,puppet 聲明支持 2775,但我懷疑 2.7.x 不支持它。
  • 符號:它有點工作,除了我最終得到以下(注意小寫的 t):drwxrwsrwt

還有其他方法嗎?我應該只執行一個 Exec 並執行一個 shell 命令來執行 chmod g+s 嗎?

更新 1.23.2014

很奇怪,所以我進行了與 Zoredache 相同的測試,結果如下:

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

在操作中,我沒有提到該模式是在 hiera 配置文件中設置的。我沒有提到它,因為我認為它不會導致問題。但是,當我在 hiera 配置中的模式(“2755”)周圍添加引號時,一切都開始按預期工作。

它似乎對我有用

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 對嗎?嘗試簡化您的規則,也許對您的 puppet 執行進行 strace,看看是否正在設置權限,然後被您沒想到的東西恢復。

引用自:https://serverfault.com/questions/569256