Python os.fchown() Examples
The following are 30
code examples of os.fchown().
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
os
, or try the search function
.
Example #1
Source File: test_posix.py From CTFCrackTools with GNU General Public License v3.0 | 6 votes |
def _test_all_chown_common(self, chown_func, first_param): """Common code for chown, fchown and lchown tests.""" if os.getuid() == 0: try: # Many linux distros have a nfsnobody user as MAX_UID-2 # that makes a good test case for signedness issues. # http://bugs.python.org/issue1747858 # This part of the test only runs when run as root. # Only scary people run their tests as root. ent = pwd.getpwnam('nfsnobody') chown_func(first_param, ent.pw_uid, ent.pw_gid) except KeyError: pass else: # non-root cannot chown to root, raises OSError self.assertRaises(OSError, chown_func, first_param, 0, 0) # test a successful chown call chown_func(first_param, os.getuid(), os.getgid())
Example #2
Source File: test_posix.py From CTFCrackTools-V2 with GNU General Public License v3.0 | 6 votes |
def _test_all_chown_common(self, chown_func, first_param): """Common code for chown, fchown and lchown tests.""" if os.getuid() == 0: try: # Many linux distros have a nfsnobody user as MAX_UID-2 # that makes a good test case for signedness issues. # http://bugs.python.org/issue1747858 # This part of the test only runs when run as root. # Only scary people run their tests as root. ent = pwd.getpwnam('nfsnobody') chown_func(first_param, ent.pw_uid, ent.pw_gid) except KeyError: pass else: # non-root cannot chown to root, raises OSError self.assertRaises(OSError, chown_func, first_param, 0, 0) # test a successful chown call chown_func(first_param, os.getuid(), os.getgid())
Example #3
Source File: target.py From mitogen with BSD 3-Clause "New" or "Revised" License | 6 votes |
def set_file_owner(path, owner, group=None, fd=None): if owner: uid = pwd.getpwnam(owner).pw_uid else: uid = os.geteuid() if group: gid = grp.getgrnam(group).gr_gid else: gid = os.getegid() if fd is not None and hasattr(os, 'fchown'): os.fchown(fd, (uid, gid)) else: # Python<2.6 os.chown(path, (uid, gid))
Example #4
Source File: posix.py From pid with Apache License 2.0 | 5 votes |
def _chown(self): if self.uid >= 0 or self.gid >= 0: os.fchown(self.fh.fileno(), self.uid, self.gid)
Example #5
Source File: test_posix.py From CTFCrackTools with GNU General Public License v3.0 | 5 votes |
def test_fchown(self): os.unlink(test_support.TESTFN) # re-create the file test_file = open(test_support.TESTFN, 'w') try: fd = test_file.fileno() self._test_all_chown_common(posix.fchown, fd) finally: test_file.close()
Example #6
Source File: test_os.py From CTFCrackTools with GNU General Public License v3.0 | 5 votes |
def test_fchown(self): if hasattr(os, "fchown"): self.check(os.fchown, -1, -1)
Example #7
Source File: test_posix.py From CTFCrackTools-V2 with GNU General Public License v3.0 | 5 votes |
def test_fchown(self): os.unlink(test_support.TESTFN) # re-create the file test_file = open(test_support.TESTFN, 'w') try: fd = test_file.fileno() self._test_all_chown_common(posix.fchown, fd) finally: test_file.close()
Example #8
Source File: test_os.py From CTFCrackTools-V2 with GNU General Public License v3.0 | 5 votes |
def test_fchown(self): if hasattr(os, "fchown"): self.check(os.fchown, -1, -1)
Example #9
Source File: __init__.py From treadmill with Apache License 2.0 | 5 votes |
def copy(self, dst, src=None): """Atomically copy tickets to destination.""" if src is None: src = self.tkt_path dst_dir = os.path.dirname(dst) with io.open(src, 'rb') as tkt_src_file: # TODO; rewrite as fs.write_safe. with tempfile.NamedTemporaryFile(dir=dst_dir, prefix='.tmp' + self.princ, delete=False, mode='wb') as tkt_dst_file: try: # Copy binary from source to dest shutil.copyfileobj(tkt_src_file, tkt_dst_file) # Set the owner if self.uid is not None: os.fchown(tkt_dst_file.fileno(), self.uid, -1) # Copy the mode src_stat = os.fstat(tkt_src_file.fileno()) os.fchmod(tkt_dst_file.fileno(), stat.S_IMODE(src_stat.st_mode)) tkt_dst_file.flush() os.rename(tkt_dst_file.name, dst) except (IOError, OSError): _LOGGER.exception('Error copying ticket from %s to %s', src, dst) finally: fs.rm_safe(tkt_dst_file.name)
Example #10
Source File: test_posix.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_fchown(self): os.unlink(support.TESTFN) # re-create the file test_file = open(support.TESTFN, 'w') try: fd = test_file.fileno() self._test_all_chown_common(posix.fchown, fd, getattr(posix, 'fstat', None)) finally: test_file.close()
Example #11
Source File: test_os.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_fchown(self): self.check(os.fchown, -1, -1)
Example #12
Source File: test_posix.py From gcblue with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_fchown(self): os.unlink(test_support.TESTFN) # re-create the file test_file = open(test_support.TESTFN, 'w') try: fd = test_file.fileno() self._test_all_chown_common(posix.fchown, fd, getattr(posix, 'fstat', None)) finally: test_file.close()
Example #13
Source File: test_os.py From gcblue with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_fchown(self): self.check(os.fchown, -1, -1)
Example #14
Source File: test_os.py From ironpython2 with Apache License 2.0 | 5 votes |
def test_fchown(self): self.check(os.fchown, -1, -1)
Example #15
Source File: test_posix.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_fchown(self): os.unlink(support.TESTFN) # re-create the file test_file = open(support.TESTFN, 'w') try: fd = test_file.fileno() self._test_all_chown_common(posix.fchown, fd, getattr(posix, 'fstat', None)) finally: test_file.close()
Example #16
Source File: test_os.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_fchown(self): self.check(os.fchown, -1, -1)
Example #17
Source File: test_posix.py From ironpython2 with Apache License 2.0 | 5 votes |
def test_fchown(self): os.unlink(test_support.TESTFN) # re-create the file test_file = open(test_support.TESTFN, 'w') try: fd = test_file.fileno() self._test_all_chown_common(posix.fchown, fd, getattr(posix, 'fstat', None)) finally: test_file.close()
Example #18
Source File: test_os.py From BinderFilter with MIT License | 5 votes |
def test_fchown(self): if hasattr(os, "fchown"): self.check(os.fchown, -1, -1)
Example #19
Source File: test_posix.py From BinderFilter with MIT License | 5 votes |
def test_fchown(self): os.unlink(test_support.TESTFN) # re-create the file test_file = open(test_support.TESTFN, 'w') try: fd = test_file.fileno() self._test_all_chown_common(posix.fchown, fd, getattr(posix, 'fstat', None)) finally: test_file.close()
Example #20
Source File: test_os.py From oss-ftp with MIT License | 5 votes |
def test_fchown(self): self.check(os.fchown, -1, -1)
Example #21
Source File: test_posix.py From oss-ftp with MIT License | 5 votes |
def test_fchown(self): os.unlink(test_support.TESTFN) # re-create the file test_file = open(test_support.TESTFN, 'w') try: fd = test_file.fileno() self._test_all_chown_common(posix.fchown, fd, getattr(posix, 'fstat', None)) finally: test_file.close()
Example #22
Source File: storage.py From pysftpserver with MIT License | 5 votes |
def setstat(self, filename, attrs, fsetstat=False): """setstat and fsetstat requests. Filename is an handle in the fstat variant. If you're using Python < 3.3, you could find useful the futimes file / function. """ if not fsetstat: f = os.open(filename, os.O_WRONLY) chown = os.chown chmod = os.chmod else: # filename is a fd f = filename chown = os.fchown chmod = os.fchmod if b'size' in attrs: os.ftruncate(f, attrs[b'size']) if all(k in attrs for k in (b'uid', b'gid')): chown(filename, attrs[b'uid'], attrs[b'gid']) if b'perm' in attrs: chmod(filename, attrs[b'perm']) if all(k in attrs for k in (b'atime', b'mtime')): if not fsetstat: os.utime(filename, (attrs[b'atime'], attrs[b'mtime'])) else: futimes(filename, (attrs[b'atime'], attrs[b'mtime']))
Example #23
Source File: test_os.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def test_fchown(self): self.check(os.fchown, -1, -1)
Example #24
Source File: test_posix.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def test_fchown(self): os.unlink(support.TESTFN) # re-create the file test_file = open(support.TESTFN, 'w') try: fd = test_file.fileno() self._test_all_chown_common(posix.fchown, fd, getattr(posix, 'fstat', None)) finally: test_file.close()
Example #25
Source File: test_posix.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 4 votes |
def _test_all_chown_common(self, chown_func, first_param, stat_func): """Common code for chown, fchown and lchown tests.""" def check_stat(uid, gid): if stat_func is not None: stat = stat_func(first_param) self.assertEqual(stat.st_uid, uid) self.assertEqual(stat.st_gid, gid) uid = os.getuid() gid = os.getgid() # test a successful chown call chown_func(first_param, uid, gid) check_stat(uid, gid) chown_func(first_param, -1, gid) check_stat(uid, gid) chown_func(first_param, uid, -1) check_stat(uid, gid) if uid == 0: # Try an amusingly large uid/gid to make sure we handle # large unsigned values. (chown lets you use any # uid/gid you like, even if they aren't defined.) # # This problem keeps coming up: # http://bugs.python.org/issue1747858 # http://bugs.python.org/issue4591 # http://bugs.python.org/issue15301 # Hopefully the fix in 4591 fixes it for good! # # This part of the test only runs when run as root. # Only scary people run their tests as root. big_value = 2**31 chown_func(first_param, big_value, big_value) check_stat(big_value, big_value) chown_func(first_param, -1, -1) check_stat(big_value, big_value) chown_func(first_param, uid, gid) check_stat(uid, gid) elif platform.system() in ('HP-UX', 'SunOS'): # HP-UX and Solaris can allow a non-root user to chown() to root # (issue #5113) raise unittest.SkipTest("Skipping because of non-standard chown() " "behavior") else: # non-root cannot chown to root, raises OSError self.assertRaises(OSError, chown_func, first_param, 0, 0) check_stat(uid, gid) self.assertRaises(OSError, chown_func, first_param, 0, -1) check_stat(uid, gid) if 0 not in os.getgroups(): self.assertRaises(OSError, chown_func, first_param, -1, 0) check_stat(uid, gid) # test illegal types for t in str, float: self.assertRaises(TypeError, chown_func, first_param, t(uid), gid) check_stat(uid, gid) self.assertRaises(TypeError, chown_func, first_param, uid, t(gid)) check_stat(uid, gid)
Example #26
Source File: __init__.py From treadmill with Apache License 2.0 | 4 votes |
def write(self, path=None): """Writes the ticket to <path>/<princ>.""" if path is None: path = self.tkt_path _LOGGER.info('Writing ticket: %s', path) # TODO: confirm the comment or rewrite using fs.write_safe. # # The following code will write ticket to destination only of the # ticket is valid. # # If the ticket is not valid, destination file is not touched. # # It is not clear if it is a good fit for fs.write_safe. with tempfile.NamedTemporaryFile(dir=os.path.dirname(path), prefix='.tmp' + self.princ, delete=False, mode='wb') as tkt_file: try: # Write the file tkt_file.write(self.ticket) # Set the owner if self.uid is not None: os.fchown(tkt_file.fileno(), self.uid, -1) # TODO: Should we enforce the mode too? tkt_file.flush() # Only write valid tickets. if krbcc_ok(tkt_file.name): kinit_renew(tkt_file.name, self.user) os.rename(tkt_file.name, path) else: _LOGGER.warning('Invalid or expired ticket: %s', tkt_file.name) return False except (IOError, OSError): _LOGGER.exception('Error writing ticket file: %s', path) return False finally: fs.rm_safe(tkt_file.name) return True
Example #27
Source File: test_posix.py From oss-ftp with MIT License | 4 votes |
def _test_all_chown_common(self, chown_func, first_param, stat_func): """Common code for chown, fchown and lchown tests.""" def check_stat(uid, gid): if stat_func is not None: stat = stat_func(first_param) self.assertEqual(stat.st_uid, uid) self.assertEqual(stat.st_gid, gid) uid = os.getuid() gid = os.getgid() # test a successful chown call chown_func(first_param, uid, gid) check_stat(uid, gid) chown_func(first_param, -1, gid) check_stat(uid, gid) chown_func(first_param, uid, -1) check_stat(uid, gid) if uid == 0: # Try an amusingly large uid/gid to make sure we handle # large unsigned values. (chown lets you use any # uid/gid you like, even if they aren't defined.) # # This problem keeps coming up: # http://bugs.python.org/issue1747858 # http://bugs.python.org/issue4591 # http://bugs.python.org/issue15301 # Hopefully the fix in 4591 fixes it for good! # # This part of the test only runs when run as root. # Only scary people run their tests as root. big_value = 2**31 chown_func(first_param, big_value, big_value) check_stat(big_value, big_value) chown_func(first_param, -1, -1) check_stat(big_value, big_value) chown_func(first_param, uid, gid) check_stat(uid, gid) elif platform.system() in ('HP-UX', 'SunOS'): # HP-UX and Solaris can allow a non-root user to chown() to root # (issue #5113) raise unittest.SkipTest("Skipping because of non-standard chown() " "behavior") else: # non-root cannot chown to root, raises OSError self.assertRaises(OSError, chown_func, first_param, 0, 0) check_stat(uid, gid) self.assertRaises(OSError, chown_func, first_param, 0, -1) check_stat(uid, gid) if 0 not in os.getgroups(): self.assertRaises(OSError, chown_func, first_param, -1, 0) check_stat(uid, gid) # test illegal types for t in str, float: self.assertRaises(TypeError, chown_func, first_param, t(uid), gid) check_stat(uid, gid) self.assertRaises(TypeError, chown_func, first_param, uid, t(gid)) check_stat(uid, gid)
Example #28
Source File: test_posix.py From Fluid-Designer with GNU General Public License v3.0 | 4 votes |
def _test_all_chown_common(self, chown_func, first_param, stat_func): """Common code for chown, fchown and lchown tests.""" def check_stat(uid, gid): if stat_func is not None: stat = stat_func(first_param) self.assertEqual(stat.st_uid, uid) self.assertEqual(stat.st_gid, gid) uid = os.getuid() gid = os.getgid() # test a successful chown call chown_func(first_param, uid, gid) check_stat(uid, gid) chown_func(first_param, -1, gid) check_stat(uid, gid) chown_func(first_param, uid, -1) check_stat(uid, gid) if uid == 0: # Try an amusingly large uid/gid to make sure we handle # large unsigned values. (chown lets you use any # uid/gid you like, even if they aren't defined.) # # This problem keeps coming up: # http://bugs.python.org/issue1747858 # http://bugs.python.org/issue4591 # http://bugs.python.org/issue15301 # Hopefully the fix in 4591 fixes it for good! # # This part of the test only runs when run as root. # Only scary people run their tests as root. big_value = 2**31 chown_func(first_param, big_value, big_value) check_stat(big_value, big_value) chown_func(first_param, -1, -1) check_stat(big_value, big_value) chown_func(first_param, uid, gid) check_stat(uid, gid) elif platform.system() in ('HP-UX', 'SunOS'): # HP-UX and Solaris can allow a non-root user to chown() to root # (issue #5113) raise unittest.SkipTest("Skipping because of non-standard chown() " "behavior") else: # non-root cannot chown to root, raises OSError self.assertRaises(OSError, chown_func, first_param, 0, 0) check_stat(uid, gid) self.assertRaises(OSError, chown_func, first_param, 0, -1) check_stat(uid, gid) if 0 not in os.getgroups(): self.assertRaises(OSError, chown_func, first_param, -1, 0) check_stat(uid, gid) # test illegal types for t in str, float: self.assertRaises(TypeError, chown_func, first_param, t(uid), gid) check_stat(uid, gid) self.assertRaises(TypeError, chown_func, first_param, uid, t(gid)) check_stat(uid, gid)
Example #29
Source File: test_posix.py From gcblue with BSD 3-Clause "New" or "Revised" License | 4 votes |
def _test_all_chown_common(self, chown_func, first_param, stat_func): """Common code for chown, fchown and lchown tests.""" def check_stat(uid, gid): if stat_func is not None: stat = stat_func(first_param) self.assertEqual(stat.st_uid, uid) self.assertEqual(stat.st_gid, gid) uid = os.getuid() gid = os.getgid() # test a successful chown call chown_func(first_param, uid, gid) check_stat(uid, gid) chown_func(first_param, -1, gid) check_stat(uid, gid) chown_func(first_param, uid, -1) check_stat(uid, gid) if uid == 0: # Try an amusingly large uid/gid to make sure we handle # large unsigned values. (chown lets you use any # uid/gid you like, even if they aren't defined.) # # This problem keeps coming up: # http://bugs.python.org/issue1747858 # http://bugs.python.org/issue4591 # http://bugs.python.org/issue15301 # Hopefully the fix in 4591 fixes it for good! # # This part of the test only runs when run as root. # Only scary people run their tests as root. big_value = 2**31 chown_func(first_param, big_value, big_value) check_stat(big_value, big_value) chown_func(first_param, -1, -1) check_stat(big_value, big_value) chown_func(first_param, uid, gid) check_stat(uid, gid) elif platform.system() in ('HP-UX', 'SunOS'): # HP-UX and Solaris can allow a non-root user to chown() to root # (issue #5113) raise unittest.SkipTest("Skipping because of non-standard chown() " "behavior") else: # non-root cannot chown to root, raises OSError self.assertRaises(OSError, chown_func, first_param, 0, 0) check_stat(uid, gid) self.assertRaises(OSError, chown_func, first_param, 0, -1) check_stat(uid, gid) if 0 not in os.getgroups(): self.assertRaises(OSError, chown_func, first_param, -1, 0) check_stat(uid, gid) # test illegal types for t in str, float: self.assertRaises(TypeError, chown_func, first_param, t(uid), gid) check_stat(uid, gid) self.assertRaises(TypeError, chown_func, first_param, uid, t(gid)) check_stat(uid, gid)
Example #30
Source File: test_posix.py From BinderFilter with MIT License | 4 votes |
def _test_all_chown_common(self, chown_func, first_param, stat_func): """Common code for chown, fchown and lchown tests.""" def check_stat(uid, gid): if stat_func is not None: stat = stat_func(first_param) self.assertEqual(stat.st_uid, uid) self.assertEqual(stat.st_gid, gid) uid = os.getuid() gid = os.getgid() # test a successful chown call chown_func(first_param, uid, gid) check_stat(uid, gid) chown_func(first_param, -1, gid) check_stat(uid, gid) chown_func(first_param, uid, -1) check_stat(uid, gid) if uid == 0: # Try an amusingly large uid/gid to make sure we handle # large unsigned values. (chown lets you use any # uid/gid you like, even if they aren't defined.) # # This problem keeps coming up: # http://bugs.python.org/issue1747858 # http://bugs.python.org/issue4591 # http://bugs.python.org/issue15301 # Hopefully the fix in 4591 fixes it for good! # # This part of the test only runs when run as root. # Only scary people run their tests as root. big_value = 2**31 chown_func(first_param, big_value, big_value) check_stat(big_value, big_value) chown_func(first_param, -1, -1) check_stat(big_value, big_value) chown_func(first_param, uid, gid) check_stat(uid, gid) elif platform.system() in ('HP-UX', 'SunOS'): # HP-UX and Solaris can allow a non-root user to chown() to root # (issue #5113) raise unittest.SkipTest("Skipping because of non-standard chown() " "behavior") else: # non-root cannot chown to root, raises OSError self.assertRaises(OSError, chown_func, first_param, 0, 0) check_stat(uid, gid) self.assertRaises(OSError, chown_func, first_param, 0, -1) check_stat(uid, gid) if 0 not in os.getgroups(): self.assertRaises(OSError, chown_func, first_param, -1, 0) check_stat(uid, gid) # test illegal types for t in str, float: self.assertRaises(TypeError, chown_func, first_param, t(uid), gid) check_stat(uid, gid) self.assertRaises(TypeError, chown_func, first_param, uid, t(gid)) check_stat(uid, gid)