📜  Node.js fs.fchown()函数

📅  最后修改于: 2022-05-13 01:56:41.920000             🧑  作者: Mango

Node.js fs.fchown()函数

fs.fchown() 方法用于更改给定文件描述符的所有者和组。该函数接受可用于设置各自所有者和组的用户 ID 和组 ID。它有一个回调函数,如果函数失败,它会返回任何可能发生的错误。

句法:

fs.fchown( fd, uid, gid, callback )

参数:此方法接受上面提到的四个参数,如下所述:

  • fd:它是一个整数,表示必须更改所有者和组的文件的文件描述符。
  • uid:是一个数字,表示要设置的所有者对应的用户id。
  • gid:它是一个数字,表示与要设置的组对应的组ID。
  • 回调:它是一个在方法执行时将被调用的函数。
    • err:如果方法失败会抛出一个错误。

下面的示例说明了 Node.js 中的fs.fchown() 方法

示例 1:此示例显示所有者的设置。

// Node.js program to demonstrate the
// fs.fchown() method
  
// Import the filesystem module
const fs = require('fs');
  
let fd = fs.openSync("example_file.txt", "r");
  
// Set the owner to a new one keeping the group same
// New owner is "geek" with user id 1027
// The old group is "xubuntu" with group id 999
fs.fchown(fd, 1027, 999, (error) => {
  if (error)
    console.log("Error Code:", error);
  else
    console.log("uid and gid set successfully");
});

运行代码之前:

xubuntu@xubuntu: ~/Desktop/fs-fchown$ ls -l
total 8
-rw-rw--w- 1 xubuntu xubuntu 4 Apr 26 02:08 example_file.txt
-rw-rw-r-- 1 xubuntu xubuntu 290 Apr 26 02:08 index.js

代码输出:

Given uid and gid set successfully

运行代码后:

xubuntu@xubuntu: ~/Desktop/fs-fchown$ ls -l
total 8
-rw-rw--w- 1 geek xubuntu 4 Apr 26 02:08 example_file.txt
-rw-rw-r-- 1 xubuntu xubuntu 290 Apr 26 02:08 index.js

示例 2:此示例显示了组的设置。

// Node.js program to demonstrate the
// fs.fchown() method
  
// Import the filesystem module
const fs = require('fs');
  
let fd = fs.openSync("example_file.txt", "r");
  
// Set the owner to a new one keeping the group same
// New owner is "raj" with user id 1025
// New group is "author" with group id 1031
fs.fchown(fd, 1025, 1031, (error) => {
  if (error)
    console.log("Error Code:", error);
  else
    console.log("uid and gid set successfully");
});

运行代码之前:

xubuntu@xubuntu: ~/Desktop/fs-fchown$ ls -l
total 8
-rw-rw--w- 1 xubuntu xubuntu 4 Apr 26 02:08 example_file.txt
-rw-rw-r-- 1 xubuntu xubuntu 290 Apr 26 02:08 index.js

代码输出:

Given uid and gid set successfully

运行代码后:

xubuntu@xubuntu: ~/Desktop/fs-fchown$ ls -l
total 8
-rw-rw--w- 1 raj author 4 Apr 26 02:08 example_file.txt
-rw-rw-r-- 1 xubuntu xubuntu 290 Apr 26 02:08 index.js

参考: https://nodejs.org/api/fs.html#fs_fs_fchown_fd_uid_gid_callback