Foros del Web » Programando para Internet » PHP »

mkdir y copy, me crean dir y file con otro usuario

Estas en el tema de mkdir y copy, me crean dir y file con otro usuario en el foro de PHP en Foros del Web. Hola lista... Una pregunta y un aporte al final. Como dice el titulo, necesito con un script crear un dirX y copiar un archivoX dentro ...
  #1 (permalink)  
Antiguo 16/07/2004, 17:13
 
Fecha de Ingreso: junio-2003
Mensajes: 105
Antigüedad: 14 años, 5 meses
Puntos: 0
mkdir y copy, me crean dir y file con otro usuario

Hola lista...

Una pregunta y un aporte al final.

Como dice el titulo, necesito con un script crear un dirX y copiar un archivoX dentro del él.
Pero me gustaria que el user y el group que tenga ese dirX y ese archivoX sea el mismo del .php que tiene el script de creacion. (ese script para crear-copiar-borrar-eliminar, esta mas abajo)

Cuando con mi herramienta FTP creo un dirX o subo un archivoX, todo tiene un user "master" y un group "mastergrp" (x ej).
Pero cuanto hago lo mismo desde un script de .php (que es master, mastergrp) tanto el dirX como el archivoX, tiene como user a "www" y un group "www".

¿Queria saber si puedo hacer un mkdir y un copy, estableciendo el user y group del archivo .php que los esta creando... Desde ya gracias


============SCRIPT==============
=====crear-copiar-borrar-eliminar======
===============================
Se que este tema de copiar ya se ha visto teno un script que pasandole el nombre de un dir y dando a $action el valor 1, me crea el dir un archivo index.php dentro de ese dir. Si por el contrario doy el valor cero, borra el archivo y luego elimina el dir. Todo ok. este es el codigo:
<?
$path = $SCRIPT_FILENAME;
$path = dirname($path); // $file toma el valor "/etc"

if ($action == "1") {
if (isset($midir) && !is_dir($path."/".$midir)) {
mkdir ($path."/".$midir, 0777);
$archivo = $path."/".$midir;
chown ($archivo, master2);
chgrp ($archivo, master2grp);
echo "<br>DIR CREADO";

if (!file_exists($path."/".$midir."/index.php") && copy ($DOCUMENT_ROOT."/indexado.php", $DOCUMENT_ROOT."/".$midir."/index.php")) {
echo "<br>";
echo "file creado";
}
}
}
else
{
if (isset($midir) && is_dir($path."/".$midir)) {
if (file_exists($path."/".$midir."/index.php") && unlink ($path."/".$midir."/index.php")) {
echo "borre archivo";
}
rmdir ($path."/".$midir);
echo "<br>";
echo "<br>DIR BORRADO";
}
echo "<br>";
}
?>

Última edición por robervcp; 16/07/2004 a las 17:14 Razón: mal tipeo
  #2 (permalink)  
Antiguo 16/07/2004, 17:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Puedes usar la función

chmod()
www.php.net/chmod

Para establecer los permisos de usuario que guestes. teniendo en cuenta que chmod lo va a ejecutar el usuario que usa PHP en tu caso el tal "www" con sus permisos y restricciones.

Un saludo,
  #3 (permalink)  
Antiguo 16/07/2004, 17:35
 
Fecha de Ingreso: junio-2003
Mensajes: 105
Antigüedad: 14 años, 5 meses
Puntos: 0
El usuario del Script no es www, es "master"

Cita:
Iniciado por Cluster
Puedes usar la función

chmod()
www.php.net/chmod

Para establecer los permisos de usuario que guestes. teniendo en cuenta que chmod lo va a ejecutar el usuario que usa PHP en tu caso el tal "www" con sus permisos y restricciones.
Cluster, perdon si no escribi claro:
El usuario del Script de creacion no es www, es "master"

Ahi en el Script hice un intento por chmod, pero no funco.
Me deniega todo tipo de cambio de ese estilo.

El que lo ejecutaria seria "master", que es el dueño del script, para poder cambiarle el dueño al arhicvo que acabo de copiar (que es www)
  #4 (permalink)  
Antiguo 16/07/2004, 17:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ok, ok ...

El problema es que para el S.O. quien hace o deshace es el usuairo que corre PHP .. no puedes cambiar de usuario un archivo si no lo creas con ese usuario y .. PHP no va a cambiar de usuario.

En tal caso tendrías que hacerlo por comando del S.O. directo (Linux en consola) saliendo al S.O. por funciones como exec() .. system() y similar. Pero si para cambiar el usuario de un archivo es necesario ser "root" u otro usuario con más permisos que el "www" que correo PHP tendras que usar herramientas como sudo (http://www.courtesan.com/sudo/) para cambiar de usuario momentaneamente y lanzar tu comando en la shell como si lo hicieras en la consola.

Si usas un servicio de hosting . .no vas a tener permisos para todo esto.

Un saludo,
  #5 (permalink)  
Antiguo 16/07/2004, 18:04
 
Fecha de Ingreso: junio-2003
Mensajes: 105
Antigüedad: 14 años, 5 meses
Puntos: 0
Cita:
Iniciado por Cluster

Si usas un servicio de hosting . .no vas a tener permisos para todo esto.
Listo, entonces ya no puedo hacer mas nada, es algo del server.
Pero queria confirmar eso, antes de seguir
Gracias por todo
slds
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:06.