diff --git a/build/linux/dist/arduino-add-groups b/build/linux/dist/arduino-add-groups new file mode 100755 index 0000000..1f27e51 --- /dev/null +++ b/build/linux/dist/arduino-add-groups @@ -0,0 +1,23 @@ +#!/usr/bin/bash + +uid=${PKEXEC_UID:-${SUDO_UID}} + +if [[ -z $uid ]]; then + echo "Could not determine which user to add to the groups." + exit 2 +fi + +login=$(perl -e 'print((getpwuid shift)[0])' $uid) + +for group in dialout lock; do + if ! groups $login | grep -q " : .*\b$group\b"; then + missing_groups=${missing_groups:+$missing_groups,}$group + fi +done + +if [[ -n $missing_groups ]]; then + exec usermod -a -G $missing_groups $login +else + echo "No required groups are missing for this user." + exit 1 +fi diff --git a/build/linux/dist/cc.arduino.add-groups.policy b/build/linux/dist/cc.arduino.add-groups.policy new file mode 100644 index 0000000..197d5ee --- /dev/null +++ b/build/linux/dist/cc.arduino.add-groups.policy @@ -0,0 +1,22 @@ + + + + + Arduino + http://arduino.cc/ + + + Add the user to groups required to access USB and serial ports. + Authentication is required to add the current user to the required groups. + arduino + + no + no + auth_admin + + /usr/libexec/arduino-add-groups + + +