Node.js fs. lchown() Method
Last Updated :
13 Jun, 2022
The fs.lchown() method is used to asynchronously change the owner and group of the given path, however, it does not dereference symbolic links if the path is one, unlike the fs.chown() method which does dereference the links to their path. The function accepts a user id and group id that can be used to set the respective owner and group. It does not return anything.
Syntax:
fs.lchown( fd, uid, gid, callback )
Parameters: This method accepts four parameters as mentioned above and described below:
- fd: It is an integer that denotes the file descriptor of the file for which the owner and group has to be changed.
- uid: It is a number that denotes the user id that corresponds to the owner to be set.
- gid: It is a number that denotes the group id that corresponds to the group to be set.
- callback: It is a function that would be called when the method is executed.
- err: It is an error that would be thrown if the method fails.
Below examples illustrate the fs.lchown() method in Node.js:
Example 1: This example shows the setting of the owner and group using the lchown() method.
javascript
const fs = require( 'fs' );
let filepath = "example_file.txt";
let symlinkpath = "symlinkFile";
fs.symlinkSync(filepath, symlinkpath);
fs.lchown(symlinkpath, 1200, 1201, (err) => {
if (err)
console.log(err);
else {
console.log("Given uid and gid set successfully");
}
});
|
Before Running the Code:
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
Output of the Code:
Given uid and gid set successfully
After Running the Code:
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
Example 2: This example shows the comparison between chown() and lchown() in dereferencing the symbolic link.
javascript
const fs = require( 'fs' );
let filepath = "example_file.txt";
let symlinkpath1 = "symlinkFile1";
let symlinkpath2 = "symlinkFile2";
fs.symlinkSync(filepath, symlinkpath1);
fs.symlinkSync(filepath, symlinkpath2);
fs.lchown(symlinkpath1, 1200, 1300, (err) => {
if (err)
console.log(err);
else {
console.log("lchownSync: uid and gid set successfully");
}
});
fs.chown(symlinkpath1, 1100, 1202, (err) => {
if (err)
console.log(err);
else {
console.log("chownSync: uid and gid set successfully");
}
});
|
Before Running the Code:
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
Output of the Code:
lchown: uid and gid set successfully
chown: uid and gid set successfully
After Running the Code:
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
Reference: https://nodejs.org/api/fs.html#fs_fs_lchown_path_uid_gid_callback
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...