o2o-infrakit/compose/set_mysql_permission.sh

103 lines
3.4 KiB
Bash
Executable File

#!/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 "[완료] 모든 권한 설정이 완료되었습니다."