mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-10-12 16:36:12 +08:00
37 lines
931 B
Go
37 lines
931 B
Go
package cmd
|
|
|
|
import (
|
|
"os/exec"
|
|
"strings"
|
|
)
|
|
|
|
func CheckIllegal(args ...string) bool {
|
|
if args == nil {
|
|
return false
|
|
}
|
|
for _, arg := range args {
|
|
if strings.Contains(arg, "&") || strings.Contains(arg, "|") || strings.Contains(arg, ";") ||
|
|
strings.Contains(arg, "$") || strings.Contains(arg, "'") || strings.Contains(arg, "`") ||
|
|
strings.Contains(arg, "(") || strings.Contains(arg, ")") || strings.Contains(arg, "\"") ||
|
|
strings.Contains(arg, "\n") || strings.Contains(arg, "\r") || strings.Contains(arg, ">") || strings.Contains(arg, "<") {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
func SudoHandleCmd() string {
|
|
cmd := exec.Command("sudo", "-n", "ls")
|
|
if err := cmd.Run(); err == nil {
|
|
return "sudo "
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func Which(name string) bool {
|
|
stdout, err := RunDefaultWithStdoutBashCf("which %s", name)
|
|
if err != nil || (len(strings.ReplaceAll(stdout, "\n", "")) == 0) {
|
|
return false
|
|
}
|
|
return true
|
|
}
|