Linux
Puppet - 2.7.x - SGID 集
我試圖木偶化一個模組,該模組將確保我在伺服器上具有相同的路徑,用於儲存自定義 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,看看是否正在設置權限,然後被您沒想到的東西恢復。