From 51a717e75e4ed439c6c7882b8c5d4dfb120e49f1 Mon Sep 17 00:00:00 2001 From: sezanzeb Date: Sat, 5 Dec 2020 17:56:21 +0100 Subject: [PATCH] #2 non existing groups --- keymapper/dev/permissions.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) 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)