Anuncios

Bienvenidos sean a este post, hoy veremos una funcion de PHP.

Anuncios

Esta funcion nos permite modificar el usuario o dueño de un archivo. Veamos como es su sintaxis:

chown(archivo, usuario);
Anuncios

El primer argumento sera el archivo que modificaremos y el segundo sera el nuevo dueño. Podemos pasar tanto el nombre del usuario como el uuid. Nos devolvera un valor booleano para indicar si fue exitoso, true, y en caso contrario un false. Veamos un ejemplo para entender como trabaja pero primero crearemos un archivo vacio, para sistemas basados en Unix pueden usar el siguiente comando:

$ touch archivo.txt
Anuncios

Con nuestro archivo creado, si miramos sus atributos pueden ser como los siguientes:

-rw-r--r-- 1 tinchicus tinchicus   0 nov 30 11:08 archivo.txt
Anuncios

En el caso de ustedes no va a tener este dueño y grupo pero va a ser algo similar a esto. Con esto realizado, pasemos a crear un nuevo archivo en el mismo directorio y agregaremos el siguiente codigo:

<?php

$archivo = "archivo.txt";
$arr = posix_getpwuid(fileowner($archivo));
echo "Usuario actual: " . $arr['name'] . "\n";
chown($archivo, "root");
clearstatcache();
$arr = posix_getpwuid(fileowner($archivo));
echo "Usuario nuevo: " . $arr['name'] . "\n";

?>
Anuncios
Anuncios

Primero definimos una variable con nuestro archivo a modificar. Lo siguiente es almacenar el resultado devuelto por posix_getpwuid, esta funcion devuelve todos los datos en base a usuario o id del usuario que le pasemos. Esto nos devolvera un array con cada uno de los valores del usuario informado. Por esta razon, solo seleccionaremos a la clave name y la mostraremos con un mensaje indicando que es el usuario actual. Aplicamos la funcion al archivo y le pasamos un nuevo usuario. Limpiamos el cache de posix_getpwuid y volvemos a repetir lo comentado antes de cambiar al usuario. Ejecutemos para ver como es tu salida:

$ php cambio.php
Usuario actual: tinchicus
PHP Warning:  chown(): Operation not permitted in /home/tinchicus/lenguajes/php/c/cambio.php on line 6
Usuario nuevo: tinchicus
$
Anuncios

Como pueden ver, en este caso fallo porque no tenemos los permisos suficientes. Si bien nos devolvio los datos no modifico al usuario, como se puede ver en ambas salidas. Para solucionarlo debemos ejecutarlo de la siguiente manera:

$ sudo php cambio.php
Usuario actual: tinchicus
Usuario nuevo: root
$
Anuncios

Ahora si funciono correctamente, mostrando al usuario viejo y nuevo del archivo. Si lo comprobamos en el S.O, los atributos se veran de la siguiente manera:

-rw-r--r-- 1 root tinchicus 0 nov 30 11:17 archivo.txt
Anuncios

Antes de finalizar, esta funcion solo puede modificar archivos que se encuentran locales en el servidor y no podemos modificarlo en servidores remotos.

Anuncios

En resumen, hoy hemos visto chown, que es, para que sirve, como se utiliza, y un ejemplo para poderlo en accion, asi como tambien un error que puede surgir y como solucionarlo. Espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios
pp258

Donatión

It’s for site maintenance, thanks!

$1.50