워드프레스

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