check_permissions.sh 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #!/bin/bash
  2. # LGSM check_permissions.sh
  3. # Author: Daniel Gibbs
  4. # Contributor: UltimateByte
  5. # Website: http://gameservermanagers.com
  6. lgsm_version="150316"
  7. # Description: Checks script, files and folders ownership and permissions.
  8. # Initializing useful variables
  9. currentuser="$(whoami)"
  10. scriptfullpath="${rootdir}/${selfname}"
  11. conclusionpermissionerror="0"
  12. fn_check_ownership(){
  13. if [ "${currentuser}" != "$(stat -c %U "${scriptfullpath}")" ] && [ "${currentuser}" != "$(stat -c %G "${scriptfullpath}")" ]; then
  14. conclusionpermissionerror="1"
  15. fn_print_fail_nl "Permission denied"
  16. echo " * To check allowed user and group run ls -l ${selfname}"
  17. exit 1
  18. fi
  19. }
  20. fn_check_permissions(){
  21. # Checking permission on rootdir
  22. if [ -n "${rootdir}" ]; then
  23. rootdirperm="$(stat -c %a "${rootdir}")"
  24. userrootdirperm="${rootdirperm:0:1}"
  25. grouprootdirperm="${rootdirperm:1:1}"
  26. if [ "${userrootdirperm}" != "7" ] && [ "${grouprootdirperm}" != "7" ]; then
  27. fn_print_fail_nl "Permission issues found in root directory"
  28. echo " * You might wanna run : chmod -R 755 \"${rootdir}\""
  29. conclusionpermissionerror="1"
  30. fi
  31. fi
  32. # Checking permissions on functions
  33. funcpermfail="0"
  34. if [ -n "${functionsdir}" ]; then
  35. while read -r filename
  36. do
  37. funcperm="$(stat -c %a "${filename}")"
  38. userfuncdirperm="${funcperm:0:1}"
  39. groupfuncdirperm="${duncperm:1:1}"
  40. if [ "${userfuncdirperm}" != "7" ] && [ "${groupfuncdirperm}" != "7" ]; then
  41. funcpermfail="1"
  42. conclusionpermissionerror="1"
  43. fi
  44. done <<< "$(find "${functionsdir}" -name "*.sh")"
  45. if [ "${funcpermfail}" == "1" ]; then
  46. fn_print_fail_nl "Permission issues found in functions."
  47. echo " * You might wanna run : chmod -R 755 \"${functionsdir}\""
  48. fi
  49. fi
  50. }
  51. fn_check_permissions_conclusion(){
  52. if [ "${conclusionpermissionerror}" == "1" ]; then
  53. exit 1
  54. fi
  55. }
  56. fn_check_ownership
  57. fn_check_permissions
  58. fn_check_permissions_conclusion