El método fs.lchown() se utiliza para cambiar de forma asíncrona el propietario y el grupo de la ruta dada, sin embargo, no elimina la referencia a los enlaces simbólicos si la ruta es una, a diferencia del método fs.chown() que elimina la referencia de los enlaces a su sendero. La función acepta una identificación de usuario y una identificación de grupo que se pueden usar para configurar el propietario y el grupo respectivos. No devuelve nada.
Sintaxis:
fs.lchown( fd, uid, gid, callback )
Parámetros: este método acepta cuatro 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 para el cual se debe cambiar el propietario y el grupo.
- uid: Es un número que denota el id de usuario que corresponde al propietario a configurar.
- gid: Es un número que denota el id de grupo que corresponde al grupo a configurar.
- 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.lchown() en Node.js:
Ejemplo 1: este ejemplo muestra la configuración del propietario y el grupo mediante el método lchown().
javascript
// Node.js program to demonstrate the // fs.lchown() method // Import the filesystem module const fs = require('fs'); let filepath = "example_file.txt"; let symlinkpath = "symlinkFile"; // Create a symlink to the file fs.symlinkSync(filepath, symlinkpath); // Set the owner and group of the symbolic // link to a new one // New owner is "geeksforgeeks" with user id 1200 // New group is "editor" with group id 1201 fs.lchown(symlinkpath, 1200, 1201, (err) => { if (err) console.log(err); else { console.log("Given uid and gid set successfully"); } });
Antes de ejecutar el código:
xubuntu@xubuntu: ~/Desktop/fs-lchown$ ls -l total 4 -rw-rw--w- 1 xubuntu xubuntu 4 Apr 26 05:10 example_file.txt -rw-rw-r-- 1 xubuntu xubuntu 290 Apr 26 05:15 index.js
Salida del Código:
Given uid and gid set successfully
Después de ejecutar el código:
xubuntu@xubuntu: ~/Desktop/fs-lchown$ ls -l total 4 -rw-rw--w- 1 xubuntu xubuntu 4 Apr 26 05:10 example_file.txt -rw-rw-r-- 1 xubuntu xubuntu 290 Apr 26 05:15 index.js lrwxrwxrwx 1 geeksforgeeks editor 16 Apr 26 09:15 symlinkFile -> example_file.txt
Ejemplo 2: Este ejemplo muestra la comparación entre chown() y lchown() al desreferenciar el enlace simbólico.
javascript
// Node.js program to demonstrate the // fs.lchown() method // Import the filesystem module const fs = require('fs'); let filepath = "example_file.txt"; let symlinkpath1 = "symlinkFile1"; let symlinkpath2 = "symlinkFile2"; // Create two symlinks to the file fs.symlinkSync(filepath, symlinkpath1); fs.symlinkSync(filepath, symlinkpath2); // Use lchown() on the first symlink // New owner is "geeksforgeeks" with user id 1200 // New group is "owner" with group id 1300 fs.lchown(symlinkpath1, 1200, 1300, (err) => { if (err) console.log(err); else { console.log("lchownSync: uid and gid set successfully"); } }); // Use chown() on the second symlink // New owner is "max" with user id 1100 // New group is "author" with group id 1202 fs.chown(symlinkpath1, 1100, 1202, (err) => { if (err) console.log(err); else { console.log("chownSync: uid and gid set successfully"); } });
Antes de ejecutar el código:
xubuntu@xubuntu: ~/Desktop/fs-lchown$ ls -l total 4 -rw-rw--w- 1 xubuntu xubuntu 6 Apr 26 09:15 example_file.txt -rw-rw-r-- 1 xubuntu xubuntu 777 Apr 26 09:16 index.js
Salida del Código:
lchown: uid and gid set successfully chown: uid and gid set successfully
Después de ejecutar el código:
xubuntu@xubuntu: ~/Desktop/fs-lchown$ ls -l total 4 -rw-rw--w- 1 max author 6 Apr 26 09:15 example_file.txt -rw-rw-r-- 1 xubuntu xubuntu 777 Apr 26 09:16 index.js lrwxrwxrwx 1 geeksforgeeks owner 16 Apr 26 09:15 symlinkFile1 -> example_file.txt lrwxrwxrwx 1 root root 16 Apr 26 09:15 symlinkFile2 -> example_file.txt
Referencia: https://nodejs.org/api/fs.html#fs_fs_lchown_path_uid_gid_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