Skip to content

Commit d5a5c79

Browse files
committed
iam-sync-users: added logging
1 parent 77f4ef9 commit d5a5c79

File tree

1 file changed

+24
-16
lines changed

1 file changed

+24
-16
lines changed

iam/sync-users/main.go

+24-16
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import (
1616
"github.com/aws/aws-sdk-go/aws/session"
1717
"github.com/aws/aws-sdk-go/service/iam"
1818
"github.com/hamstah/awstools/common"
19-
19+
log "github.com/sirupsen/logrus"
2020
kingpin "gopkg.in/alecthomas/kingpin.v2"
2121
)
2222

@@ -168,35 +168,42 @@ func LocalUsers() ([]*user.User, error) {
168168
return users, err
169169
}
170170

171-
func LockLocalUser(username string) error {
172-
cmd := exec.Command("/usr/sbin/usermod", "-L", username)
173-
err := cmd.Run()
171+
func RunCommand(command string, args ...string) error {
172+
cmd := exec.Command(command, args...)
173+
output, err := cmd.CombinedOutput()
174174
if err != nil {
175+
log.WithFields(log.Fields{
176+
"exit_code": cmd.ProcessState.ExitCode(),
177+
}).Error(fmt.Sprintf("Failed to run command %s: %s", command, string(output)))
175178
return err
176179
}
177-
178180
return nil
179181
}
180182

181-
func UnlockLocalUser(username string) error {
182-
cmd := exec.Command("/usr/sbin/usermod", "-U", username)
183-
err := cmd.Run()
183+
func LockLocalUser(username string) error {
184+
log.WithField("username", username).Info("Locking user")
185+
err := RunCommand("/usr/sbin/usermod", "-L", username)
184186
if err != nil {
185187
return err
186188
}
187189

188190
return nil
189191
}
190192

191-
func syncUserGroups(iamUser *IAMUser) error {
192-
193-
cmd := exec.Command("/usr/sbin/usermod", "-G", strings.Join(iamUser.Groups, ","), iamUser.Username)
194-
err := cmd.Run()
193+
func UnlockLocalUser(username string) error {
194+
log.WithField("username", username).Info("Unlocking user")
195+
err := RunCommand("/usr/sbin/usermod", "-U", username)
195196
if err != nil {
196197
return err
197198
}
198199

199-
return nil
200+
func syncUserGroups(iamUser *IAMUser) error {
201+
groupsStr := strings.Join(iamUser.Groups, ",")
202+
log.WithFields(log.Fields{
203+
"username": iamUser.Username,
204+
"groups": groupsStr,
205+
}).Info("Setting user groups")
206+
return RunCommand("/usr/sbin/usermod", "-G", groupsStr, iamUser.Username)
200207
}
201208

202209
func syncUserSudo(iamUser *IAMUser, defaultSudo bool) error {
@@ -211,21 +218,22 @@ func syncUserSudo(iamUser *IAMUser, defaultSudo bool) error {
211218
if hasSudo {
212219
return nil
213220
}
214-
221+
log.WithField("username", iamUser.Username).Info("Adding sudo to user")
215222
return ioutil.WriteFile(sudoFilename, []byte(fmt.Sprintf("%s ALL=(ALL) NOPASSWD:ALL\n", iamUser.Username)), 0644)
216223
} else {
217224
// nothing to do
218225
if !hasSudo {
219226
return nil
220227
}
221228

229+
log.WithField("username", iamUser.Username).Info("Removing sudo from user")
222230
return os.Remove(sudoFilename)
223231
}
224232
}
225233

226234
func createUser(iamUser *IAMUser) error {
227-
cmd := exec.Command("/usr/sbin/adduser", iamUser.Username)
228-
err := cmd.Run()
235+
log.WithField("username", iamUser.Username).Info("Creating user")
236+
err := RunCommand("/usr/sbin/adduser", iamUser.Username)
229237
if err != nil {
230238
return err
231239
}

0 commit comments

Comments
 (0)