Python os.fchown() 方法



描述

Python os.fchown() 方法用于更改给定文件的拥有者和组 ID。只有超级用户才有权限使用此方法修改或执行文件操作。因此,运行代码时请使用“sudo”命令。

fchown() 方法接受三个参数,即 fd、uid 和 gid。“uid”和“gid”将拥有者和组 ID 设置为“fd”参数指定的 文件。如果我们想保留任何 ID 不变,则将其设置为 -1。

注意 - 此方法自 Python 2.6 起可用。并且,只能在 UNIX 平台上使用。

语法

以下是 Python os.fchown() 方法的语法:

os.fchown(fd, uid, gid);

参数

Python os.fchown() 方法接受以下参数:

  • fd - 这是需要设置拥有者 ID 和组 ID 的文件描述符。

  • uid - 这是要为文件设置的拥有者 ID。

  • gid - 这是要为文件设置的组 ID。

返回值

Python os.fchown() 方法不返回任何值。

示例

以下示例显示了 fchown() 方法的用法。在这里,我们以只读模式打开一个文件,然后尝试使用 fchown() 设置文件的拥有者和组 ID。

import os, sys, stat
# Now open a file "/tmp/foo.txt"
fd = os.open( "/tmp", os.O_RDONLY )
# Set the user Id to 100 for this file.
os.fchown( fd, 100, -1)
# Set the group Id to 50 for this file.
os.fchown( fd, -1, 50)
print("Changed ownership successfully!!")
# Close opened file.
os.close( fd )

运行上述程序时,会产生以下结果:

Changed ownership successfully!!

示例

如前所述,只有超级用户才能修改给定文件的拥有权。在下面的示例中,我们尝试修改拥有者 ID,这将导致 PermissionError。

import os
# Open a file
fileObj = os.open("newFile.txt", os.O_RDONLY)
try:
   os.fchown(fileObj, 10,-1)
   print("Ownership changed for the given file.")
except PermissionError:
   print("Don't have permission to change the owner/group id of this file.")
except OSError as e:
   print(f"Error: {e.strerror}")
# Close the file
os.close(fileObj)

执行上述程序后,会产生以下结果:

Don't have permission to change the owner/group id of this file.
python_files_io.htm
广告