unlock user only if it locked

Signed-off-by: Vasiliy Tolstov <v.tolstov@selfip.ru>
This commit is contained in:
Василий Толстов 2015-06-04 14:08:41 +03:00
parent bafcbde165
commit 8e1ce09b0d

View File

@ -81,13 +81,27 @@ func CreateUser(u *config.User) error {
return nil return nil
} }
func IsLockedUser(u *config.User) bool {
output, err := exec.Command("getent", "shadow", u.Name).CombinedOutput()
if err == nil {
fields := strings.Split(string(output), ":")
if len(fields[1]) > 1 && fields[1][0] == '!' {
return true
}
}
return false
}
func LockUnlockUser(u *config.User) error { func LockUnlockUser(u *config.User) error {
args := []string{} args := []string{}
if u.LockPasswd { if u.LockPasswd {
args = append(args, "--lock") args = append(args, "-l")
} else { } else {
args = append(args, "--unlock") if !IsLockedUser(u) {
return nil
}
args = append(args, "-u")
} }
args = append(args, u.Name) args = append(args, u.Name)