「public_html」(public_htmlではない)の下にある可能性のあるサブディレクトリの文字列全体で、すべてのユーザーアカウントのすべての「.htaccess」ファイル(ファイルが存在する場合、作成しない場合)を検索したいと思います。基本的に、画像を含む可能性のあるディレクトリにリモートで似ているものなら何でも見つけることができます。
これが私のコードです:
#!/bin/bash
cat /etc/domainusers | cut -f1 -d: | while read USER; do
find /home/$USER/public_html/ -type d -regex ".*\/public_html\/.*\(img.\|pic.\|pics.\|image.\|images.\|Image.\|Images.\|Pic.\|Pics.\|Img.\|picture.\|pictures.\|Picture.\|Pictures.\|upload.\|Upload.\|download.\|Download.\|Gallery\|gallery\|Galleries\|galleries\|import.\|Import.\|Thumbnail.\|Thumbnails.\|thumbnail.\|thumbnails.\|wpThumbnail.\|thumb.\|Thumb.\)" | while read FOLDER;
do
if [[ -e "$FOLDER/.htaccess" && ! $(grep "AddHandler cgi-script" "$FOLDER/.htaccess") ]]; then
echo -e "AddHandler cgi-script .php .pl .py .jsp .asp .htm .html .shtml .sh .cgi .php5 .php4 .php3 .phps .txt .bat .cmd .rb .txt .msi .exe .xml .xhtml\nOptions -ExecCGI -Indexes" >> "$FOLDER/.htaccess"
chattr +ia "$FOLDER/.htaccess"
fi
done
done
上記のスクリプトは問題なく実行されますが、実際には私が望んでいることを実行しません。ユーザーの画像ディレクトリを確認しましたが、そこに「.htaccess」ファイルが見つかりませんでした。:/
理想的には、実行中に何が起こっているかを画面に表示し、可能であれば、結果をテキストファイルに出力することもできます。