Skip to content

Commit 89aa3ce

Browse files
authored
fix(telegraf): Ensure groups passed to container are applied (#729)
1 parent 69d8ad9 commit 89aa3ce

File tree

3 files changed

+45
-3
lines changed

3 files changed

+45
-3
lines changed

telegraf/1.27/entrypoint.sh

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,20 @@ else
1111
# Allow telegraf to send ICMP packets and bind to privliged ports
1212
setcap cap_net_raw,cap_net_bind_service+ep /usr/bin/telegraf || echo "Failed to set additional capabilities on /usr/bin/telegraf"
1313

14+
# ensure HOME is set to the telegraf user's home dir
1415
export HOME=$(getent passwd telegraf | cut -d : -f 6)
15-
exec setpriv --reuid telegraf --regid telegraf --groups telegraf "$@"
16+
17+
# honor groups supplied via 'docker run --group-add ...' but drop 'root' (the sed
18+
# removes 'telegraf' since we unconditionally add it and don't want it listed twice)
19+
groups="telegraf"
20+
extra_groups="$(id -Gn | sed \
21+
-e 's/ /,/g' \
22+
-e 's/,\(root\|telegraf\),/,/g' \
23+
-e 's/^\(root\|telegraf\),//g' \
24+
-e 's/,\(root\|telegraf\)$//g' \
25+
-e 's/^\(root\|telegraf\)$//g')"
26+
if [ -n "$extra_groups" ]; then
27+
groups="$groups,$extra_groups"
28+
fi
29+
exec setpriv --reuid telegraf --regid telegraf --groups "$groups" "$@"
1630
fi

telegraf/1.28/entrypoint.sh

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,20 @@ else
1111
# Allow telegraf to send ICMP packets and bind to privliged ports
1212
setcap cap_net_raw,cap_net_bind_service+ep /usr/bin/telegraf || echo "Failed to set additional capabilities on /usr/bin/telegraf"
1313

14+
# ensure HOME is set to the telegraf user's home dir
1415
export HOME=$(getent passwd telegraf | cut -d : -f 6)
15-
exec setpriv --reuid telegraf --regid telegraf --groups telegraf "$@"
16+
17+
# honor groups supplied via 'docker run --group-add ...' but drop 'root' (the sed
18+
# removes 'telegraf' since we unconditionally add it and don't want it listed twice)
19+
groups="telegraf"
20+
extra_groups="$(id -Gn | sed \
21+
-e 's/ /,/g' \
22+
-e 's/,\(root\|telegraf\),/,/g' \
23+
-e 's/^\(root\|telegraf\),//g' \
24+
-e 's/,\(root\|telegraf\)$//g' \
25+
-e 's/^\(root\|telegraf\)$//g')"
26+
if [ -n "$extra_groups" ]; then
27+
groups="$groups,$extra_groups"
28+
fi
29+
exec setpriv --reuid telegraf --regid telegraf --groups "$groups" "$@"
1630
fi

telegraf/1.29/entrypoint.sh

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,20 @@ else
1111
# Allow telegraf to send ICMP packets and bind to privliged ports
1212
setcap cap_net_raw,cap_net_bind_service+ep /usr/bin/telegraf || echo "Failed to set additional capabilities on /usr/bin/telegraf"
1313

14+
# ensure HOME is set to the telegraf user's home dir
1415
export HOME=$(getent passwd telegraf | cut -d : -f 6)
15-
exec setpriv --reuid telegraf --regid telegraf --groups telegraf "$@"
16+
17+
# honor groups supplied via 'docker run --group-add ...' but drop 'root' (the sed
18+
# removes 'telegraf' since we unconditionally add it and don't want it listed twice)
19+
groups="telegraf"
20+
extra_groups="$(id -Gn | sed \
21+
-e 's/ /,/g' \
22+
-e 's/,\(root\|telegraf\),/,/g' \
23+
-e 's/^\(root\|telegraf\),//g' \
24+
-e 's/,\(root\|telegraf\)$//g' \
25+
-e 's/^\(root\|telegraf\)$//g')"
26+
if [ -n "$extra_groups" ]; then
27+
groups="$groups,$extra_groups"
28+
fi
29+
exec setpriv --reuid telegraf --regid telegraf --groups "$groups" "$@"
1630
fi

0 commit comments

Comments
 (0)