


tambien me dijeron que cambiara el user y pass del mail creo qeu esta en POP3
la verdad no tengo idea de como empezar si me podrian orientar muchas gracias
??
| |||
En Linux tienes una aplicación llamanda "sudo" para cambiar de usuario y así tomar los privilegios de alguien como un "root" o lo que necesites para ejecutar el resto de comandos que requieras. sudo http://www.courtesan.com/sudo/ Es decir .. desde PHP .. tienes que ejecutar un exec() o system() o funciones afines para ejecutar sudo y ahí cambiar de usuario al que requieras con la autentificación que necesite bajo los parámetros que ahí en "línea de comandos" indicaras. Luego . .continuar con tus exec() que correspondan para ejecutar tus comandos. Las funciones como exec() .. system() y demás que habrás visto .. no tienen parámetros para ejecutar tus comandos pues el "parámetro" de ejecución al S.O. es una cadena con lo "mismo" que escribirías si estubieses delante de tu "consola". Ejemplo ... Código PHP: http://www.php.net/exec hay algunas que pueden retornar lo que la "consola" arrojará como resultado tras la ejecución del comanto .. también puedes recoger un código de error de como se ejecutó el comando en sí de PHP (exec() o la función que corresponda) además de la salida del própio S.O. ante la ejecución de tu própio comando ... Un saludo, |
| |||
Cita: Hay muchos servidores POP que pueden trabajar con cuentas de usuarios que NO sean del S.O. .. por ejemplo gestionadas en una BD Mysql o similar .. así no tendrías problemas de permisos y sobre todo de "alto riesgo" si vas a trabajar como más arriba te indiqué cambiando a un usuario tipo "root" desde PHP .. date cuenta que tu "contraseña" de root va a estar en un script PHP "a la vista" de cualquiera que vea los archivos de ese servidor .. tambien me dijeron que cambiara el user y pass del mail creo qeu esta en POP3 Un saludo, |
| ||||
ok buenos datos CLUSTER primeramente gracias ![]() a ver si entendi bien Código PHP: exec("ping $ip"); executa el sudo ? la variable $ip ? y entonces como lo entiendo me manda directamente a la interfaz (sudo) para cambiar el user y pass y no es necesario de madar variables. ahora seria seguro? perdon por la novates en esto de linux ![]() y de las funciones que señalas que regresan error de como se ejecutó el comando en sí de PHP? cual sera la que me recomiendas? Última edición por The_omars; 03/01/2005 a las 11:15 |
| |||
Todo lo que va entre "" en exec() es un comando para el S.O. de tu servidor. "Ping" es un comando (eso era un ejemplo) .. y $ip es una variable de PHP para demostrar como "pasar" parámetros desde PHP a la ejecución del comando en el S.O. "sudo" tiene sus própios parámetros que debes revisar y sobre toco constatar que vas a poder usarlo en tu servidor. En el ejemplo que puse ahí no hay nada sobre "sudo" .. En definitiva . .primero debes saber que comandos debes ejecutar en "línea de comandos" de tu S.O. Linux para luego "ejecutarlos" desde PHP. La función que mejor te vendría bien sería system() tal vez o passthru() .. revisa en la documentación de PHP cual te entrega más información. Un saludo, |
| ||||
otra duda otra duda ![]() el archivo .php para debera executarse en el servidor linux? (o deberia conectarme al servidor?) o lo puedo probar desde mi maquina que no es el servidor ( que esta en windows xp corriedo el archivo en easy PHp) ? estoy perdido en este tema nunca lo habia echo ![]() ![]() ![]() ( cuando executo el system(useradd $user) me tendria que aparecer alguna pantalla o algo asi? ) Última edición por The_omars; 03/01/2005 a las 12:33 |
| |||
El "exec()" o el "system()" o la función que uses debe ejecutarse en el servidor "linux" .. si tu haces tus pruebas en un servidor windows .. los comandos no serán los mismos .. de hecho en linux (salvo XP pro, Windows Server 2000, 2003 y poco mas) no gestionana usuarios y permisos ... ------ Fijate bien como se usa system() (www.php.net/sytem) Su sintax es: string system ( string command [, int &return_var]) y ejemplos tienes ahí mismo ... Un saludo, |
| ||||
Okl yap pero otra pregunta ![]() ![]() ya cambie todo pero una pregunta sobre system() como puedo controlar lo que me manda por ejemplo echo $user=$_POST["user"]; echo "<br>"; echo $pass=$_POST["pass"]; system('useradd',$user); system('passwd',$user); system('$pass'); como puedo tomar valores que me manda desde system Última edición por The_omars; 03/01/2005 a las 17:24 |
| |||
No .. no es así como se usa dicha función (no sé si entiendes una sintax descrita en el manual ..pero ahí no dice nada de "parametro","valor" .. Debes comprender como se "lee" una sintax descrita en el manual .. sino, no podrás "probar" nada). Código PHP: echo $user=$_POST["user"]; echo "<br>"; sino $user=$_POST["user"]; echo $user; Pero fuera que ese es el uso de dicha función .. en tu caso particular ya te he comentado que debes usar otras herramientas (programas/comandos) para poder hacer eso mismo .. NO vas a tener suficientes permisos para ejecutar dicho comando .. PHP no corre bajo un usuario "root" o con permisos suficientes para hacer eso. Debes usar "sudo" (el link ya te lo dejé; ahí veras su sintax de uso!) A su vez .. tienes que tener presente y SABER como se usa tal comando de Linux en tu caso .. por mi parte no sé como se le pasa un parámetro a "passwd" .. ya sé que si tu lo ejecutas en línea de comandos te lanza el "prompt" y te pide dicho password .. pero aquí se trata de buscar el comando que acepte por "parámetro" el valor que corresponda ... no sé si de la forma que pretendes usarlo te va a funcionar. (Pero esto ya no es PHP sino conocimiento de "Linux" o el Sistema operativo que uses ..). Un saludo, |
| ||||
Ok entendido gracias por las respuestas cluster voy intentar hacer esto a ver que pasa y despues dejo el script ya terminado aqui en foros , pues si mas gente del foro me puede orientar a pag con scripts parecidos al que quiero hacer me ayudarian mucho amigos. |
| ||||
Entendido Cluster OK CLUSTER entendido perdon por eso buen pues aqui posteo otra ves esto ok pero, aun poniendole la ruta completa no me manda ninguna respuesta ya que necesito que me mande si la contraseña fue correcta pues me mande una confrimacion pero nop asigno variables y no obtengo resutado. por ejemplo $fd=popen("/bin/login $user","w"); fputs($fd,"$pass"); echo $fd; pclose($fd); solo obtengo Resource id #3 esto |
| |||
Pero .. con fopen() estás escribiendo un archivo .. y lo que necesitas es usar el comando del S.O. que corresponda . .a todo esto todavía no aclaras si ya usas SUDO para que PHP tome el usuario que corresponde para ejecutar esas acciones .. ¿seguro que /bin/login .. lo puede abrir cualquier usuario .. o sólo el root? Por lo demás .. el uso de fopen() no vas a obtener más resultado que el que ves .. un "resource id" ... para eso tienes las funciones fread() para leer de algún archivo abierto. Pero no sé que esperas haciendo eso .. fread() leería un archivo .. no una respuesta del S.O. .. en tal caso será la función fopen() la que arrojará algún error si no es posible abrir tal archivo ... de hecho ese /login $user .. no es un nombre de archivo válido En su defecto deberías abrir un "socket"? .. pero para eso que quieres hacer? .. ------------------- Parece que lo que tienes que hacer para crear un usuario es (usando SUDO): Código PHP: Otro detalle es que las contraseñas son encriptadas ... El parámetro -p es para indicar tu password y que no haga el "prompt" para pedirtela .. (revisa el manual oficial de adduser de Linux, yo no domino Linux). Recuerda que la función exec() .. o system() o la que uses puede retornar la "salida" y el estado de la ejecución de dicha función . .usalo. Un saludo, Última edición por Cluster; 06/01/2005 a las 10:24 |
| ||||
Cita: estoy un poco confundido el system tengo entendido que regresa
Iniciado por Cluster // usa SUDO para cambiar de usuario!!. al usuario root!. $semilla = substr($nombre_usuario, 0, 2); $password_encriptada = crypt($nombre_usuario, $semilla); $comando = "adduser ".$nombre_usuario." -p ".$password_encriptada; exec($comando); Cita: Devuelve la última línea de la salida del comando en caso de éxito, y FALSE si se presenta algún fallo. (manual de php) intente algo parecido a lo que tu pusiste CLUSTER para probarlo Código PHP: al momento que corro que mando los datos pues al momento de imprimir el resultado system($comando,$salida); pues me arroja 3 numero que no se interpretar y lo que yo espero pues es algo asi como sale en la interfaz de linux: interfas de linux login: hola password: hola [hola@pruebas hola]$ bueno pues algo asi que me arrogara para saber si entro o no , o si su password fue el coorecto. ![]() |
| |||
Las funciones de PHP tipo exec() .. system() y afines sólo te ponene a tu disposición una forma de ejecutar comandos en tu "consola" .. No estás llamando a tal función del "Sistema operativo" que devuelva un "true/false" .. sino que sólo dan una salida .. Esa "salida" .. la tendrás que interpretar tu .. pero antes debes "recoger esa salida" y eso lo hace la ejecución de las funciones tipo system() ... Si al ejecutarse un comando TAL .. no dá ninguna salida . pues tu veras como lo interpretas .. tal vez si hay "error" dé un mensaje pero no lo da si no hay error (eso ya no lo sé yo). Y .. lo que nunca vas a ver es: [hola@pruebas hola]$ que es el "prompt" de tu consola .. sólo la "salida" que ocasionen la ejecución de tus comandos ... También puedes usar: shell_exec() ... y otras funciones (y sintax) .. Revisa la documentación oficial de PHP al respecto. Otro detalle que deberías probar es a forzar a ver más mensajes de error con: error_reporting (E_ALL); por si hay algún error que no estés viendo .. Y ojo con las sintax de los comandos . .si dice que va un espacio .. respetalo ... Un saludo, |
| ||||
hola de nuevo y molestando otra vez ![]() he estado haciendo pruebas de este script para lo que yaa les comentaba.. ahora habia puesto varias cosas como ejecutar el Código PHP: Changing password for user apache. Changing password for apache me imagino que al momento de correr la aplicacion web, estoy entrando como apache? ![]() bueno pues eso solo era un comentario ahora hice varios intentos para recoger errores pero como ya le comentana a CLUSTER que me mada numeros que la verdad no se interpretar ejemplo: Código PHP: pues la verdad muchas gracias cluster yo se que a lo mejor casi nadie ha hecho esto que quiero hacer y por eso es mas dificil encontrar respuestas o mas bien soluciones, pero en verdad agradezco toooda la informacion que me a otorgado CLUSTER. hora pues ha encontrar la solucion y en cuanto y tenga este script pues con gusto lo compartire con el foro. ![]() |
| |||
Cita: Si, así es .. y todos estos mensajes te lo he estado mencionando .. de hecho ya te comenté que deberías usar SUDO para cambiar de usuario (al root o al que necesites). Por qué tendrás problemas de privilegios si usas tu usuario "Apache".me imagino que al momento de correr la aplicacion web, estoy entrando como apache? (user). Un saludo, |