Tutorial: Subiendo Joomla por gFTP - Tux Merlin en la Web
Transcripción
Tutorial: Subiendo Joomla por gFTP - Tux Merlin en la Web
Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com Capítulo I - Introducción El programa gFTP es un cliente FTP “bi-modo”, es decir, podemos utilizarlo tanto en modo gráfico en entornos X-Windows como en modo texto en la consola pingüinera. Acompaña casi todas las distribuciones basadas en Debian y tiene li-cencia GNU. Su autor es Brian Masney cuya web es www.gftp.org. Es un cliente muy sencillo de utilizar pero a la vez ultraliviano y muy eficiente. Trabaja con distintos protocolos como http y ssh. Ya hemos visto en algún tutorial anterior el how-to (cómo) subir archivos con este excelente programa en modo gráfico bajo entornos X-Windows, ahora veremos cómo utilizar el mismo pero en modo consola. Y muchos se preguntarán para qué si en modo gráfico todo es más fácil; y si, es verdad, pero también es cierto que algunos somos nostálgicos y presuntuosos y queremos tener un control absoluto de lo que estamos haciendo, comprender la profundidad de un programa es saber cómo trabajan sus comandos. Todos los sistemas operativos y programas con entornos gráficos nos facilitan el trabajo diario pero también debemos saber qué es lo que están haciendo porque ante el más mínimo error no sabemos ni por dónde empezar. El software opera por comandos y conocer esos comandos nos dará sabiduría y nos hará más eficientes. Basta un caso ejemplificador para notar la diferencia: supongamos que por algún motivo desconocido no nos arrancan las X y tenemos urgente que subir algo a nuestra web, ¿qué hacemos?...¿un arakiri con un chip? Para los que tenemos años en informática sabemos que el “mouse dependency” ha atrofiado las mentes de los usuarios y el 90% ante la falta de este periférico se ahoga en un vaso de agua ya que desconoce por completo cómo funciona su sistema operativo. Y esto es válido no solo para GNU/Linux sino que para Windows también. Podemos ampliar diciendo que en modo consola muchas tareas se hacen escribiendo una simple línea de comandos, mientras que si hacemos la misma tarea desde las X estaríamos bastante más tiempo, pero eso después lo podrán apreciar mejor cuando lean el manual que estoy escribiendo página 1 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com sobre GNU/Linux y que algún día saldrá a la luz. A los efectos de este tutorial explicaré el uso de gFTP desde Debian una de las mejores y la más GNU distribución de Linux que existe y es, por otra parte, mi preferida. Para diferenciar el texto de lo que se ve en consola, esto último estará en otro color y con fuente de ancho fijo. Disfruten de este tutorial y aprendan porque el saber no ocupa lugar y vivir preguntando nos convierte en molestos “lammers”. Capítulo II - Entrando en la consola Para invocar a este programa desde la consola y en modo texto –siempre y cuando tengamos permisos- debemos ingresar el comando de la siguiente forma: 1 ~$ gftp-text Resultado: gFTP 2.0.18, Copyright (C) 1998-2003 Brian Masney <[email protected]>. Si tiene alguna pregunta, comentarios o sugerencias sobre este programa, por favor envíemelas. Puede obtener en cualquier momento las últimas noticias sobre el gFTP de mi página web en http://www.gftp.org/ gFTP se entrega sin ABSOLUTAMENTE NINGUNA GARANTÍA; para más detalles, lea el archivo COPYING. Esto es software libre, y usted puede redistri-buirlo bajo ciertas condiciones; para más detalles, lea el archivo COP-YING. Francisco Javier F. Serrador [email protected] Gustavo D. Vranjes <[email protected]> ftp>_ Es común que en algunas distribuciones exista un enlace simbólico con el nombre "ftp" invocando a una alternativa del cliente FTP. Si tenemos un enlace de este tipo podemos poner en la consola directamente "ftp" y obtendremos un resultado idéntico al mostrado. Para el novato en linux le explico brevemente de qué se trata esto. Un enlace simbólico es similar a lo que en Windows se llama "acceso directo". En el caso de linux los enlaces simbólicos pueden invocar directamente a un programa o bien a un programa con algunos de sus parámetros modificadores o "alternatives". Un ejemplo para clarificar: En la distribución Antix-M8 de GNU/Linux, durante la instalación, se crea un enlace simbólico llamado "ftp" que invoca a una "alternative" del programa con el parámetro "-text" que lo que hace es ejecutarlo en modo texto. El enlace simbólico se coloca en el directorio “/usr/bin” con el nombre de ftp, de modo que ftp llama a "/etc/alternatives/ftp", a página 2 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com su vez, dentro de este último directorio, ftp ejecu-ta el comando "gftp-text", es decir, con el modificador "-text" (ejecución en modo texto). Hay muchísimos comandos que podemos invocar de esta forma, este es solo un ejemplo que nos muestra la potencia del pingüino. Continuando con ftp, una vez ejecutado el comando estaremos dentro de la consola ftp como se muestra más arriba. La diferencia que hay entre trabajar en modo consola desde GNU/Linux y desde Windows, es que como el servidor donde tenemos alojado Joomla es linux, gFTP se comunica en sintonía ya que estamos hablando del mismo sistema operativo. Nota del Autor: Si bien algunas instalaciones Joomla se hacen en servidores Windows, en este caso estamos suponiendo que tu instalación está en alguna distribución GNU/Linux. Para saber de qué comandos disponemos en la consola ftp ponemos la palabra/comando “help” y nos dará un listado encolumnado como este: ftp> help Comandos soportados: about clear lcd lmkdir mkdir rename ascii close lchdir lpwd mput rmdir binary delete lchmod lrename open set cd dir ldelete lrmdir put site chdir get ldir ls pwd chmod help lls mget quit ftp>_ Vamos a ir viendo cada uno y su aplicación práctica a los efectos de instalar y/o mantener Joomla. Inclusive habrá al final como bonus track un script para realizar backups frecuentes y programados. página 3 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com En orden de importancia el primer comando que vamos a ver es cómo salir porque es tan vital saber cómo entrar a un programa que cómo salir, el comando para esto es "quit" o simplemente “q”. 1 Aquí debería aparecer el prompt de la consola formado por “usuario@servidor:” para hacer referencia al usuario y al servidor local de linux. He obviado esto y solo utilizo los símbolos “~$” para hacer notar que estamos en la consola como root. Capítulo III - Viendo las opciones del comando Vamos a ver ahora, antes de proseguir, todas las opciones y/o parámetros que soporta el comando. Para ello podemos usar el comando “man” de linux de la siguiente forma: ~$ man gftp Resultado (1): NAME gftp - a graphical ftp client Trad. al ES: un cliente ftp gráfico SYNOPSIS gftp [options] [[proto://][ user : [pass] @] site [: port ][/ di-rectory ]] DESCRIPTION gFTP is a multiprotocol file transfer program for X Windows and the console. It features support for the FTP, SSH, HTTP, and local file system protocols, simultaneous downloads, resuming of interrupted file transfers, file transfer queues, downloading of entire directories, ftp and http proxy support, remote directory caching, bookmarks menu, stop button and many more features. Trad. al ES: gFTP es un programa de transferencia de archivos multiprotocolo para X Windows y la consola. Cuenta con soporte para FTP, SSH, HTTP y protocolos de sistema de archivos local, descargas simultáneas, la reanudación de la interrupción de las transferencias de archivos, colas de transferencia de archivos, descarga de directorios enteros, apoyo proxy para ftp y http, caché remoto de directorios, menú de favoritos, botón de parada y muchas características más. página 4 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com OPTIONS You may enter a url on the command line that gFTP will automatically connect to when it starts up. Trad. al ES: Puede introducir una URL en la línea de comandos que gFTP se conectará automáticamente cuando arranca. --help, -h Display program usage, and quit Trad. al ES: Muestra cómo usar el programa y sale --version, -v This will display the current version of gFTP, and exit Trad. al ES: Esto mostrará la versión actual de gFTP y sale --download, -d This tells gFTP to download the files and directories spe-cified in the url passed on the command line. Trad. al ES: Esto le dice a gFTP “descargar” los archivos y directorios especificados en la url pasados en la línea de comandos. user This is the username that you will login as to the remote site. If no username is supplied, the default is to login as anonymous. Trad. al ES: Este es el nombre de usuario que se le pedirá que ingrese en el sitio remoto. Si no se suministra el nombre de usuario, el valor por defecto para ingresar es “anonymous” (anónimo). pass This is the password you will use to login to the remotesi-te. If you do not enter a password, then gFTP will ask you for one when it startsup. I do not recommend entering your password on the command prompt. Anyone that has access to your machine will be able to see your username and password with the ps(1) command. If you are logging in as anonymous, you do not need to pass a password since gFTP will automati cally send your email address as your password. Trad. al ES: Esta es la contraseña que usará para acceder al sitio remoto. Si no introduce una contraseña, a continuación, gFTP le pedirá que la ingrese cuando inicie.No recomiendo ingresar su contraseña desde el símbolo del sistema. Cualquier persona que tenga acceso a su máquina va a ser capaz de ver su nombre de usuario y contraseña con el comando ps (2). Si usted ingresó como anónimo, no es necesario pasar una contraseña automáticamente gFTP enviará su dirección de correo como su password. página 5 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com site This is the remote site you want to connect to port. Trad. al ES: Este es el sitio remoto al que desea conectarse por el puerto. port This is the port that the remote server is listening on. If you do not enter a port, it will default to using the ftp port listed in the services(5) file. If the entry doesn´t exist there, it will default to port 21. Trad. al ES: Este es el puerto que el servidor remoto está escuchando. Si no ingresa el puerto, por defecto se utilizará el puerto ftp que figuran en el listado archivo de servicios(3). Si la entrada no existe, se usará por defecto el puerto 21. directory This is the default directory to change to once you are connected to the remote server. Trad. al ES: Este es el directoro por defecto a posicionarse una vez que se conectó al servidor remoto. FILES ~/.gftp/gftprc Per user configuration file. This file is commented very well, so that is why there isn’t a manpage for it. Most of the options in here can be set inside gFTP itself. Trad. al ES: Archivo de configuración para el usuario. Este archi-vo está muy bien comentado, por esa razón no hay un manual para él. La mayoría de las opciones de aquí se puede configurar dentro de gFTP. BUGS If you find any bugs in gFTP, please report them directly to the author. AUTHOR Brian Masney <[email protected]> - http://www.gftp.org/ FEBRUARY 2001 GFTP(1) Como podemos apreciar no es nada complicado usar esta excelente herra-mienta y a continuación veremos algunos ejemplos. página 6 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com 1 He puesto en azul y apaisado con el subtítulo “Trad. al ES” la traducción al castellano del manual y en rojo los parámetros. 2 Esto se refiere a que si hay otro usuario accediendo al shell del sistema, este puede usar el comando “ps”, el cual nos muestra los procesos que están corriendo, y saber qué contraseña está utilizando. Por ejemplo, si sabemos que el usuario “pepe” está utilizando el comando gFTP podemos poner en la línea de comandos de la consola linux “ps U pepe” y nos dirá todo el comando que introdujo para conectarse (incluyendo la contraseña) :-). 3 Se refiere al archivo llamado “services” ubicado generalmente en el directorio etc. Este archivo contiene todos los servicios del sistema activos y se indican los puertos habilitados. Capítulo IV - Abriendo una conexión con el servidor Observen que escribí “una” conexión, pero en realidad podemos hacer tantas como nos permita el servidor, es decir, podemos tener tres (o más) consolas abiertas con tres (o más) conexiones distintas y haciendo tres (o más) trabajos distintos. Hay varias opciones para conectarse con el servidor: 1) La más común: Ponemos en la línea de comandos lo siguiente: ~$ gftp-text ftp.miservidor.com Resultado: gFTP 2.0.18, Copyright (C) 1998-2003 Brian Masney… etc… (de aquí en más se obvian textos siguientes) Usuario [anonymous]:_ Y aquí ya deberemos ingresar nuestro nombre de usuario y luego la contraseña. 2) Directamente incluyendo todo Ponemos en la línea de comandos lo siguiente: página 7 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com ~$ gftp-text ftp://usuario:[email protected]:21/public_html/joomla Resultado: gFTP 2.0.18, Copyright (C) 1998-2003 Brian Masney… etc… Buscando ftp.midominio.com Intentando ftp.midominio.com:21 Conectado a ftp.midominio.com:21 220---------- Welcome to Servidor-FTP [TLS] ---------220-You are user number 3 of 50 allowed. 220-Local time is now 17:34. Server port: 21. 220-IPv6 connections are also welcome on this server. 220 You will be disconnected after 15 minutes of inactivity. USER pepe 331 User pepe OK. Password required PASS xxxx 230-User pepe has group access to: pepillos 230 OK. Current restricted directory is / SYST 215 UNIX Type: L8 TYPE I 200 TYPE is now 8-bit binary CWD /public_html/joomla 250 OK. Current directory is /public_html/joomla ftp> _ 3) La aconsejada: Ponemos en la línea de comandos lo siguiente: ~$ gftp-text ftp://[email protected]:21/public_html Resultado: gFTP 2.0.18, Copyright (C) 1998-2003 Brian Masney… etc … Contraseña:_ Y aquí ingresaremos nuestra contraseña, la cual no se verá mientras la escribamos (no es como en Windows que se ven asteriscos). página 8 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com Como acotación final podemos decir que dependiendo de nuestro servidor deberemos, tal vez, cambiar el protocolo o el puerto. Uds. deberán ingresar aquel que corresponda a su servicio FTP que generalmente le es provisto por el hosting. 4) Desde la consola FTP: Ponemos en la línea de comandos lo siguiente: ~$ gftp-text Resultado: gFTP 2.0.18, Copyright (C) 1998-2003 Brian Masney… etc… ftp>_ Y aquí utilizaremos el primer comando de la consola ftp: open. Desde la línea de comandos ftp escribimos: open ftp://usuario:[email protected]:21/public_html/joomla Resultado: gFTP 2.0.18, Copyright (C) 1998-2003 Brian Masney... etc. Buscando ftp.midominio.com Intentando ftp.midominio.com:21 Conectado a ftp.midominio.com:21 220---------- Welcome to Servidor-FTP [TLS] ---------220-You are user number 3 of 50 allowed. 220-Local time is now 17:34. Server port: 21. 220-IPv6 connections are also welcome on this server. 220 You will be disconnected after 15 minutes of inactivity. USER pepe 331 User pepe OK. Password required PASS xxxx 230-User pepe has group access to: pepillos 230 OK. Current restricted directory is / SYST 215 UNIX Type: L8 TYPE I 200 TYPE is now 8-bit binary página 9 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com CWD /public_html/joomla 250 OK. Current directory is /public_html/joomla ftp> _ Si queremos ir haciéndolo paso a paso, ponemos: open ftp.midominio.com Resultado: Usuario [anonymous]:_ Aquí introduciremos nuestro nombre de usuario y presionamos enter. Resultado: Contraseña:_ Aquí ingresaremos la contraseña y presionaremos enter, luego de lo cual, si todo ha sido correctamente escrito aparecerá la bienvenida. Resultado: gFTP 2.0.18, Copyright (C) 1998-2003 Brian Masney… etc… Buscando ftp.midominio.com Intentando ftp.midominio.com:21 Conectado a ftp.midominio.com:21 220---------- Welcome to Servidor-FTP [TLS] ---------220-You are user number 3 of 50 allowed. 220-Local time is now 17:34. Server port: 21. 220-IPv6 connections are also welcome on this server. 220 You will be disconnected after 15 minutes of inactivity. USER pepe 331 User pepe OK. Password required PASS xxxx 230-User pepe has group access to: pepillos 230 OK. Current restricted directory is / SYST 215 UNIX Type: L8 TYPE I 200 TYPE is now 8-bit binary PWD página 10 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com 257 "/" is your current location ftp> _ Observen aquí que no le hemos puesto directorio de acceso por lo que nos dice que nuestra actual ubicación es “/”, es decir que estamos en la raíz de nuestro directorio “home”. Prueben con otras variantes, las más comunes están explicadas. A continuación comenzaremos a ver los comandos de la consola FTP. Capítulo V - Moviéndonos como peces dentro de Tux Siguiendo un orden de utilidad empezaremos viendo los comandos para movernos y trabajar dentro de los directorios del server y dentro de los directorios locales. Algunos comandos se pueden escribir abreviadamente y son iguales. chdir (abreviado cd) Se utiliza para cambiarse de directorio en el servidor. Ej.: cd /public_html/joomla Esto nos posicionaría en el directorio remoto donde podría estar la instala-ción de Joomla. lchdir (abreviado lcd) Idem anterior pero en el disco local. Ej.: cd /documentos Esto nos posicionaría en el directorio local “documentos”. mkdir Crea un directorio en el servidor remoto. Ej.: mkdir /images/phocadownload Esto creará el directorio “phocadownload” dentro del directorio “images”. página 11 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com lmkdir Idem anterior pero en el disco local. rmdir Borra un directorio en el servidor remoto. Por cuestiones de seguridad el rmdir no admite modo recursivo, es decir hay que ir borrando los archivos y luego los directorios. Ej.: rmdir /tmp/temporal Borrará el directorio “temporal” siempre y cuando este esté vacío. lrmdir Idem anterior del disco local. Para listar los contenidos de los directorios disponemos de los siguientes comandos: ls – dir Lista los contenidos del directorio remoto donde estamos posicionados. A diferencia de lo que vimos en el FTP de Windows, en este programa nos muestra todos los detalles de los archivos. Ejemplo: ftp>ls Resultado: drwxrwxrwx 0 0 11 ago 08 2007 .. drwxrwxrwx pepe pepe 4096 abr 07 23:45 administrator drwxrwxrwx pepe pepe 4096 may 24 08:24 cache drwxrwxrwx pepe pepe 4096 abr 09 12:17 codigos drwxrwxrwx pepe pepe 4096 may 27 16:42 components drwxrwxrwx pepe pepe 4096 may 25 07:49 images drwxr-xr-x pepe pepe 4096 abr 07 21:07 includes drwxrwxrwx pepe pepe 4096 ene 12 2009 language drwxr-xr-x pepe pepe 4096 ene 12 2009 libraries drwxrwxrwx pepe pepe 4096 may 20 15:34 logs drwxrwxrwx pepe pepe 4096 may 24 09:23 media drwxrwxrwx pepe pepe 4096 may 27 16:36 modules página 12 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com drwxrwxrwx pepe pepe 4096 abr 12 18:57 plugins drwxrwxrwx pepe pepe 4096 abr 16 17:09 rubberdoc drwxrwxrwx pepe pepe 4096 mar 18 13:52 templates drwxrwxrwx pepe pepe 4096 may 27 16:40 tmp drwxr-xr-x pepe pepe 4096 ene 12 2009 xmlrpc -rw-r--r-- pepe pepe 2663 ene 12 2009 .htaccess -rw-r--r-- pepe pepe 88819 abr 07 21:05 CHANGELOG.php -r--r--r-- pepe pepe 1724 may 25 08:16 configuration.php -rw-r--r-- pepe pepe 1175 abr 07 21:05 COPYRIGHT.php -rw-r--r-- pepe pepe 14277 abr 07 21:05 CREDITS.php -rw-r--r-- pepe pepe 8618 may 03 17:32 error_log -rw-r--r-- pepe pepe 2052 ene 12 2009 index.php -rw-r--r-- pepe pepe 304 ene 12 2009 robots.txt ftp> lls - ldir Idem anterior pero del disco local. rename Renombra un archivo o directorio remoto. Sintaxis: rename nombreviejo nombrenuevo lrename Idem anterior para archivos o directorios locales. delete Borra un archivo o directorio remoto. Por seguridad no admite modo recursivo y el órden para la eliminación de archivos es primero se borran los archivos y luego los directorios. ldelete Idem anterior para archivos o directorios locales. pwd página 13 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com Muestra en qué directorio remoto estamos posicionados. lpwd Idem anterior pero en el disco local. Otros comandos simples: about: nos muestra el “acerca de…”, es decir, quién es el autor del programa, cómo contactarlo, etc. clear: limpia el caché. close: cierra la conexión con el servidor pero sin salir de la consola gFTP. Para salir de todo se usa “quit” o “q”. site: nos permite ejecutar comandos del servidor si disponemos permisos. El comando set Esta utilidad nos permite ver las variables de configuración general de gFTP. Las variables se configuran desde el archivo que mencionamos anteriormente: ~/.gftp/gftprc La ejecución de este comando nos mostrará una lista similar a esta: startup_directory = remote_charsets = remote_lc_time = cache_ttl = 3600 preserve_permissions = 1 preserve_time = 1 sort_dirs_first = 1 show_hidden_files = 1 network_timeout = 120 retries = 3 sleep_time = 30 maxkbs = 0,00 página 14 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com trans_blksize = 20480 default_protocol = FTP enable_ipv6 = 1 local_sortcol = file local_sortasds = ascending remote_sortcol = file remote_sortasds = ascending email = tux@localhost ftp_proxy_host = ftp_proxy_port = 0 … etc… Capítulo VI - Los permisos del pingüino Antes de adentrarnos en la subida y bajada de archivos, vamos a hacer un repaso en profundidad sobre cómo maneja los permisos el sistema GNU/Linux y de paso veremos los comandos respectivos para cambiar y/o asignar: El comando a utilizar es “chmod” ("change mode") para los archivos remotos y “lchmod” para los archivos locales. Chmod es un comando UNIX que se encuentra en la mayoría de los sitemas operativos GNU/Linux y similares como BSD. Este comando no permite cambiar los permisos de acceso a un archivo, a varios o a directorios. Cada archivo tiene nueve clases de acceso, que pueden ser permitidos o no. Se pueden aplicar diferentes permisos al dueño del fichero, al grupo al que el fichero pertenece y al resto de usuarios. Cada una de estas tres clases de usuarios (dueño, grupo, resto de usuarios) puede tener permisos de lectura, escritura y ejecución. Cuando subimos nuestro Joomla hay ciertos directorios y archivos a los que le tenemos que dar determinados permisos, según sea: solo de lectura, de escritura, de ejecución o cualquier combinación de los tres. Un ejemplo típico es el archivo “configuration.php” el que debemos página 15 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com poner de escritura pública para poder cambiarlo cuando lo instalamos o modificamos y luego volver a dejarlo de solo lectura. Justamente esto nos garantiza que estarán seguros aquellos a los que queramos mantener a salvo de extraños. A continuación veamos un poco el concepto de usuario en GNU/Linux para entender mejor. El sistema operativo *NIX esta diseñado para ser multiusuario. Por ello *NIX permite tres niveles de acceso a los archivos, para tres categorias diferentes de usuarios: owner (propietario): La persona que el sistema reconoce como dueño del archivo, el que lo creó. group (grupo): es el conjunto de usuarios con permisos similares. Muy usado en entornos de trabajo, es de escasa aplicación en páginas web. Un ejemplo típico que se da en entornos de redes es el grupo “smbgroup” que corresponde a los usuarios que utilizan Samba para compartir archivos entre Windows y Linux. other (otros): Cualquier otra persona. Es un error asociar el concepto de usuario a una persona real. Se trata de una abstracción, que se refiere no a personas sino a categorias. Por ejemplo, si nosotros creamos un script, somos efectivamente sus autores y propietarios; pero ese script esta destinado a la red. Nosotros, y el resto de personas, accederan al archivo no a traves de nuestra maquina local sino por internet. Es frecuente en los servidores la creación de usuarios genéricos (root, www, www-user etc). En definitiva no olvides que cuando asignas permisos a un script, el owner puede ser cualquiera que visite la página, lo cual será necesario si como es normal se trata de scripts que se administran via web. Tipos de permiso de acceso Read (lectura): Permiso para ver el archivo o directorio, sin hacer cambios. página 16 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com Write (escritura): Permiso de escritura: puede escribir el archivo, y por tanto, cambiarlo. Execute (ejecución): El archivo o directorio puede ser ejecutado. Se usa para directorios con scripts, formularios, etc ... Los directorios en linux como en Windows se consideran como archivos por lo que pueden tener los mismos permisos. La diferencia es que : • El permiso read nos deja listar los archivos de un directorio. • El permiso write no deja añadir nuevos archivos al directorio. • El permiso execute nos deja acceder a los archivos del directorio ¿Donde se ven los permisos? Como vimos anteriormente, al ejecutar el comando dir o ls, este nos mostraba una lista de los archivos/subdirectorios contenidos en el directorio especificado. Vamos a “descomponer” alguno para entender mejor su lectura, tomaremos el archivo de configuración “.htacces”. El punto que precede a los archivos en linux significa que este está oculto. -rw-r--r-- pepe pepe 2663 ene 12 2009 .htaccess |/ / / | | | | || | | | | tamaño nombre del archivo || | | | |_ nombre grupo || | | | || | | |_ nombre usuario || | | || | |_ Permisos genericos || | || |_ Los siguientes tres digitos los permisos del Group || ||___ los siguientes tres caracteres determinan los permisos del owner: | r de read, lectura; w, write, escritura y x de execute, ejecución | página 17 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com | |___ El primer carácter indica si nos encontramos ante un directorio o un fichero: d significa directorio, - significa fichero, l significa link (o enlace simbólico, similar a un acceso directo en Window) El comando “chmod” o “lchmod” puede usarse tanto con letras como con números, pero lo más frecuente es el uso de números. Seguro que ya nos han dicho alguna vez “ponele permiso 777”. Para comprender el significado de los números hay que tener en cuenta el significado de cada número de manera que representan los permisos según este esquema: 4= lectura 2= escritura 1= ejecución 6 (4+2)= lectura y escritura 5 (4+1)= lectura y ejecución 3 (2+1)= escritura y ejecución 7 (4+2+1)= lectura, escritura y ejecución Es decir que para el caso de un archivo con el permiso 777 significa que tanto el owner, group y others tienen permisos de lectura, escritura y ejecución. Veamos una figura: 777 │││_ Permisos de others (4+2+1)= lectura, escritura y ejecución ││_ Permisos de group (4+2+1) = lectura, escritura y ejecución │_ Permisos de owner ((4+2+1) = lectura, escritura y ejecución En este caso quiere decir que cualquiera que acceda a nuestra web puede leer, escribir y ejecutar el archivo. ¿Eso significa que cualquiera nos puede modificar el archivo? No, pero todo depende de la configuración del servidor web (Apache o el que sea) y del archivo .htacces ubicado en nuestro directorio remoto, que por defecto prohibide la escritura pública. Si quieren saber un poco más al página 18 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com respecto lean sobre configuraciones de Apache. Veamos 2 ejemplos más de permisos: 766 │││_ Permisos de others (4+2) = lectura y escritura ││_ Permisos de group (4+2) = lectura y escritura │_ Permisos de owner ((4+2+1) = lectura, escritura y ejecución Unos de los más típicos en Joomla: 755 │││_ Permisos de others (4+1) = lectura y ejecución ││_ Permisos de group (4+1) = lectura y ejecución │_ Permisos de owner ((4+2+1) = lectura, escritura y ejecución Veamos a continuación su equivalente en letras: 0 1 2 3 4 5 6 7 = = = = = = = = --- = sin acceso --x = ejecución -w- = escritura -wx = escritura y ejecución r-- = lectura r-x = lectura y ejecución rw- = lectura y escritura rwx = lectura, escritura y ejecución Asi, en el ejemplo de antes: rw-r--r-significa que el owner tiene permisos de lectura y escritura (rw-); el group permisos de lectura unicamente (r--) y other, permiso de lectura (r--). Lo que sería el equivalente en números a 644. La sintaxis para usar chmod con texto: chmod [ugo][+-][rwx] [nombre_archivo] Donde [u=user, g=group y o=other]; [+/- activa o desactiva los atributos siguien-tes] [r=read, w=write, x=execute] página 19 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com Por ejemplo, chmod go+r index.php significa que asignamos permisos de lectura para group y others en index.php De esta forma solo cambiamos los atributos que especificamos, pero no alteramos otros compatibles que pudieran estar asignados anteriormente (por ejemplo, no modifica la atribucion anterior a group de un permiso de ejecución). Si queremos fijar de nuevo todos los permisos, la sintaxis sería: chmod go=r index.php donde asignamos a group y other permiso de lectura sobre index.php y eliminamos cualquier otro permiso para ambos. También se pueden utilizar comodines, por ejemplo: chmod 644 *.php Esto le cambiaría a todos los archivos php ubicados en el directorio donde estamos posicionados dichos permisos. Algunos componentes Joomla nos facilitan el trabajo de los permisos presentándonos un cuadro para seleccionarlos. Por ejemplo el componente “JoomlaXplorer”: La primer columna de las r son los 4 La segunda columa de las w son los 3 La tercer columna de las x son los 1 En este ejemplo sería 777 Ampliando, tienen que ir haciendo la suma por filas: Propietario es r+w+x=7 Grupo es r+x=5 (ya que w está desmarcado) Público es r+x=5 (ya que w está desmarcado) Otros cuadro común el del componente eXTplorer es este: página 20 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com En este caso es al reves que el anterior ya que las columnas representan los tipos de usuarios y las filas los permisos. Capítulo VII - Subiendo y bajando archivos Ahora pasemos a ver cómo subir nuestro Joomla al servidor o bajarnos una copia. Los comandos para este trabajo son: put y mput para subir y get y mget para descargar. put Este comando nos permite subir un solo archivo a nuestro sitio. Sintaxis: put <nombredelarchivo> Ej.: put configuration.php Esto subirá el archivo configuration.php al directorio remoto donde estemos posicionados actualmente. mput Nos permite subir muchos archivos usando comodines o nombrándolos. Ejemplos: fpt> mput *.php Esto nos subirá todos los archivos con la extensión php desde el directorio local donde estemos posicionados al directorio remoto actual. página 21 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com fpt> mput * Esto nos subirá todos los archivos contenidos en el directorio local donde estemos posicionados al directorio remoto actual, incluyendo subdirectorios. Veamos paso a paso cómo subir nuestro Joomla. 1° - Debemos tener descargado el paquete completo supongamos en el directorio “Documents” de nuestro escritorio home en Debian (puede ser en cualquiera que les plazca, solo lo tomo a manera de ejemplo). 2° - El paquete debe estar descomprimido, caso contrario lo hacemos con el programa que más nos guste. 3° - Ingresamos a gFTP. Si al ejecutar el programa ya le pusimos el parámetro del directorio donde vamos a instalar Joomla salten al paso 5, de lo contrario sigan leyendo el 4. 4° - Suponiendo que estamos en el raíz, es decir, que no le dimos el parámetro de directorio a gFTP y dependiendo de dónde nos permiten alojar los archivos nuestro hosting para vista pública deberemos cambiarnos. Generalmente es public_html o bien www. Escribimos lo siguiente y le damos ENTER: ftp> cd www Resultado: ftp> cd www CWD www 250 OK. Current directory is /www PWD 257 "/www" is your current location ftp>_ Si queremos asegurarnos ejecutamos el comando ls o dir y nos dará un re-sultado como este: página 22 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com ftp> ls Cargando listado del directorio /www desde el caché (LC_TIME=es_AR.UTF-8) --> (1) drwx--x--x pepe pepe 4096 may 30 19:53 .. drwxr-xr-x pepe pepe 4096 nov 10 2008 .smileys drwxr-xr-x pepe pepe 4096 ago 06 2007 _private drwxr-xr-x pepe pepe 4096 may 19 11:22 _vti_bin drwxr-xr-x pepe pepe 4096 ago 06 2007 _vti_cnf drwxr-xr-x pepe pepe 4096 ago 06 2007 _vti_log drwxr-x--- pepe pepe 4096 ago 06 2007 _vti_pvt drwxr-xr-x pepe pepe 4096 ago 06 2007 _vti_txt drwxr-xr-x pepe pepe 4096 jul 26 2008 cgi-bin drwxr-xr-x pepe pepe 4096 abr 08 19:30 js -rw------- pepe pepe 15 jul 27 2008 .ftpquota -rw-r--r-- pepe pepe 501 abr 04 09:35 .htaccess -rw-r--r-- pepe pepe 10683 jul 30 2008 favicon.gif -rw-r--r-- pepe pepe 3638 ago 11 2008 favicon.ico -rw-r--r-- pepe pepe 1756 mar 12 16:43 index.html ftp>_ Este listado nos mostrará donde tenemos nuestros script cgi, la extensiones de Frontpage (por si usamos este programa para diseño), el archivo de cuota de FTP, el archivo de acceso del servidor, etc. Puede variar según la configuración de cada servidor hasta inclusive puede estar vacío. Con esto ya hemos confirmado que estamos bien posicionados en el server, hagamos lo propio con el disco local. Ejecutamos ftp> lls drwxr-xr-x drwxr-xr-x -rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r-ftp>_ el comando lls o ldir y nos dará algo como esto: tux tux tux tux tux tux tux users 4096 may 30 21:45 .. users 4096 may 30 22:57 joomla-v1.5.10 users 51887 mar 28 10:19 antiX-FAQ_JB.html users 119092 feb 12 2009 installed.txt users 166 nov 18 2005 Instrucciones.txt users 23671 mar 28 10:19 Intifada.html users 484705 mar 28 10:19 MEPIS-manual.html página 23 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com Como podemos ver hay un directorio llamado “joomla-v1.5.10” que es donde previamente descomprimí el paquete Joomla. Me cambio a ese directorio usando el comando de consola ftp “lcd” que sirve para cambiarse de directorio localmente, ejecuto: ftp> lcd joomla-v15.10 5 ° - Una vez confirmadas ambas ubicaciones el comando a ejecutar es el siguien-te: ftp> mput * Con esto le estoy diciendo a gFTP que me suba el contenido completo del directorio local donde estoy posicionado al directorio remoto actual. Resultado: STOR /www/CHANGELOG.php 150 Accepted data connection | [========================================= ===============================] @ 17,38KB/s 226-File successfully transferred 226 3.671 seconds (measured here), 23.63 Kbytes per second Transferido /home/tux/Documents/joomla-v1.5.10/CHANGELOG.php correctamen-te a 17,38 KiB/s SITE CHMOD 744 /www/CHANGELOG.php 200 Permissions changed on /www/CHANGELOG.php SITE UTIME 20090328014338 /www/CHANGELOG.php 500 UTC Only MKD /www/modules 257 "/www/modules" : The directory was successfully created SITE CHMOD 755 /www/modules 200 Permissions changed on /www/modules SITE UTIME 20090530230716 /www/modules 500 UTC Only PASV 227 Entering Passive Mode (66,7,198,76,27,31) página 24 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com STOR /www/INSTALL.php 150 Accepted data connection ……………………………………………………………………………………………… …………….. etc. Esto continuará hasta que se carguen todos los archivos a nuestro sitio. La demora dependenderá del ancho de banda de nuestra conexión a internet y del nivel de congestión del servidor de destino, si es que usamos un hosting comparti-do. (1)Para ver el contenido de lo que hemos subido, generalmente hay que utilizar primero el comando “clear cache” de lo contrario es muy probable que no veamos nada. Esto puede suceder si hemos hecho muchos ls o dir del directorio remoto. El caché de directorios nos da mayor velocidad y va guardando en una memoria temporal los últimos listados. Si quieren puede deshabilitarlo del archivo de configuración de gFTP. Una vez finalizada la suba y si ya hemos creado la base de datos previa-mente, podemos proceder a la instalación accediendo al navegador y poniendo la dirección de nuestro sitio, lo cual iniciará el proceso. Nota: Un dato importante sobre el que muchos me han preguntado es el referente al archivo de configuración. Una vez que suban todos los archivos, accedan y renombren el archivo llamado “configuration.php-dist” como “configuration.php”, es decir, eliminen el “-dist” final. Además denle permisos 777 hasta que finalice la instalación, luego cambien los permisos a 755. Sino hacen esto, Joomla dará un error diciéndonos que el archivo no se puede escribir (en realidad no existe). Igualmente, sino hacemos el paso precedente, el instalador al final nos mostrará en una casilla de texto cómo debería ser el archivo y tendremos que hacer un copy/paste dentro de un archivo nuevo. Veamos ahora cómo bajar archivos o bajarnos una copia completa de nuestra instalación. página 25 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com get Este comando nos permite descargar un solo archivo a nuestro disco. Sintaxis: get <nombredelarchivo> Ej.: get configuration.php Esto descargará el archivo configuration.php al directorio local donde estemos posicionados actualmente. mget Nos permite descargar muchos archivos o bien, una copia completa de Joomla. Funciona similar a mput. Supongamos que queremos descarganos una copia completa de Joomla. 1° - Nos cambiamos a nuestro directorio personal: ftp>lcd /home/tux 2° - Creamos el directorio backup: ftp>lmkdir backup 3° - Nos cambiamos al directorio creado: ftp>lcd backup 4° - Si no estamos posicionados en el directorio remoto “www” hacemos: ftp>cd /www 5° - Procedemos a la descarga: ftp>mget * Como dije con mput esto comenzará la descarga la cual demorará según lo mencionado anteriormente. Esto es todo por ahora, con esto ya pueden empezar a trabajar y operar con Joomla desde gFTP. página 26 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com CONCLUSIONES: Si bien el trabajo de operar por FTP por líneas de comandos parece a primera vista más engorroso, les digo que no lo es, solo es cuestión de costumbre ya que una vez que empecemos a trabajar de esta forma verán que todo se hace más rápido. De cualquier modo todo va en cuestión de gustos, la idea del tutorial era darle una explicación lo más acertada posible para que se familiaricen con los comandos y para que en caso de tener problemas sepan qué es lo que está pasando y cómo resolverlo. En el capítulo siguiente y final, como bonus track, explicaré cómo usar gFTP para hacer backups frecuentes usando el cron (lista de tareas de linux) y dejar que le trabajo se haga solo, ideal para webmaster. Bonus track - Script shell para backups Para finalizar este tutorial sobre Joomla y gFTP les dejo este script hecho en bash shell de GNU/linux y que puede servir para descargar una copia de la instalación de nuestro sistema (en realidad sirve para cualquier web). Lo podemos usar dentro del cron de linux de manera que las copias se hagan solas cada cierto período de tiempo. Las explicaciones sobre cómo usarlo están dentro del mismo script y sino saben nada de cron, bájense un breve manual que hay en la sección Descargas ->Manuales Varios. Es un muy buen trabajo de Sergio Gonzalez Durán. Si tienen acceso shell a sus servidores pueden incluir en el mismo script los comandos necesarios "mysql -dump... etc." para bajarse una copia de la base de datos -como por ahí expliqué en tutoriales anteriores- y de ese modo la copia de seguridad será mas completa. El código es este con las explicaciones del caso para cada línea. Deben reemplazar "usuario" con su nombre de usuario en GNU/Linux y en la sección de gFTP con su nombre de usuario y contraseña para acceso a página 27 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com sus servidores por FTP. # Directorio de salida: lugar donde se almacenarála copia de seguridad finalcompactada. # Nombre del archivo que tomará el tar gzip OUTPUT=/home/usuario/Documents/backup_sitiojoomla_$(date +%Y%m%d).tgz # Creo un directorio temporal donde almacenar la descarga mkdir /home/tux/tempbk & # Me cambio al directorio temporal creado cd /home/tux/tempbk & # Cargo la variable con el nombre del directorio temporal para usarla luego BUDIR=/home/tux/tempbk # Me bajo una copia de la instalación completa de Joomla con gFTP consola # Debe indicar el password ya que el sript se ejecuta en segundo plano... lo siento! gftp-text -d ftp://usuario:[email protected]/www & # Mostrar en la pantalla de lo que estamos por hacer echo "Creando archivo gzip con el backup de $BUDIR al archivo $OUTPUT" # Creando el archivo zipeado tar -czf $OUTPUT $BUDIR & # Chequeando si se realizó la copia y sino mostrar error # La variable "$?" devuelve el estado del último programa ejecutado. # Si terminó será 0 sino mostrará algúnn mensaje de error if [ $? == 0 ]; then echo "El archivo:" echo $OUTPUT echo "ha sido creado como backup del sitio:" página 28 / 29 Tutorial: Subiendo Joomla por gFTP by Tux Merlin - Joomla-gnu.com www.joomla-gnu.com echo else echo echo echo echo fi $BUDIR "A ocurrido un problema el archivo:" $OUTPUT "como backup del sitio:" $BUDIR # Borro el directorio temporal rm -dfr /home/tux/tempbk & Pueden descargar el script que adentro incluye todas las explicaciones y formas de uso de la sección descargas. El archivo de descarga está con formato text bash-shell, deben editarlo con Vi, Nano, Joe o el editor de texto GNU/Linux que prefieran, cuidando que no queden salgos de línea ni nada por el estilo puesto que de lo contrario el intérprete no lo reconocerá y dará un error. {jd_file file==11} página 29 / 29 Powered by TCPDF (www.tcpdf.org)