Node.js fs. lchown() Method
Last Updated : 28 Apr, 2025
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 // 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"); } });
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 // 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"); } });
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
Similar Reads
Node JS fs.readFile() Method âIn Node.js, the fs.readFile() method is a fundamental tool for reading files asynchronously, allowing your application to remain responsive while accessing file data. This method is part of Node.js's File System (fs) module, which provides an API for interacting with the file system.Syntaxfs.readFi
3 min read
Node.js fs.exists() Method The fs exists method in node is used to check if the input file or the directory exists or not. It is an inbuilt application programming interface of fs module which provides an API for interacting with the file system in a manner closely modeled around POSIX functions. Syntax:fs.exists( path, callb
2 min read
Node fs.existsSync() Method In Node.js, the fs.existsSync() method checks if a file or folder exists at a given path. It's synchronous, meaning it pauses the program until it finds the result (either true if it exists, or false if it doesn't). Because it stops everything while it works, itâs best used for quick checks in small
3 min read
Node fs.mkdir() Method The fs.mkdir() method in Node.js is used to create a directory asynchronously.Syntaxfs.mkdir(path, mode, callback)Parameters: This method accepts three parameters as mentioned above and described below: path: This parameter holds the path of the directory that has to be created.mode: This parameter
2 min read
Node.js fs.truncate() Method The fs.truncate() method in node.js is used to change the size of the file i.e either increase or decrease the file size. This method changes the length of the file at the path by len bytes. If len represents a length shorter than the file's current length, the file is truncated to that length. If i
2 min read
Node.js fs.renameSync() Method In Node.js, the fs.renameSync() method is part of the built-in File System (fs) module and is used to rename or move files and directories synchronously. This method is useful when you need to quickly change a file's name or move it to a different directory synchronously. It blocks the execution of
3 min read
Node.js fs.rmdir() Method The fs.rmdir() method is used to delete a directory at the given path. It can also be used recursively to remove nested directories.Syntax: fs.rmdir( path, options, callback )Parameters: This method accepts three parameters as mentioned above and described below: path: It holds the path of the direc
3 min read
Node.js fs.stat() Method The fs.stat() method is used to return information about the given file or directory. It returns an fs.Stat object which has several properties and methods to get details about the file or directory. Syntax:fs.stat( path, options, callback )Parameters: This method accept three parameters as mentione
3 min read
Node.js fs.mkdtempSync() Method The fs.mkdtempSync() method is an inbuilt application programming interface of fs module which provides an API for interacting with the file system in a manner closely modeled around standard POSIX functions. The fs.mkdtempSync() method creates a unique temporary directory. This is the synchronous v
2 min read
Node.js fs.realpath() Method The fs.realPath() method is used to compute the canonical pathname of the given path. It does so by resolving the ., .. and the symbolic links in the path. Syntax: fs.realpath( path, options, callback ) Parameters: This method accept three parameters as mentioned above and described below: path: It
3 min read