50-gid-video 917 B

12345678910111213141516171819202122232425262728293031323334
  1. #!/usr/bin/with-contenv bash
  2. # check for the existence of a video and/or tuner device
  3. if [ -e /dev/dri ] || [ -e /dev/dvb ]; then
  4. if [ -e /dev/dri ]; then
  5. VIDEO_GID=$(stat -c '%g' /dev/dri/* | grep -v '^0$' | head -n 1)
  6. else
  7. VIDEO_GID=$(stat -c '%g' /dev/dvb/* | grep -v '^0$' | head -n 1)
  8. fi
  9. # just add abc to root if stuff in dri/dvb is root owned
  10. if [ -z "${VIDEO_GID}" ]; then
  11. usermod -a -G root abc
  12. exit 0
  13. fi
  14. else
  15. exit 0
  16. fi
  17. # Check if this GID matches the current abc user
  18. ABCGID=$(getent group abc | awk -F: '{print $3}')
  19. if [ "${ABCGID}" == "${VIDEO_GID}" ]; then
  20. exit 0
  21. fi
  22. # Check if the GID is taken and swap to 65533
  23. CURRENT=$(getent group ${VIDEO_GID} | awk -F: '{print $1}')
  24. if [ -z "${CURRENT}" ] || [ "${CURRENT}" == 'video' ]; then
  25. groupmod -g ${VIDEO_GID} video
  26. usermod -a -G video abc
  27. else
  28. groupmod -g 65533 ${CURRENT}
  29. groupmod -g ${VIDEO_GID} video
  30. usermod -a -G video abc
  31. fi