El método fs.fchmod() se usa para cambiar los permisos de un descriptor de archivo determinado. 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. No admite la distinción entre los permisos de usuarios, grupos u otros.
Sintaxis:
fs.fchmod( fd, mode, callback )
Parámetros: Este método acepta tres parámetros como se mencionó anteriormente y se describe a continuación:
- fd: es un valor 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.
- devolución de llamada: Es una función que sería llamada cuando se ejecuta el método.
- err: es un error que se lanzaría si el método falla.
Los siguientes ejemplos ilustran el método fs.fchmod() 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.fchmod() 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 the user"); fs.fchmod(fd, fs.constants.S_IRUSR, (err) => { if (err) throw err; // 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 the user"); fs.fchmod(fd, fs.constants.S_IRUSR | fs.constants.S_IWUSR, (err) => { if (err) throw err; // 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 the user Current File Mode: 33024 File Contents: This file has been written over. Trying to write to file Error Found, Code: EACCES Giving both read and write permission to the 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.fchmod() 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.fchmod(fd, 0o444, (err) => { if (err) throw err; // 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.fchmod(fd, 0o666, (err) => { if (err) throw err; // 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: This file has been written over. 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_fchmod_fd_mode_callback
Publicación traducida automáticamente
Artículo escrito por sayantanm19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA