Freebsd
FreeBSD 腳本 - 與手動執行不同的結果 (tcsh)
這個問題之前已經在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 的文件/目錄,它就會出錯。