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