we got some dhrek we got some doneky we got some fienona
This commit is contained in:
@@ -76,6 +76,8 @@ func main () {
|
||||
delUserCommand := flag.NewFlagSet("deluser", flag.ExitOnError)
|
||||
delUserService := delUserCommand.String ("s", "router",
|
||||
"Service to delete the user for")
|
||||
delUserRmData := delUserCommand.Bool ("rmd", false,
|
||||
"Whether to remove the service's data directory")
|
||||
|
||||
authCommand := flag.NewFlagSet("auth", flag.ExitOnError)
|
||||
authService := authCommand.String ("s", "router",
|
||||
@@ -108,7 +110,7 @@ func main () {
|
||||
execAdduser(*addUserService)
|
||||
case "deluser":
|
||||
delUserCommand.Parse(subCommandArgs)
|
||||
execDeluser(*delUserService)
|
||||
execDeluser(*delUserService, *delUserRmData)
|
||||
case "auth":
|
||||
authCommand.Parse(subCommandArgs)
|
||||
execAuth(*authService, *authUser)
|
||||
@@ -144,55 +146,66 @@ func execHash (cost int, key string) {
|
||||
|
||||
func execAdduser (service string) {
|
||||
fullName := cli.ServiceUser(service)
|
||||
dataDir := cli.ServiceDir(service)
|
||||
|
||||
// BUSYBOX
|
||||
adduser, err := exec.LookPath("adduser")
|
||||
if err == nil {
|
||||
if adduser, err := exec.LookPath("adduser"); err == nil {
|
||||
// BUSYBOX
|
||||
addgroup, _ := exec.LookPath("addgroup")
|
||||
tryCommand (exec.Command(addgroup, fullName, "-S"),
|
||||
"could not add group")
|
||||
tryCommand (exec.Command(adduser, fullName, "-SHDG", fullName),
|
||||
"could not add user")
|
||||
return
|
||||
}
|
||||
|
||||
// GNU
|
||||
useradd, err := exec.LookPath("useradd")
|
||||
if err == nil {
|
||||
} else if useradd, err := exec.LookPath("useradd"); err == nil {
|
||||
// GNU
|
||||
tryCommand (exec.Command (
|
||||
useradd, fullName, "-rUM",
|
||||
"--shell", "/sbin/nologin"), "could not add user")
|
||||
return
|
||||
} else {
|
||||
cli.Sayf("could not add user: no command adduser or useradd\n")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
cli.Sayf("could not add user: no command adduser or useradd\n")
|
||||
os.Exit(1)
|
||||
// create data directory
|
||||
uid, gid, err := cli.LookupUID(fullName)
|
||||
if err != nil {
|
||||
cli.Sayf("could not create data dir: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
err = cli.MkdirFor(dataDir, int(uid), int(gid))
|
||||
if err != nil {
|
||||
cli.Sayf("could not create data dir: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
func execDeluser (service string) {
|
||||
func execDeluser (service string, rmData bool) {
|
||||
fullName := cli.ServiceUser(service)
|
||||
dataDir := cli.ServiceDir(service)
|
||||
|
||||
// BUSYBOX
|
||||
deluser, err := exec.LookPath("deluser")
|
||||
if err == nil {
|
||||
if deluser, err := exec.LookPath("deluser"); err == nil {
|
||||
// BUSYBOX
|
||||
tryCommand (exec.Command(deluser, fullName, "--remove-home"),
|
||||
"could not delete user")
|
||||
return
|
||||
}
|
||||
|
||||
// GNU
|
||||
userdel, err := exec.LookPath("userdel")
|
||||
if err == nil {
|
||||
} else if userdel, err := exec.LookPath("userdel"); err == nil {
|
||||
// GNU
|
||||
tryCommand (exec.Command(userdel, fullName, "-r"),
|
||||
"could not delete user")
|
||||
groupdel, _ := exec.LookPath("groupdel")
|
||||
tryCommand (exec.Command(groupdel, fullName),
|
||||
"could not delete group")
|
||||
return
|
||||
} else {
|
||||
cli.Sayf("could not delete user: no command deluser or userdel\n")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
cli.Sayf("could not delete user: no command deluser or userdel\n")
|
||||
os.Exit(1)
|
||||
// delete data directory
|
||||
if rmData {
|
||||
err := os.RemoveAll(dataDir)
|
||||
if err != nil {
|
||||
cli.Sayf("could not delete data dir: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func execAuth (service, user string) {
|
||||
|
||||
Reference in New Issue
Block a user