Node.js | fs.chmod() Method

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:

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.

Below examples illustrate the fs.chmod() method in Node.js:



Example 1: This example shows the usage of octal integer constants to give the file permissions.

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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'));
  });
});

chevron_right


Output:

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.

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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'));
  });
});

chevron_right


Output:

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




My Personal Notes arrow_drop_up

Im listening

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : nidhi_biet

Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.