2026 OpenClaw MeshMac 실전: 공유 노드에서 프로젝트별 설정 디렉터리·로그 경로 분리와 최소 권한 재현 단계
한 대의 MeshMac에 OpenClaw를 여러 프로젝트가 공유하면 설정·로그·토큰이 섞입니다. 본문은 슬러그별 루트, 로그 볼륨·하위 경로, 최소 스코프 토큰으로 나누는 표·명령·체크포인트입니다. 환경 템플릿·시크릿·최소 권한 시크릿·OpenClaw 허브와 함께 보세요.
왜 한 노드에서 섞이면 위험한가
- 설정 드리프트: 전역
~/.openclaw공유 시 한 프로젝트 실험이 다른 배포에 전파됩니다. - 로그 혼선: 한 파일에 다팀이 쓰면 장애 추적·감사 증거가 흐려집니다.
- 토큰 과잉: 범용 키는 스크립트 한 줄로 타 고객 웹훅까지 위험해 스코프 분리가 필요합니다.
설정·로그·토큰 결정 매트릭스
| 항목 | 프로젝트별 디렉터리 | 로그 볼륨(분리 마운트) | 단일 디스크 하위 경로 |
|---|---|---|---|
| 설정 루트 | /srv/meshmac/proj/<slug>/config |
스냅샷·백업 단위 명확 | 단일 디스크에 단순 |
| 로그 | .../logs 고정 |
볼륨만 분리해 용량 격리 | 슬러그별 logrotate |
| 토큰 | 프로젝트별 파일 600 |
금고 경로 분리 | 런처가 경로 주입 |
클러스터 설치·설정 동기화와 흐름을 맞추세요.
배포 단계·검증 명령
① 프로젝트 루트·슬러그 고정
운영 합의 슬러그로 디렉터리를 만듭니다.
export PROJ_SLUG=acme-ios
sudo install -d -o meshrun -g "proj_${PROJ_SLUG}" -m 0750 "/srv/meshmac/proj/${PROJ_SLUG}"/{config,logs,run}
sudo chmod g+s "/srv/meshmac/proj/${PROJ_SLUG}/logs"
검증
stat -f "%Sp %Su:%Sg" "/srv/meshmac/proj/${PROJ_SLUG}/config"
② 런처 래퍼로 경로 주입
바이너리 대신 슬러그 래퍼만 노출합니다.
cat > /usr/local/bin/openclaw-proj <<'SH'
#!/bin/sh
SLUG="$1"; shift
export OPENCLAW_CONFIG_ROOT="/srv/meshmac/proj/${SLUG}/config"
export OPENCLAW_LOG_DIR="/srv/meshmac/proj/${SLUG}/logs"
exec /opt/openclaw/bin/openclaw "$@"
SH
chmod 755 /usr/local/bin/openclaw-proj
검증
openclaw-proj "${PROJ_SLUG}" doctor 2>&1 | head
③ 토큰 파일·금고 경로 분리
시크릿은 렌더 후 해당 config만.
install -m 600 -o meshrun -g "proj_${PROJ_SLUG}" \
/run/secrets/openclaw_${PROJ_SLUG}_token \
"/srv/meshmac/proj/${PROJ_SLUG}/config/api.token"
ls -la "/srv/meshmac/proj/${PROJ_SLUG}/config/api.token"
검증
test "$(stat -f '%A' "/srv/meshmac/proj/${PROJ_SLUG}/config/api.token")" = "600" && echo OK_PERMS
④ 로그 볼륨 또는 회전 정책
볼륨 분리 시 프로젝트별 보존·삭제가 쉽고, 단일 디스크면 슬러그별 logrotate 스텐실을 둡니다.
touch "/srv/meshmac/proj/${PROJ_SLUG}/logs/openclaw.log"
검증
ls -la "/srv/meshmac/proj/${PROJ_SLUG}/logs" | wc -l
⑤ 감사 훅·헬스
기동 시 슬러그·설정 해시를 로그에 남깁니다.
logger -t meshmac-proj "slug=${PROJ_SLUG} config_sha=$(shasum -a256 "/srv/meshmac/proj/${PROJ_SLUG}/config"/*.yaml 2>/dev/null | head -c16)"
검증
log show --predicate 'eventMessage CONTAINS "meshmac-proj"' --last 5m | tail -n 3
트러블슈팅 체크포인트
- 권한 거부: 실행 유저가
proj_슬러그보조 그룹인지id -Gn으로 확인. - 로그 경로 오류: 래퍼 생략·프로파일 덮어쓰기 여부를
env | grep OPENCLAW로 확인. - 토큰 유출: Git 유출 시 리비전 회수·금고 토큰 회전. 예방은 환경 템플릿 글과 동일.
인용 가능 기준
- 시크릿 파일: 600·서비스 계정 단일 소유.
- 활성 슬러그 5~12개 넘으면 정리 런북 권장.
- 로그 보존 기본 30일 롤링·압축 합의.
FAQ
로그만 볼륨 분리하고 설정은 공유해도 되나요?
키·웹훅이 설정에 남으면 교차 유출 위험이 있어 설정도 프로젝트별로 나누고 공통은 읽기 전용 템플릿 주입이 안전합니다.
타 프로젝트 로그를 실수로 지웠을 때는?
그룹 분리·sticky bit·스냅샷, 삭제는 관리자 전용 휴지통 경로로 우회하세요.