Skip to content
Related Articles

Related Articles

Improve Article
Node.js | fsPromises.chmod() Method
  • Last Updated : 25 Jun, 2020

The fsPromises.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 does not support the distinction between the permissions of the user, group, or others. It changes the permissions of a file then resolves the Promise with no arguments upon success.

Syntax:

fsPromises.chmod( path, mode)

Parameters: This method accepts two 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.

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



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




// Node.js program to demonstrate the 
// fsPromises.chmod() method 
     
// Import the filesystem module 
const fs = require('fs'); 
const fsPromises = require('fs').promises;
  
console.log("Granting only read access to user"); 
     
fsPromises.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); 
     
console.log("\nGranting read and write access to user"); 
  
fsPromises.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')); 

Output:

Granting only read access to user

Reading the file contents     
This file has now been edited.

Trying to write to file       
Error Code: EPERM

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 
// fsPromises.chmod() method 
    
// Import the filesystem module 
const fs = require('fs'); 
const fsPromises = fs.promises;
    
// Grant only read permission to user 
console.log("Granting only read access to user"); 
fsPromises.chmod("example.txt", fs.constants.R_OK);
    
// 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"); 
fsPromises.chmod("example.txt", 
   fs.constants.R_OK | fs.constants.W_OK);
  
// Check the file mode 
console.log("Current File Mode:", 
    fs.statSync("example.txt").mode); 
  
console.log("Trying to write to file"); 
try
{
  fs.writeFileSync('example.txt', 
    "This file now has been edited."); 
} catch (e) {
  console.log("Error ", e.code);
}
  
console.log("File Contents:", 
    fs.readFileSync("example.txt", 'utf8')); 

Output:

Granting only read access to user
File Contents: This file has now been edited.  

Trying to write to file
Error Occurred, Error Code: EPERM

Granting both read and write permission to user
Current File Mode: 33060
Trying to write to file
Error  EPERM
File Contents: This file has now been edited.

Reference: https://nodejs.org/api/fs.html#fs_fspromises_chmod_path_mode




My Personal Notes arrow_drop_up
Recommended Articles
Page :