Método Node.js fsPromises.chmod()

El método fsPromises.chmod() se usa para cambiar los permisos de una ruta dada. 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. No admite la distinción entre los permisos del usuario, grupo u otros. Cambia los permisos de un archivo y luego resuelve la Promesa sin argumentos en caso de éxito.

Sintaxis:

fsPromises.chmod( 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 o se puede utilizar para separar varios permisos.

Los siguientes ejemplos ilustran el método fsPromises.chmod() en Node.js:

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

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

Producción:

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.

Ejemplo 2: este ejemplo muestra el uso de constantes de string y un operador para otorgar permisos al archivo

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

Producción:

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.

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

Publicación traducida automáticamente

Artículo escrito por nitin_sharma 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 *