Método Node.js fs.chmodSync()

El método fs.chmodSync() se utiliza para cambiar sincrónicamente los permisos de una ruta determinada. Estos permisos se pueden especificar mediante constantes de string o números octales que correspondan a sus respectivos modos de archivo.
Nota: La plataforma Windows solo admite el cambio del permiso de escritura. Tampoco admite la distinción entre los permisos de usuario, grupo u otros.
Sintaxis: 
 

fs.chmodSync( path, mode )

Parámetros: este método acepta dos parámetros, como se mencionó anteriormente y se describe a continuación: 
 

  • ruta: Es una string, Buffer o URL que denota la ruta del archivo del cual se quiere cambiar el permiso.
  • modo: es una string o una constante entera octal que denota el permiso que se otorgará. El operador lógico OR se puede utilizar para separar varios permisos.

Los siguientes ejemplos ilustran el método fs.chmodSync() en Node.js:
Ejemplo 1: Este ejemplo muestra el uso de constantes de string y el operador OR para otorgar permisos de archivo.
 

javascript

// Node.js program to demonstrate the
// fs.chmodSync method
  
// Import the filesystem module
const fs = require('fs');
  
// Allowing only read permission
console.log("Giving only read permission to user");
fs.chmodSync("example.txt", fs.constants.S_IRUSR);
  
// Check the file mode
console.log("Current File Mode:", 
    fs.statSync("example.txt").mode);
  
// Reading the file
console.log("File Contents:", 
    fs.readFileSync("example.txt", 'utf8'));
  
// Trying to write to file
try {
  console.log("Trying to write to file");
  fs.writeFileSync('example.txt', "Hello");
}
catch (e) {
  console.log("Error Found, Code:", e.code);
}
  
// Allowing both read and write permission
console.log("\nGiving both read and write"
    + " permissions to user");
  
fs.chmodSync("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', "World");
  
console.log("File Contents:",
    fs.readFileSync("example.txt", 'utf8'));

Producción: 
 

Giving only read permission to user
Current File Mode: 33024
File Contents: Hello
Trying to write to file
Error Found, Code: EACCES

Giving both read and write permissions to user
Current File Mode: 33152
Trying to write to file
File Contents: World

Ejemplo 2: Este ejemplo muestra el uso de constantes enteras octales para dar permisos al archivo.
 

javascript

// Node.js program to demonstrate the
// fs.chmodSync method
  
// Import the filesystem module
const fs = require('fs');
  
// Allowing only read permission
console.log("Giving only read permission to everyone");
fs.chmodSync("example.txt", 0o444);
  
// Check the file mode
console.log("Current File Mode:", 
    fs.statSync("example.txt").mode);
  
// Reading the file
console.log("File Contents:", 
    fs.readFileSync("example.txt", 'utf8'));
  
// Trying to write to file
try {
  console.log("Trying to write to file");
  fs.writeFileSync('example.txt', "Hello");
}
catch (e) {
  console.log("Error Found, Code:", e.code);
}
  
// Allowing both read and write permission
console.log("\nGiving both read and "
     + "write permission to everyone");
fs.chmodSync("example.txt", 0o666);
  
// 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', "World");
  
console.log("File Contents:", 
    fs.readFileSync("example.txt", 'utf8'));

Producción: 
 

Giving only read permission to everyone
Current File Mode: 33060
File Contents: Hello
Trying to write to file
Error Found, Code: EACCES

Giving both read and write permission to everyone
Current File Mode: 33206
Trying to write to file
File Contents: World

Referencia: https://nodejs.org/api/fs.html#fs_fs_chmodsync_path_mode
 

Publicación traducida automáticamente

Artículo escrito por sayantanm19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *