diff --git a/cmd/server/cmd/app.go b/cmd/server/cmd/app.go index a509fbc0c..d9a7c780e 100644 --- a/cmd/server/cmd/app.go +++ b/cmd/server/cmd/app.go @@ -3,11 +3,12 @@ package cmd import ( "bytes" "fmt" + "io" + "github.com/1Panel-dev/1Panel/backend/utils/files" "github.com/1Panel-dev/1Panel/cmd/server/app" "github.com/pkg/errors" "github.com/spf13/cobra" - "io" ) var ( @@ -31,6 +32,10 @@ var initCmd = &cobra.Command{ Use: "init", Short: "初始化应用", RunE: func(cmd *cobra.Command, args []string) error { + if !isRoot() { + fmt.Println("请使用 sudo 1pctl app init 或者切换到 root 用户") + return nil + } if len(args) > 0 { appKey = args[0] if len(args) > 1 { diff --git a/cmd/server/cmd/reset.go b/cmd/server/cmd/reset.go index fe74e53fa..d398b967c 100644 --- a/cmd/server/cmd/reset.go +++ b/cmd/server/cmd/reset.go @@ -1,6 +1,8 @@ package cmd import ( + "fmt" + "github.com/spf13/cobra" ) @@ -22,6 +24,10 @@ var resetMFACmd = &cobra.Command{ Use: "mfa", Short: "取消 1Panel 两步验证", RunE: func(cmd *cobra.Command, args []string) error { + if !isRoot() { + fmt.Println("请使用 sudo 1pctl reset mfa 或者切换到 root 用户") + return nil + } db, err := loadDBConn() if err != nil { return err @@ -34,6 +40,10 @@ var resetSSLCmd = &cobra.Command{ Use: "https", Short: "取消 1Panel https 方式登录", RunE: func(cmd *cobra.Command, args []string) error { + if !isRoot() { + fmt.Println("请使用 sudo 1pctl reset https 或者切换到 root 用户") + return nil + } db, err := loadDBConn() if err != nil { return err @@ -46,6 +56,10 @@ var resetEntranceCmd = &cobra.Command{ Use: "entrance", Short: "取消 1Panel 安全入口", RunE: func(cmd *cobra.Command, args []string) error { + if !isRoot() { + fmt.Println("请使用 sudo 1pctl reset entrance 或者切换到 root 用户") + return nil + } db, err := loadDBConn() if err != nil { return err @@ -58,6 +72,10 @@ var resetBindIpsCmd = &cobra.Command{ Use: "ips", Short: "取消 1Panel 授权 IP 限制", RunE: func(cmd *cobra.Command, args []string) error { + if !isRoot() { + fmt.Println("请使用 sudo 1pctl reset ips 或者切换到 root 用户") + return nil + } db, err := loadDBConn() if err != nil { return err @@ -70,6 +88,10 @@ var resetDomainCmd = &cobra.Command{ Use: "domain", Short: "取消 1Panel 访问域名绑定", RunE: func(cmd *cobra.Command, args []string) error { + if !isRoot() { + fmt.Println("请使用 sudo 1pctl reset domain 或者切换到 root 用户") + return nil + } db, err := loadDBConn() if err != nil { return err diff --git a/cmd/server/cmd/root.go b/cmd/server/cmd/root.go index de765c70b..9c89a813f 100644 --- a/cmd/server/cmd/root.go +++ b/cmd/server/cmd/root.go @@ -2,6 +2,7 @@ package cmd import ( "fmt" + "os/user" "strings" "time" @@ -61,3 +62,11 @@ func getSettingByKey(db *gorm.DB, key string) string { func setSettingByKey(db *gorm.DB, key, value string) error { return db.Model(&setting{}).Where("key = ?", key).Updates(map[string]interface{}{"value": value}).Error } + +func isRoot() bool { + currentUser, err := user.Current() + if err != nil { + return false + } + return currentUser.Uid == "0" +} diff --git a/cmd/server/cmd/user-info.go b/cmd/server/cmd/user-info.go index ccaa484fe..951342a82 100644 --- a/cmd/server/cmd/user-info.go +++ b/cmd/server/cmd/user-info.go @@ -16,6 +16,10 @@ var userinfoCmd = &cobra.Command{ Use: "user-info", Short: "获取用户信息", RunE: func(cmd *cobra.Command, args []string) error { + if !isRoot() { + fmt.Println("请使用 sudo 1pctl user-info 或者切换到 root 用户") + return nil + } db, err := loadDBConn() if err != nil { return fmt.Errorf("init my db conn failed, err: %v \n", err) diff --git a/cmd/server/cmd/version.go b/cmd/server/cmd/version.go index 421aa380c..e40faff3e 100644 --- a/cmd/server/cmd/version.go +++ b/cmd/server/cmd/version.go @@ -18,6 +18,10 @@ var versionCmd = &cobra.Command{ Use: "version", Short: "获取系统版本信息", RunE: func(cmd *cobra.Command, args []string) error { + if !isRoot() { + fmt.Println("请使用 sudo 1pctl version 或者切换到 root 用户") + return nil + } db, err := loadDBConn() if err != nil { return err