ワードプレス

Wordpress

1. 目標

  • アップロード パスの検索後に適切な権限を付与するタスクを実行します。

    • ディレクトリ 755

    • ファイル 644

2. 説明

  • 権限検査: find "$UPLOADS_DIR" - type d! - perm 755find "$UPLOADS_DIR" - type f! - perm 644 コマンドを使用して、権限が正しくないディレクトリとファイルを探します。

  • ユーザーに聞く: 権限が正しくない場合は、ユーザーに変更するかどうかを尋ねます。

  • ユーザー入力処理:ユーザーがyesまたはyを入力すると権限を変更し、そうでない場合は権限変更をスキップします。

3. コード

set_permissions.sh

#!/bin/bash

# wp-content ディレクトリ検索
echo "wp-content ディレクトリを探しています。..."
WPCONTENT_DIRS=$(find / -type d -name "wp-content" 2>/dev/null)

# wp-content ディレクトリを見つけたかどうかを確認
if [ -z "$WPCONTENT_DIRS" ]; then
  echo "wp-content ディレクトリが見つかりません。"
  exit 1
fi

# 見つかったすべてのwp-contentディレクトリに対して作業を実行
for WPCONTENT_DIR in $WPCONTENT_DIRS; do
  echo "wp-content ディレクトリ: $WPCONTENT_DIR"
  
  # uploads ディレクトリ設定
  UPLOADS_DIR="$WPCONTENT_DIR/uploads"

  # uploads ディレクトリの存在確認
  if [ ! -d "$UPLOADS_DIR" ]; then
    echo "uploadsディレクトリが$UPLOADS_DIRに存在しません。"
    continue
  fi

  echo "uploads ディレクトリ: $UPLOADS_DIR"

  # 権限検査
  DIR_PERM=$(find "$UPLOADS_DIR" -type d ! -perm 755)
  FILE_PERM=$(find "$UPLOADS_DIR" -type f ! -perm 644)

  if [ -z "$DIR_PERM" ] && [ -z "$FILE_PERM" ]; then
    echo "ディレクトリとファイル権限はすでに正しく設定されています。"
    continue
  else
    echo "ディレクトリまたはファイル権限が正しくありません。"
    echo "変更しますか? (yes(y)/no(n))"
    read answer
    if [ "$answer" = "yes" ] || [ "$answer" = "y" ]; then
      # ディレクトリ権限設定
      find "$UPLOADS_DIR" -type d -exec chmod 755 {} \;
      echo "ディレクトリ権限が755に設定されました。"

      # ファイル権限設定
      find "$UPLOADS_DIR" -type f -exec chmod 644 {} \;
      echo "ファイル権限が 644 に設定されました。"

      echo "権限設定が完了しました。"
    else
      echo "権限設定をスキップします。"
      continue
    fi
  fi
done

4. 実行

Last updated