Python grp.getgrall() Examples
The following are 30
code examples of grp.getgrall().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
grp
, or try the search function
.
Example #1
Source File: unix.py From learn_python3_spider with MIT License | 6 votes |
def __init__(self, username): ConchUser.__init__(self) self.username = username self.pwdData = pwd.getpwnam(self.username) l = [self.pwdData[3]] for groupname, password, gid, userlist in grp.getgrall(): if username in userlist: l.append(gid) self.otherGroups = l self.listeners = {} # Dict mapping (interface, port) -> listener self.channelLookup.update( {b"session": session.SSHSession, b"direct-tcpip": forwarding.openConnectForwardingClient}) self.subsystemLookup.update( {b"sftp": filetransfer.FileTransferServer})
Example #2
Source File: utils.py From barman with GNU General Public License v3.0 | 6 votes |
def drop_privileges(user): """ Change the system user of the current python process. It will only work if called as root or as the target user. :param string user: target user :raise KeyError: if the target user doesn't exists :raise OSError: when the user change fails """ pw = pwd.getpwnam(user) if pw.pw_uid == os.getuid(): return groups = [e.gr_gid for e in grp.getgrall() if pw.pw_name in e.gr_mem] groups.append(pw.pw_gid) os.setgroups(groups) os.setgid(pw.pw_gid) os.setuid(pw.pw_uid) os.environ['HOME'] = pw.pw_dir
Example #3
Source File: local.py From dask-gateway with BSD 3-Clause "New" or "Revised" License | 6 votes |
def make_preexec_fn(self, cluster): # pragma: nocover # Borrowed and modified from jupyterhub/spawner.py pwnam = getpwnam(cluster.username) uid = pwnam.pw_uid gid = pwnam.pw_gid groups = [g.gr_gid for g in grp.getgrall() if cluster.username in g.gr_mem] workdir = cluster.state["workdir"] def preexec(): os.setgid(gid) try: os.setgroups(groups) except Exception as e: print("Failed to set groups %s" % e, file=sys.stderr) os.setuid(uid) os.chdir(workdir) return preexec
Example #4
Source File: unix.py From python-for-android with Apache License 2.0 | 6 votes |
def __init__(self, username): ConchUser.__init__(self) self.username = username self.pwdData = pwd.getpwnam(self.username) l = [self.pwdData[3]] for groupname, password, gid, userlist in grp.getgrall(): if username in userlist: l.append(gid) self.otherGroups = l self.listeners = {} # dict mapping (interface, port) -> listener self.channelLookup.update( {"session": session.SSHSession, "direct-tcpip": forwarding.openConnectForwardingClient}) self.subsystemLookup.update( {"sftp": filetransfer.FileTransferServer})
Example #5
Source File: mock.py From mock with GNU General Public License v2.0 | 6 votes |
def setup_uid_manager(mockgid): unprivUid = os.getuid() unprivGid = os.getgid() # sudo if os.environ.get("SUDO_UID") is not None: unprivUid = int(os.environ['SUDO_UID']) os.setgroups((mockgid,)) unprivGid = int(os.environ['SUDO_GID']) # consolehelper if os.environ.get("USERHELPER_UID") is not None: unprivUid = int(os.environ['USERHELPER_UID']) unprivName = pwd.getpwuid(unprivUid).pw_name secondary_groups = [g.gr_gid for g in grp.getgrall() if unprivName in g.gr_mem] os.setgroups([mockgid] + secondary_groups) unprivGid = pwd.getpwuid(unprivUid)[3] uidManager = mockbuild.uid.UidManager(unprivUid, unprivGid) return uidManager
Example #6
Source File: tmetadata.py From honeything with GNU General Public License v3.0 | 6 votes |
def test_restore_nonexistent_user_group(): tmpdir = tempfile.mkdtemp(prefix='bup-tmetadata-') try: path = tmpdir + '/foo' os.mkdir(path) m = metadata.from_path(path, archive_path=path, save_symlinks=True) WVPASSEQ(m.path, path) junk,m.owner = max([(len(x.pw_name), x.pw_name + 'x') for x in pwd.getpwall()]) junk,m.group = max([(len(x.gr_name), x.gr_name + 'x') for x in grp.getgrall()]) WVPASSEQ(m.apply_to_path(path, restore_numeric_ids=True), None) WVPASSEQ(os.stat(path).st_uid, m.uid) WVPASSEQ(os.stat(path).st_gid, m.gid) WVPASSEQ(m.apply_to_path(path, restore_numeric_ids=False), None) WVPASSEQ(os.stat(path).st_uid, m.uid) WVPASSEQ(os.stat(path).st_gid, m.gid) finally: subprocess.call(['rm', '-rf', tmpdir])
Example #7
Source File: test_grp.py From medicare-demo with Apache License 2.0 | 6 votes |
def test_values(self): entries = grp.getgrall() for e in entries: self.check_value(e) if len(entries) > 1000: # Huge group file (NIS?) -- skip the rest return for e in entries: e2 = grp.getgrgid(e.gr_gid) self.check_value(e2) self.assertEqual(e2.gr_gid, e.gr_gid) e2 = grp.getgrnam(e.gr_name) self.check_value(e2) # There are instances where getgrall() returns group names in # lowercase while getgrgid() returns proper casing. # Discovered on Ubuntu 5.04 (custom). self.assertEqual(e2.gr_name.lower(), e.gr_name.lower())
Example #8
Source File: ftp.py From learn_python3_spider with MIT License | 6 votes |
def _getgroups(uid): """ Return the primary and supplementary groups for the given UID. @type uid: C{int} """ result = [] pwent = pwd.getpwuid(uid) result.append(pwent.pw_gid) for grent in grp.getgrall(): if pwent.pw_name in grent.gr_mem: result.append(grent.gr_gid) return result
Example #9
Source File: unix.py From BitTorrent with GNU General Public License v3.0 | 6 votes |
def __init__(self, username): ConchUser.__init__(self) self.username = username self.pwdData = pwd.getpwnam(self.username) l = [self.pwdData[3]] for groupname, password, gid, userlist in grp.getgrall(): if username in userlist: l.append(gid) self.otherGroups = l self.listeners = {} # dict mapping (interface, port) -> listener self.channelLookup.update( {"session": session.SSHSession, "direct-tcpip": forwarding.openConnectForwardingClient}) self.subsystemLookup.update( {"sftp": filetransfer.FileTransferServer})
Example #10
Source File: unix.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def __init__(self, username): ConchUser.__init__(self) self.username = username self.pwdData = pwd.getpwnam(self.username) l = [self.pwdData[3]] for groupname, password, gid, userlist in grp.getgrall(): if username in userlist: l.append(gid) self.otherGroups = l self.listeners = {} # Dict mapping (interface, port) -> listener self.channelLookup.update( {b"session": session.SSHSession, b"direct-tcpip": forwarding.openConnectForwardingClient}) self.subsystemLookup.update( {b"sftp": filetransfer.FileTransferServer})
Example #11
Source File: ftp.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def _getgroups(uid): """ Return the primary and supplementary groups for the given UID. @type uid: C{int} """ result = [] pwent = pwd.getpwuid(uid) result.append(pwent.pw_gid) for grent in grp.getgrall(): if pwent.pw_name in grent.gr_mem: result.append(grent.gr_gid) return result
Example #12
Source File: ftp.py From BitTorrent with GNU General Public License v3.0 | 5 votes |
def _getgroups(uid): """Return the primary and supplementary groups for the given UID. @type uid: C{int} """ result = [] pwent = pwd.getpwuid(uid) result.append(pwent.pw_gid) for grent in grp.getgrall(): if pwent.pw_name in grent.gr_mem: result.append(grent.gr_gid) return result
Example #13
Source File: daemon.py From shadowsocks-rm with Apache License 2.0 | 5 votes |
def set_user(username): if username is None: return import pwd import grp try: pwrec = pwd.getpwnam(username) except KeyError: logging.error('user not found: %s' % username) raise user = pwrec[0] uid = pwrec[2] gid = pwrec[3] cur_uid = os.getuid() if uid == cur_uid: return if cur_uid != 0: logging.error('can not set user as nonroot user') # will raise later # inspired by supervisor if hasattr(os, 'setgroups'): groups = [grprec[2] for grprec in grp.getgrall() if user in grprec[3]] groups.insert(0, gid) os.setgroups(groups) os.setgid(gid) os.setuid(uid)
Example #14
Source File: util.py From BitTorrent with GNU General Public License v3.0 | 5 votes |
def initgroups(uid, primaryGid): """Initializes the group access list. This is done by reading the group database /etc/group and using all groups of which C{uid} is a member. The additional group C{primaryGid} is also added to the list. If the given user is a member of more than C{NGROUPS}, arbitrary groups will be silently discarded to bring the number below that limit. """ try: # Try to get the maximum number of groups max_groups = os.sysconf("SC_NGROUPS_MAX") except: # No predefined limit max_groups = 0 username = pwd.getpwuid(uid)[0] l = [] if primaryGid is not None: l.append(primaryGid) for groupname, password, gid, userlist in grp.getgrall(): if username in userlist: l.append(gid) if len(l) == max_groups: break # No more groups, ignore any more try: _setgroups_until_success(l) except OSError, e: # We might be able to remove this code now that we # don't try to setgid/setuid even when not asked to. if e.errno == errno.EPERM: for g in getgroups(): if g not in l: raise else: raise
Example #15
Source File: daemon.py From shadowsocks-with-socks-auth with Apache License 2.0 | 5 votes |
def set_user(username): if username is None: return import pwd import grp try: pwrec = pwd.getpwnam(username) except KeyError: logging.error('user not found: %s' % username) raise user = pwrec[0] uid = pwrec[2] gid = pwrec[3] cur_uid = os.getuid() if uid == cur_uid: return if cur_uid != 0: logging.error('can not set user as nonroot user') # will raise later # inspired by supervisor if hasattr(os, 'setgroups'): groups = [grprec[2] for grprec in grp.getgrall() if user in grprec[3]] groups.insert(0, gid) os.setgroups(groups) os.setgid(gid) os.setuid(uid)
Example #16
Source File: test_util.py From dcos with Apache License 2.0 | 5 votes |
def test_validate_group(): # We import grp here so that this module can be imported on Windows. import grp group_name_which_exists = grp.getgrall()[0].gr_name UserManagement.validate_group(group_name_which_exists) with pytest.raises(ValidationError): UserManagement.validate_group('group-should-not-exist')
Example #17
Source File: ftp.py From python-for-android with Apache License 2.0 | 5 votes |
def _getgroups(uid): """Return the primary and supplementary groups for the given UID. @type uid: C{int} """ result = [] pwent = pwd.getpwuid(uid) result.append(pwent.pw_gid) for grent in grp.getgrall(): if pwent.pw_name in grent.gr_mem: result.append(grent.gr_gid) return result
Example #18
Source File: daemon.py From shadowsocksr-python with Apache License 2.0 | 5 votes |
def set_user(username): if username is None: return import pwd import grp try: pwrec = pwd.getpwnam(username) except KeyError: logging.error('user not found: %s' % username) raise user = pwrec[0] uid = pwrec[2] gid = pwrec[3] cur_uid = os.getuid() if uid == cur_uid: return if cur_uid != 0: logging.error('can not set user as nonroot user') # will raise later # inspired by supervisor if hasattr(os, 'setgroups'): groups = [grprec[2] for grprec in grp.getgrall() if user in grprec[3]] groups.insert(0, gid) os.setgroups(groups) os.setgid(gid) os.setuid(uid)
Example #19
Source File: groups.py From core with GNU General Public License v3.0 | 5 votes |
def get_system(gid=None): """ Get all system groups. :param str gid: ID of single group to fetch :returns: SystemGroup(s) :rtype: SystemGroup or list thereof """ r = [] for x in grp.getgrall(): g = SystemGroup(name=x.gr_name, gid=x.gr_gid, users=x.gr_mem) if gid == g.name: return g r.append(g) return r if not gid else None
Example #20
Source File: groups.py From core with GNU General Public License v3.0 | 5 votes |
def add(self): """Add group.""" shell("groupadd {0}".format(self.name)) self.update() for x in grp.getgrall(): if x.gr_name == self.name: self.gid = x.gr_gid
Example #21
Source File: daemon.py From ShadowSocks with Apache License 2.0 | 5 votes |
def set_user(username): if username is None: return import pwd import grp try: pwrec = pwd.getpwnam(username) except KeyError: logging.error('user not found: %s' % username) raise user = pwrec[0] uid = pwrec[2] gid = pwrec[3] cur_uid = os.getuid() if uid == cur_uid: return if cur_uid != 0: logging.error('can not set user as nonroot user') # will raise later # inspired by supervisor if hasattr(os, 'setgroups'): groups = [grprec[2] for grprec in grp.getgrall() if user in grprec[3]] groups.insert(0, gid) os.setgroups(groups) os.setgid(gid) os.setuid(uid)
Example #22
Source File: daemon.py From shadowsocks-analysis with Apache License 2.0 | 5 votes |
def set_user(username): if username is None: return import pwd import grp try: pwrec = pwd.getpwnam(username) except KeyError: logging.error('user not found: %s' % username) raise user = pwrec[0] uid = pwrec[2] gid = pwrec[3] cur_uid = os.getuid() if uid == cur_uid: return if cur_uid != 0: logging.error('can not set user as nonroot user') # will raise later # inspired by supervisor if hasattr(os, 'setgroups'): groups = [grprec[2] for grprec in grp.getgrall() if user in grprec[3]] groups.insert(0, gid) os.setgroups(groups) os.setgid(gid) os.setuid(uid)
Example #23
Source File: test_contracts.py From jarvis with GNU General Public License v2.0 | 5 votes |
def setUp(self): if POSIX: import pwd import grp users = pwd.getpwall() groups = grp.getgrall() self.all_uids = set([x.pw_uid for x in users]) self.all_usernames = set([x.pw_name for x in users]) self.all_gids = set([x.gr_gid for x in groups])
Example #24
Source File: daemon.py From SSRSpeed with GNU General Public License v3.0 | 5 votes |
def set_user(username): if username is None: return import pwd import grp try: pwrec = pwd.getpwnam(username) except KeyError: logging.error('user not found: %s' % username) raise user = pwrec[0] uid = pwrec[2] gid = pwrec[3] cur_uid = os.getuid() if uid == cur_uid: return if cur_uid != 0: logging.error('can not set user as nonroot user') # will raise later # inspired by supervisor if hasattr(os, 'setgroups'): groups = [grprec[2] for grprec in grp.getgrall() if user in grprec[3]] groups.insert(0, gid) os.setgroups(groups) os.setgid(gid) os.setuid(uid)
Example #25
Source File: daemon.py From Dockerfiles with Apache License 2.0 | 5 votes |
def set_user(username): if username is None: return import pwd import grp try: pwrec = pwd.getpwnam(username) except KeyError: logging.error('user not found: %s' % username) raise user = pwrec[0] uid = pwrec[2] gid = pwrec[3] cur_uid = os.getuid() if uid == cur_uid: return if cur_uid != 0: logging.error('can not set user as nonroot user') # will raise later # inspired by supervisor if hasattr(os, 'setgroups'): groups = [grprec[2] for grprec in grp.getgrall() if user in grprec[3]] groups.insert(0, gid) os.setgroups(groups) os.setgid(gid) os.setuid(uid)
Example #26
Source File: daemon.py From shadowsocks with Apache License 2.0 | 5 votes |
def set_user(username): if username is None: return import pwd import grp try: pwrec = pwd.getpwnam(username) except KeyError: logging.error('user not found: %s' % username) raise user = pwrec[0] uid = pwrec[2] gid = pwrec[3] cur_uid = os.getuid() if uid == cur_uid: return if cur_uid != 0: logging.error('can not set user as nonroot user') # will raise later # inspired by supervisor if hasattr(os, 'setgroups'): groups = [grprec[2] for grprec in grp.getgrall() if user in grprec[3]] groups.insert(0, gid) os.setgroups(groups) os.setgid(gid) os.setuid(uid)
Example #27
Source File: daemon.py From shadowsocks with Apache License 2.0 | 5 votes |
def set_user(username): if username is None: return import pwd import grp try: pwrec = pwd.getpwnam(username) except KeyError: logging.error('user not found: %s' % username) raise user = pwrec[0] uid = pwrec[2] gid = pwrec[3] cur_uid = os.getuid() if uid == cur_uid: return if cur_uid != 0: logging.error('can not set user as nonroot user') # will raise later # inspired by supervisor if hasattr(os, 'setgroups'): groups = [grprec[2] for grprec in grp.getgrall() if user in grprec[3]] groups.insert(0, gid) os.setgroups(groups) os.setgid(gid) os.setuid(uid)
Example #28
Source File: daemon.py From ssrr with Apache License 2.0 | 5 votes |
def set_user(username): if username is None: return import pwd import grp try: pwrec = pwd.getpwnam(username) except KeyError: logging.error('user not found: %s' % username) raise user = pwrec[0] uid = pwrec[2] gid = pwrec[3] cur_uid = os.getuid() if uid == cur_uid: return if cur_uid != 0: logging.error('can not set user as nonroot user') # will raise later # inspired by supervisor if hasattr(os, 'setgroups'): groups = [grprec[2] for grprec in grp.getgrall() if user in grprec[3]] groups.insert(0, gid) os.setgroups(groups) os.setgid(gid) os.setuid(uid)
Example #29
Source File: daemon.py From ssr-ml with Apache License 2.0 | 5 votes |
def set_user(username): if username is None: return import pwd import grp try: pwrec = pwd.getpwnam(username) except KeyError: logging.error('user not found: %s' % username) raise user = pwrec[0] uid = pwrec[2] gid = pwrec[3] cur_uid = os.getuid() if uid == cur_uid: return if cur_uid != 0: logging.error('can not set user as nonroot user') # will raise later # inspired by supervisor if hasattr(os, 'setgroups'): groups = [grprec[2] for grprec in grp.getgrall() if user in grprec[3]] groups.insert(0, gid) os.setgroups(groups) os.setgid(gid) os.setuid(uid)
Example #30
Source File: daemon.py From neverendshadowsocks with Apache License 2.0 | 5 votes |
def set_user(username): if username is None: return import pwd import grp try: pwrec = pwd.getpwnam(username) except KeyError: logging.error('user not found: %s' % username) raise user = pwrec[0] uid = pwrec[2] gid = pwrec[3] cur_uid = os.getuid() if uid == cur_uid: return if cur_uid != 0: logging.error('can not set user as nonroot user') # will raise later # inspired by supervisor if hasattr(os, 'setgroups'): groups = [grprec[2] for grprec in grp.getgrall() if user in grprec[3]] groups.insert(0, gid) os.setgroups(groups) os.setgid(gid) os.setuid(uid)