The fs.chmod() method is used to change the permissions of a given path. These permissions can be specified using string constants or octal numbers that correspond to their respective file modes.
Note: The Windows platform only supports the changing of the write permission. It also does not support the distinction between the permissions of user, group, or others.
Syntax:
javascript
Output:
javascript
Output:
fs.chmod( path, mode, callback )Parameters: This method accepts three parameters as mentioned above and described below:
- path: It is a string, Buffer or URL that denotes the path of the file of which the permission has to be changed.
- mode: It is string or octal integer constant that denotes the permission to be granted. The logical OR operator can be used to separate multiple permissions.
- 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.
// Node.js program to demonstrate the
// fs.chmod() method
// Import the filesystem module
const fs = require('fs');
// Grant only read permission to user
console.log("Granting only read access to user");
fs.chmod("example.txt", 0o400, () => {
console.log("\nReading the file contents");
console.log(fs.readFileSync("example.txt", 'utf8'));
console.log("\nTrying to write to file");
try {
fs.writeFileSync('example.txt', "This file has now been edited.");
}
catch (e) {
console.log("Error Code:", e.code);
}
// Grant both read and write permission to user
console.log("\nGranting read and write access to user");
fs.chmod("example.txt", 0o600, () => {
console.log("Trying to write to file");
fs.writeFileSync('example.txt', "This file has now been edited.");
console.log("\nReading the file contents");
console.log(fs.readFileSync("example.txt", 'utf8'));
});
});
Granting only read access to user Reading the file contents This is an example text file. Trying to write to file Error Code: EACCES Granting read and write access to user Trying to write to file Reading the file contents This file has now been edited.Example 2: This example shows the usage of string constants and OR operator to give the file permissions.
// Node.js program to demonstrate the
// fs.chmod() method
// Import the filesystem module
const fs = require('fs');
// Grant only read permission to user
console.log("Granting only read access to user");
fs.chmod("example.txt", fs.constants.S_IRUSR, () => {
// Reading the file
console.log("File Contents:", fs.readFileSync("example.txt", 'utf8'));
// Trying to write to file
try {
console.log("\nTrying to write to file");
fs.writeFileSync('example.txt', "This file now has been edited.");
}
catch (e) {
console.log("Error Occurred, Error Code:", e.code);
}
// Granting both read and write permission
console.log("\nGranting both read and write permission to user");
fs.chmod("example.txt", fs.constants.S_IRUSR | fs.constants.S_IWUSR, () => {
// Check the file mode
console.log("Current File Mode:", fs.statSync("example.txt").mode);
console.log("Trying to write to file");
fs.writeFileSync('example.txt', "This file now has been edited.");
console.log("File Contents:", fs.readFileSync("example.txt", 'utf8'));
});
});
Granting only read access to user File Contents: This file now has been edited. Trying to write to file Error Occurred, Error Code: EACCES Granting both read and write permission to user Trying to write to file File Contents: This file now has been edited.Reference: https://nodejs.org/api/fs.html#fs_fs_chmod_path_mode_callback