Freebsd

FreeBSD 腳本 - 與手動執行不同的結果 (tcsh)

  • May 6, 2017

這個問題之前已經在https://joomla.stackexchange.com/questions/20697/securing-a-joomla-installation-on-apache-mod-php中提出過,但它可能更適合這裡,因為它不是 Joomla 特定的。

我正在嘗試在 tcsh 中執行腳本,並從在命令行上單獨執行命令到執行腳本收到不同的結果。嘗試保護 public_html 下的所有目錄;並在之後為某些目錄分配更多開放權限(例如記憶體、日誌等)。

find ./public_html -type f ! -user apache -exec chmod 644 {} \;
find ./public_html -type d ! -user apache -exec chmod 755 {} \;
chmod -R 777 public_html/cache/
chmod -R 777 public_html/administrator/cache/
chmod -R 777 public_html/logs/
chmod -R 777 public_html/tmp/

在上面,我經常發現所有權限都受到限制,但例如記憶體、日誌或 tmp 目錄在執行腳本後不可寫。如果我在命令行上一個接一個地執行所有命令,它會按預期工作。如果您可能知道我應該看什麼,那就太好了?

感謝您的任何建議。

嗯,沒有答案 - 我仍然不確定為什麼它不能以這種方式工作,但我現在發現它find ...directory也包括目錄本身。所以我現在將 chmod 命令更改為

find public_html/cache/ public_html/administrator/cache/ public_html/logs/  -type f ! -user apache -exec chmod 666{} \;
find public_html/cache/ public_html/administrator/cache/ public_html/logs/ -type d ! -user apache -exec chmod 777{} \;

這對我行得通。我發現在連續執行 shell 期間,一旦遇到腳本無權訪問 chmod 的文件/目錄,它就會出錯。

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