diff --git a/keymapper/dev/permissions.py b/keymapper/dev/permissions.py index 1ef3a2b6..df4ed6fd 100644 --- a/keymapper/dev/permissions.py +++ b/keymapper/dev/permissions.py @@ -30,11 +30,22 @@ from keymapper.logger import logger from keymapper.paths import USER +def check_group(group): + """Check if the user can access files of that group. + + Returns True if this group doesn't even exist. + """ + try: + return USER in grp.getgrnam(group).gr_mem + except KeyError: + return True + + def can_read_devices(): """If the people ever looks into the console, make sure to help them.""" is_root = getpass.getuser() == 'root' - is_input = USER in grp.getgrnam('input').gr_mem - is_plugdev = USER in grp.getgrnam('plugdev').gr_mem + is_input = check_group('input') + is_plugdev = check_group('plugdev') # ubuntu. funnily, individual devices in /dev/input/ have write permitted. can_write = os.access('/dev/uinput', os.W_OK)