Find

查找特定文件夾,然後更改其所有權

  • July 2, 2020

我遇到了多個 Wordpress 網站的安全問題,我需要遞歸地更改文件夾“wp-content”(以及其中的任何內容)的所有權(和權限)。

我需要找到所有命名的文件夾wp-content(有幾個)並更改它們及其所有內容,以便它們歸nginx:nginx文件夾所有,權限為 755,文件權限為 644。

我想不出找到這些文件夾然後更改所有權的方法。

有什麼線索嗎?:/

您可以使用 GNUfind和 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 {} +

引用自:https://unix.stackexchange.com/questions/594824