Find
查找特定文件夾,然後更改其所有權
我遇到了多個 Wordpress 網站的安全問題,我需要遞歸地更改文件夾“wp-content”(以及其中的任何內容)的所有權(和權限)。
我需要找到所有命名的文件夾
wp-content
(有幾個)並更改它們及其所有內容,以便它們歸nginx:nginx
文件夾所有,權限為 755,文件權限為 644。我想不出找到這些文件夾然後更改所有權的方法。
有什麼線索嗎?:/
您可以使用 GNU
find
和 GNUxargs
搜尋wp-content
目錄並將 NUL 終止的結果傳遞給 shell 腳本:find /path/to/directory -type d -name 'wp-content' -print0 | xargs -0 sh -c ' for dir; do # change user and group recursively to nginx chown -R nginx:nginx "$dir" # change dirs to 755 find "$dir" -type d -exec chmod 755 {} + # change files to 644 find "$dir" -type f -exec chmod 644 {} + done ' sh
或者,您可以將腳本部分保存在 shell 腳本中
myscript.sh
:#!/bin/sh for dir; do # change user and group recursively to nginx chown -R nginx:nginx "$dir" # change dirs to 755 find "$dir" -type d -exec chmod 755 {} + # change files to 644 find "$dir" -type f -exec chmod 644 {} + done
然後使shell腳本可執行
chmod +x myscript.sh
並使用該操作執行
find
(不一定是 GNU 實現)-exec
並將結果傳遞給腳本:find /path/to/directory -type d -name 'wp-content' -exec ./myscript.sh {} +