#!/usr/bin/env bash # ============================================================ # set_mysql_permission.sh # MySQL, PostgreSQL, Redis 데이터 디렉터리 권한 설정 스크립트 # ============================================================ # 스크립트 실행 경로 기준 MYSQL_DIR="./mysql" PGDATA_DIR="./pgdata" REDIS_DIR="./redis" # ============================================================ # MySQL (Percona) 권한 설정 # ============================================================ echo "[MySQL] 데이터 디렉터리 권한 설정을 시작합니다..." echo "[MySQL] 대상 디렉터리: $MYSQL_DIR" if [ ! -d "$MYSQL_DIR" ]; then echo "[MySQL] $MYSQL_DIR 디렉터리가 존재하지 않아 새로 생성합니다." sudo mkdir -p "$MYSQL_DIR" fi # Percona의 mysql 유저 UID는 보통 1001 MYSQL_UID=1001 MYSQL_GID=1001 echo "[MySQL] 소유권을 $MYSQL_UID:$MYSQL_GID 로 변경합니다..." sudo chown -R ${MYSQL_UID}:${MYSQL_GID} "$MYSQL_DIR" echo "[MySQL] 권한을 750 (rwxr-x---) 으로 설정합니다..." sudo chmod -R 750 "$MYSQL_DIR" echo "[MySQL] 적용 결과:" ls -ld "$MYSQL_DIR" # ============================================================ # PostgreSQL 권한 설정 # ============================================================ echo "" echo "[PostgreSQL] 데이터 디렉터리 권한 설정을 시작합니다..." echo "[PostgreSQL] 대상 디렉터리: $PGDATA_DIR" if [ ! -d "$PGDATA_DIR" ]; then echo "[PostgreSQL] $PGDATA_DIR 디렉터리가 존재하지 않아 새로 생성합니다." sudo mkdir -p "$PGDATA_DIR" fi # PostgreSQL의 postgres 유저 UID는 보통 999 (공식 Docker 이미지 기준) POSTGRES_UID=999 POSTGRES_GID=999 echo "[PostgreSQL] 소유권을 $POSTGRES_UID:$POSTGRES_GID 로 변경합니다..." sudo chown -R ${POSTGRES_UID}:${POSTGRES_GID} "$PGDATA_DIR" echo "[PostgreSQL] 권한을 700 (rwx------) 으로 설정합니다..." sudo chmod -R 700 "$PGDATA_DIR" echo "[PostgreSQL] 적용 결과:" ls -ld "$PGDATA_DIR" # ============================================================ # Redis 권한 설정 # ============================================================ echo "" echo "[Redis] 데이터 디렉터리 권한 설정을 시작합니다..." echo "[Redis] 대상 디렉터리: $REDIS_DIR" if [ ! -d "$REDIS_DIR" ]; then echo "[Redis] $REDIS_DIR 디렉터리가 존재하지 않아 새로 생성합니다." sudo mkdir -p "$REDIS_DIR/data" sudo mkdir -p "$REDIS_DIR/conf" fi if ! sudo test -d "$REDIS_DIR/data"; then echo "[Redis] $REDIS_DIR/data 디렉터리가 존재하지 않아 새로 생성합니다." sudo mkdir -p "$REDIS_DIR/data" fi if ! sudo test -d "$REDIS_DIR/conf"; then echo "[Redis] $REDIS_DIR/conf 디렉터리가 존재하지 않아 새로 생성합니다." sudo mkdir -p "$REDIS_DIR/conf" fi # Redis의 redis 유저 UID는 보통 999 (공식 Docker 이미지 기준) REDIS_UID=999 REDIS_GID=999 echo "[Redis] 소유권을 $REDIS_UID:$REDIS_GID 로 변경합니다..." sudo chown -R ${REDIS_UID}:${REDIS_GID} "$REDIS_DIR" echo "[Redis] 권한을 750 (rwxr-x---) 으로 설정합니다..." sudo chmod -R 750 "$REDIS_DIR" echo "[Redis] 적용 결과:" sudo ls -ld "$REDIS_DIR" sudo ls -la "$REDIS_DIR" # ============================================================ # 완료 # ============================================================ echo "" echo "[완료] 모든 권한 설정이 완료되었습니다."