From 560de20778ca1fc672c1bb3d50a208044edd2577 Mon Sep 17 00:00:00 2001 From: PharmQ Admin Date: Mon, 22 Sep 2025 11:25:24 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20Fix=20sudo=20dependency=20for=20?= =?UTF-8?q?root=20execution?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ✅ Root 사용자 지원 개선 - root 권한일 때 sudo 없이 실행 - sudo 미설치 시 적절한 안내 메시지 - Debian/Proxmox 환경 호환성 강화 🐛 해결된 문제: - Debian 시스템에서 sudo 미설치로 인한 실행 실패 - root 권한 실행 시 불필요한 sudo 호출 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- register-client-pharmq-live.sh | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/register-client-pharmq-live.sh b/register-client-pharmq-live.sh index e19a5b2..3335791 100755 --- a/register-client-pharmq-live.sh +++ b/register-client-pharmq-live.sh @@ -88,7 +88,11 @@ disconnect_existing() { local current_status=$(tailscale status --json 2>/dev/null || echo "{}") if echo "$current_status" | grep -q '"BackendState":"Running"'; then print_status "기존 Tailscale 연결을 해제합니다..." - sudo tailscale logout || true + if [ "$EUID" -eq 0 ]; then + tailscale logout || true + else + sudo tailscale logout || true + fi fi fi } @@ -99,11 +103,19 @@ register_to_headscale() { print_info "서버: $HEADSCALE_SERVER" # Tailscale을 Headscale 서버로 설정하고 등록 - sudo tailscale up \ - --login-server="$HEADSCALE_SERVER" \ - --authkey="$PREAUTH_KEY" \ - --accept-routes \ - --accept-dns=false + if [ "$EUID" -eq 0 ]; then + tailscale up \ + --login-server="$HEADSCALE_SERVER" \ + --authkey="$PREAUTH_KEY" \ + --accept-routes \ + --accept-dns=false + else + sudo tailscale up \ + --login-server="$HEADSCALE_SERVER" \ + --authkey="$PREAUTH_KEY" \ + --accept-routes \ + --accept-dns=false + fi } # 연결 상태 확인 @@ -139,10 +151,15 @@ main() { echo "==========================================" # 루트 권한 확인 - if [[ $EUID -ne 0 ]] && ! sudo -n true 2>/dev/null; then - print_error "이 스크립트는 sudo 권한이 필요합니다." + if [[ $EUID -ne 0 ]] && ! command -v sudo &> /dev/null; then + print_error "이 스크립트는 root 권한 또는 sudo가 필요합니다." + print_info "root로 실행하거나 sudo를 설치한 후 다시 시도하세요." exit 1 fi + + if [[ $EUID -ne 0 ]] && ! sudo -n true 2>/dev/null; then + print_info "sudo 권한이 필요합니다. 비밀번호를 입력해주세요." + fi # 단계별 실행 install_tailscale