当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python os.fchown()用法及代码示例


Python中的OS模块提供了与操作系统进行交互的函数。操作系统属于Python的标准实用程序模块。该模块提供了使用依赖于操作系统的函数的便携式方法。

如果文件名和路径无效或无法访问,或者具有正确类型但操作系统不接受的其他参数,则os模块中的所有函数都会引发OSError。

os.fchown()Python中的方法用于将与指定文件描述符关联的文件的所有者和组ID更改为指定的数字所有者ID(UID)和组ID(GID)。此方法等效于os.chown(fd, uid, gid)方法。


注意: os.fchown()该方法仅在UNIX平台上可用,并且该方法的函数通常仅对超级用户或特权用户可用。

用法: os.fchown(fd, uid, gid) 

参数:
fd:表示要设置其uid和gid的文件的文件描述符
uid:一个整数值,表示要为文件设置的所有者ID。
id:一个整数值,表示要为文件设置的组ID。要使任何一个ID保持不变,请将其设置为-1。

返回类型:此方法不返回任何值。

代码1:os.fchown()方法的使用
# Python program to explain os.fchown() method  
    
# importing os module  
import os 
  
# File 
filename = "file.txt"
  
  
# Open the file and get the  
# file descriptor associated 
# with it using os.open() method 
fd = os.open(filename, os.O_RDWR) 
  
# Print the current owner id 
# and group id of the file 
  
# os.stat() method will return a  
# 'stat_result’ object of 
# ‘os.stat_result’ class whose 
# 'st_uid' and 'st_gid' attributes 
# will represent owner id and group id 
# of the file respectively  
print("Owner id of the file:", os.stat(fd).st_uid) 
print("Group id of the file:", os.stat(fd).st_gid)  
  
  
# Change the owner id and  
# the group id of the file 
# associated with the file descriptor 
# using os.fchown() method 
uid = 200
gid = 300
os.fchown(fd, uid, gid) 
print("\nOwner and group id of the file changed") 
  
   
# Print the owner id 
# and group id of the file 
print("\nOwner id of the file:", os.stat(fd).st_uid) 
print("Group id of the file:", os.stat(fd).st_gid) 

输出:
os.fchown() method terminal output

代码2:使用os.fchown()方法设置任何一个ID并保持其他不变
# Python program to explain os.fchown() method  
    
# importing os module  
import os 
  
# File 
filename = "file.txt"
  
# Open the file and get the  
# file descriptor associated 
# with it using os.open() method 
fd = os.open(filename, os.O_RDWR) 
  
# Print the current owner id 
# and group id of the file 
  
# os.stat() method will return a  
# 'stat_result’ object of 
# ‘os.stat_result’ class whose 
# 'st_uid' and 'st_gid' attributes 
# will represent owner id and group id 
# of the file respectively  
print("Owner id of the file:", os.stat(fd).st_uid) 
print("Group id of the file:", os.stat(fd).st_gid)  
  
  
# Change only group id of  
# the file and leave owner id 
# unchanged 
  
# set id as -1 to leave 
# it unchanged 
uid = -1
gid = 1000
os.fchown(fd, uid, gid) 
print("\ngroup id of the file changed") 
  
   
# Print the owner id 
# and group id of the file 
print("\nOwner id of the file:", os.stat(fd).st_uid) 
print("Group id of the file:", os.stat(fd).st_gid) 

输出:
os.fchown() method terminal output

代码3:如果指定的路径是符号链接
# Python program to explain os.fchown() method  
    
# importing os module  
import os 
  
# File path 
path = "./file.txt"
  
# Creating a symlink 
# of the above path   
# using os.symlink() method 
symlink = "./file(symlink).txt"
os.symlink(path, symlink) 
  
# Open the symlink 
# and get the file descriptor 
# associated with it using 
# os.open() method 
fd = os.open(symlink, os.O_RDWR) 
   
# Print the current owner id 
# and group id of the file 
# as well as the symlink pointing 
# to the above specified file path  
print("Owner id of the file:", os.stat(path).st_uid) 
print("Group id of the file:", os.stat(path).st_gid)  
  
print("Owner id of the symlink:", os.stat(symlink).st_uid) 
print("Group id of the symlink:", os.stat(symlink).st_gid)  
  
# Change the owenership  
# of the symlink pointing  
# to the above file './file.txt' 
uid = 600
gid = 700
os.fchown(fd, uid, gid) 
print("\nOwner id and group id changed") 
  
  
# Print the owner id 
# and group id of the file 
# as well as the symlink 
print("\nOwner id of the file:", os.stat(path).st_uid) 
print("Group id of the file:", os.stat(path).st_gid)  
  
print("Owner id of the symlink:", os.stat(symlink).st_uid) 
print("Group id of the symlink:", os.stat(symlink).st_gid) 
  
  
# As os.fchown() method 
# follows symlink 
# so, we can change the 
# owner and group id  
# through a symlink 

输出:
os.fchown() method terminal output

参考: https://docs.python.org/3/library/os.html



相关用法


注:本文由纯净天空筛选整理自ihritik大神的英文原创作品 Python | os.fchown() method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。