Método Node.js fs.fchmodSync()

El método fs.fchmodSync() es una programación de aplicación incorporada del módulo fs que se utiliza para cambiar de forma síncrona los permisos de un descriptor de archivo dado. Estos permisos se pueden especificar como un parámetro utilizando constantes de string o números octales correspondientes 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.fchmodSync( fd, mode )

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

  • fd: es un número entero que denota el descriptor de archivo del archivo cuyo permiso se debe cambiar.
  • modo: es una constante de string o una constante 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.fchmodSync en Node.js:

Ejemplo 1: este ejemplo muestra el uso de constantes de string y el operador OR para otorgar permisos al archivo.

// Node.js program to demonstrate the
// fs.fchmodSync method
  
// Import the filesystem module
const fs = require('fs');
  
// Getting the file descriptor
const fd = fs.openSync('example_file.txt', 'r');
  
// Allowing only read permission
console.log("Giving only read permission to user");
fs.fchmodSync(fd, fs.constants.S_IRUSR);
  
// Check the file mode
console.log("Current File Mode:",
    fs.statSync("example_file.txt").mode);
  
// Reading the file
console.log("File Contents:",
    fs.readFileSync("example_file.txt", 'utf8'));
  
// Trying to write to file
try {
  console.log("Trying to write to file");
  fs.writeFileSync('example_file.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 user");
fs.fchmodSync(fd, fs.constants.S_IRUSR | fs.constants.S_IWUSR);
  
// Check the file mode
console.log("Current File Mode:",
    fs.statSync("example_file.txt").mode);
  
console.log("Trying to write to file");
fs.writeFileSync('example_file.txt', 
    "This file has been written over.");
  
console.log("File Contents:", 
    fs.readFileSync("example_file.txt", 'utf8'));

Producción:

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

Giving both read and write permission to user
Current File Mode: 33152
Trying to write to file
File Contents: This file has been written over.

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

// Node.js program to demonstrate the
// fs.fchmodSync method
  
// Import the filesystem module
const fs = require('fs');
  
// Getting the file descriptor
const fd = fs.openSync('example_file.txt', 'r');
  
// Allowing only read permission
console.log("Giving only read permission to everyone");
fs.fchmodSync(fd, 0o444);
  
// Check the file mode
console.log("Current File Mode:", 
    fs.statSync("example_file.txt").mode);
  
// Reading the file
console.log("File Contents:", 
    fs.readFileSync("example_file.txt", 'utf8'));
  
// Trying to write to file
try {
  console.log("Trying to write to file");
  fs.writeFileSync('example_file.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.fchmodSync(fd, 0o666);
  
// Check the file mode
console.log("Current File Mode:", 
    fs.statSync("example_file.txt").mode);
  
console.log("Trying to write to file");
  
fs.writeFileSync('example_file.txt', 
    "This file has been written over.");
  
console.log("File Contents:", 
    fs.readFileSync("example_file.txt", 'utf8'));

Producción:

Giving only read permission to everyone
Current File Mode: 33060
File Contents: Hello World
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: This file has been written over.

Referencia: https://nodejs.org/api/fs.html#fs_fs_fchmodsync_fd_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 *