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


Node.js fs.lchown()用法及代码示例


fs.lchown()方法用于异步更改给定路径的所有者和组,但是,如果路径为1,它不会引用符号链接,这与fs.chown()方法确实取消引用链接到其路径是不同的。该函数接受可用于设置各自所有者和组的用户ID和组ID。它不返回任何东西。

用法:

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

参数:此方法接受上述和以下所述的四个参数:

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

以下示例说明了Node.js中的fs.lchown()方法:

范例1:本示例使用lchown()方法显示所有者和组的设置。



// Node.js program to demonstrate the 
// fs.lchown() method 
  
// Import the filesystem module 
const fs = require('fs'); 
  
let filepath = "example_file.txt"; 
let symlinkpath = "symlinkFile"; 
  
// Create a symlink to the file 
fs.symlinkSync(filepath, symlinkpath); 
  
// Set the owner and group of the symbolic 
// link to a new one 
// New owner is "geeksforgeeks" with user id 1200 
// New group is "editor" with group id 1201 
fs.lchown(symlinkpath, 1200, 1201, (err) => { 
  if (err) 
    console.log(err); 
  else { 
    console.log("Given uid and gid set successfully"); 
  } 
});

在运行代码之前:

xubuntu@xubuntu:~/Desktop/fs-lchown$ ls -l
total 4
-rw-rw--w- 1 xubuntu xubuntu 4 Apr 26 05:10 example_file.txt
-rw-rw-r-- 1 xubuntu xubuntu 290 Apr 26 05:15 index.js

代码输出:

Given uid and gid set successfully

运行代码后:

xubuntu@xubuntu:~/Desktop/fs-lchown$ ls -l
total 4
-rw-rw--w- 1 xubuntu xubuntu 4 Apr 26 05:10 example_file.txt
-rw-rw-r-- 1 xubuntu xubuntu 290 Apr 26 05:15 index.js
lrwxrwxrwx 1 geeksforgeeks editor 16 Apr 26 09:15 symlinkFile -> example_file.txt

范例2:本示例显示了chown()和lchown()在取消引用符号链接方面的比较。

// Node.js program to demonstrate the 
// fs.lchown() method 
  
// Import the filesystem module 
const fs = require('fs'); 
  
let filepath = "example_file.txt"; 
let symlinkpath1 = "symlinkFile1"; 
let symlinkpath2 = "symlinkFile2"; 
  
// Create two symlinks to the file 
fs.symlinkSync(filepath, symlinkpath1); 
fs.symlinkSync(filepath, symlinkpath2); 
  
// Use lchown() on the first symlink 
// New owner is "geeksforgeeks" with user id 1200 
// New group is "owner" with group id 1300 
fs.lchown(symlinkpath1, 1200, 1300, (err) => { 
  if (err) 
    console.log(err); 
  else { 
    console.log("lchownSync:uid and gid set successfully"); 
  } 
}); 
  
// Use chown() on the second symlink 
// New owner is "max" with user id 1100 
// New group is "author" with group id 1202 
fs.chown(symlinkpath1, 1100, 1202, (err) => { 
  if (err) 
    console.log(err); 
  else { 
    console.log("chownSync:uid and gid set successfully"); 
  } 
});

在运行代码之前:

xubuntu@xubuntu:~/Desktop/fs-lchown$ ls -l
total 4
-rw-rw--w- 1 xubuntu xubuntu 6 Apr 26 09:15 example_file.txt
-rw-rw-r-- 1 xubuntu xubuntu 777 Apr 26 09:16 index.js

代码输出:

lchown:uid and gid set successfully
chown:uid and gid set successfully

运行代码后:

xubuntu@xubuntu:~/Desktop/fs-lchown$ ls -l
total 4
-rw-rw--w- 1 max author 6 Apr 26 09:15 example_file.txt
-rw-rw-r-- 1 xubuntu xubuntu 777 Apr 26 09:16 index.js
lrwxrwxrwx 1 geeksforgeeks owner 16 Apr 26 09:15 symlinkFile1 -> example_file.txt
lrwxrwxrwx 1 root root 16 Apr 26 09:15 symlinkFile2 -> example_file.txt

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




相关用法


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