Node.js fs. Método lchown()

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

Deja una respuesta

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