🔧 Fix sudo dependency for root execution

 Root 사용자 지원 개선
- root 권한일 때 sudo 없이 실행
- sudo 미설치 시 적절한 안내 메시지
- Debian/Proxmox 환경 호환성 강화

🐛 해결된 문제:
- Debian 시스템에서 sudo 미설치로 인한 실행 실패
- root 권한 실행 시 불필요한 sudo 호출

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
PharmQ Admin 2025-09-22 11:25:24 +00:00
parent 46b1580e52
commit 560de20778

View File

@ -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