- Upgrade Go version from 1.21 to 1.25.0 - Update golang.org/x/sys dependency to v0.42.0 - Add Unix/Linux admin check using os.Geteuid() with sudo requirement - Add Windows admin check using windows.SID and token membership validation - Integrate admin privilege validation into main CLI entry point - Enhance monitor.go with graceful signal handling for Ctrl+C interrupts - Add signal channels for clean shutdown of monitoring loop - Ensures VPN client runs with required elevated privileges on both platforms
28 lines
539 B
Go
28 lines
539 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
"vpn-client/internal/admin"
|
|
"vpn-client/internal/cli"
|
|
"vpn-client/internal/config"
|
|
)
|
|
|
|
func main() {
|
|
// Проверка прав администратора
|
|
admin.RequireAdmin()
|
|
|
|
// Инициализация конфигурации
|
|
if err := config.Init(); err != nil {
|
|
fmt.Fprintf(os.Stderr, "Ошибка инициализации: %v\n", err)
|
|
os.Exit(1)
|
|
}
|
|
|
|
// Запуск CLI
|
|
if err := cli.Run(); err != nil {
|
|
fmt.Fprintf(os.Stderr, "Ошибка: %v\n", err)
|
|
os.Exit(1)
|
|
}
|
|
}
|