From: Tom Hromatka Date: Tue, 9 Mar 2021 22:12:39 +0000 (+0000) Subject: utils.py: Add functions to get permissions, users, and groups X-Git-Tag: v2.0.3~11^2^2~23^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2f82c15d79e932010118e9bcfab5ae5be7d4eb3a;p=thirdparty%2Flibcgroup.git utils.py: Add functions to get permissions, users, and groups Add a few functions to utils.py to get file permissions, owners, and convert usernames to uids and group names to gids. Functions added: get_file_owner_uid() get_file_owner_username() get_file_owner_gid() get_file_owner_group_name() get_file_permissions() Signed-off-by: Tom Hromatka --- diff --git a/ftests/utils.py b/ftests/utils.py index 47a63e5c..f3530179 100644 --- a/ftests/utils.py +++ b/ftests/utils.py @@ -19,7 +19,72 @@ # along with this library; if not, see . # +import grp +import os +from run import Run + # function to indent a block of text by cnt number of spaces def indent(in_str, cnt): leading_indent = cnt * ' ' return ''.join(leading_indent + line for line in in_str.splitlines(True)) + +def get_file_owner_uid(config, filename): + cmd = list() + cmd.append('stat') + cmd.append('-c') + cmd.append('\'%u\'') + cmd.append(filename) + + if config.args.container: + return config.container.run(cmd, shell_bool=True) + else: + return Run.run(cmd, shell_bool=True) + +def get_file_owner_username(config, filename): + cmd = list() + cmd.append('stat') + cmd.append('-c') + cmd.append('\'%U\'') + cmd.append(filename) + + if config.args.container: + return config.container.run(cmd, shell_bool=True) + else: + return Run.run(cmd, shell_bool=True) + return os.stat(filename).st_uid + +def get_file_owner_gid(config, filename): + cmd = list() + cmd.append('stat') + cmd.append('-c') + cmd.append('\'%g\'') + cmd.append(filename) + + if config.args.container: + return config.container.run(cmd, shell_bool=True) + else: + return Run.run(cmd, shell_bool=True) + +def get_file_owner_group_name(config, filename): + cmd = list() + cmd.append('stat') + cmd.append('-c') + cmd.append('\'%G\'') + cmd.append(filename) + + if config.args.container: + return config.container.run(cmd, shell_bool=True) + else: + return Run.run(cmd, shell_bool=True) + +def get_file_permissions(config, filename): + cmd = list() + cmd.append('stat') + cmd.append('-c') + cmd.append('\'%a\'') + cmd.append(filename) + + if config.args.container: + return config.container.run(cmd, shell_bool=True) + else: + return Run.run(cmd, shell_bool=True)