Skip to content
This repository was archived by the owner on Nov 8, 2021. It is now read-only.

Commit cc83a2f

Browse files
shinenelsonmichaelwittig
authored andcommitted
Update showcase.yaml from #18 (#20)
1 parent 5d64c03 commit cc83a2f

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

showcase.yaml

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,18 +103,35 @@ Resources:
103103
content: |
104104
#!/bin/bash
105105
106+
# Specify an IAM group for users who should be given sudo privileges, or leave
107+
# empty to not change sudo access, or give it the value '##ALL##' to have all
108+
# users be given sudo rights.
109+
SudoersGroup=""
110+
[[ -z "${SudoersGroup}" ]] || [[ "${SudoersGroup}" == "##ALL##" ]] || Sudoers=$(
111+
aws iam get-group --group-name "${SudoersGroup}" --query "Users[].[UserName]" --output text
112+
);
113+
106114
aws iam list-users --query "Users[].[UserName]" --output text | while read User; do
107115
SaveUserName="$User"
108116
SaveUserName=${SaveUserName//"+"/".plus."}
109117
SaveUserName=${SaveUserName//"="/".equal."}
110118
SaveUserName=${SaveUserName//","/".comma."}
111119
SaveUserName=${SaveUserName//"@"/".at."}
112120
if ! grep "^$SaveUserName:" /etc/passwd > /dev/null; then
113-
# sudo will read each file in /etc/sudoers.d, skipping file names that end in ‘~’ or contain a ‘.’ character to avoid causing problems with package manager or editor temporary/backup files.
114121
/usr/sbin/useradd --create-home --shell /bin/bash "$SaveUserName"
115-
# Uncomment the following lines if you need to give all users sudo privileges
116-
# SaveUserFileName=$(echo "$SaveUserName" | tr "." " ")
117-
# echo "$SaveUserName ALL=(ALL) NOPASSWD:ALL" > "/etc/sudoers.d/$SaveUserFileName"
122+
fi
123+
124+
if [[ ! -z "${SudoersGroup}" ]]; then
125+
# sudo will read each file in /etc/sudoers.d, skipping file names that end
126+
# in ‘~’ or contain a ‘.’ character to avoid causing problems with package
127+
# manager or editor temporary/backup files.
128+
SaveUserFileName=$(echo "$SaveUserName" | tr "." " ")
129+
SaveUserSudoFilePath="/etc/sudoers.d/$SaveUserFileName"
130+
if [[ "${SudoersGroup}" == "##ALL##" ]] || echo "$Sudoers" | grep "^$User\$" > /dev/null; then
131+
echo "$SaveUserName ALL=(ALL) NOPASSWD:ALL" > "$SaveUserSudoFilePath"
132+
else
133+
[[ ! -f "$SaveUserSudoFilePath" ]] || rm "$SaveUserSudoFilePath"
134+
fi
118135
fi
119136
done
120137
mode: '000755'

0 commit comments

Comments
 (0)