Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ComandosLinux
ComandosLinux
2. El comando apropos
Una herramienta útil para encotrar otras herramientas es el comando apropos. El comando
whatis muestra información en base al nombre de un comando, posee su propia base de datos
que relaciona nombres con descripciones. apropos busca en esa base de datos de manera
inversa, en base a una palabra, busca en las descripciones para mostrar los comandos que
concuerden.
Ejemplo 1. Ejemplo de uso de apropos
Por ejemplo si queremos utilidades relacionadas con la palabra jpeg:
$ apropos jpeg
jpegtopnm (1) - convert JPEG/JFIF file to portable pixmap or graymap
pcdtoppm (1) - a program converting PhotoCD images to ppm or jpeg
ppmtojpeg (1) - convert portable pixmap into a JPEG/JFIF file
3. El comando cal
Este es un comando bastante útil, que aunque no tenga mucha relación con los anteriormente
dados, sirve para demostrar que las herramientas basadas en texto no son inútiles para tareas
domésticas. cal es una herramienta que sirve para mostrar en pantalla el calendario. Su
sintaxis es la siguiente:
cal [-jy] [[mes] año]]
Si cal se ejecuta sin argumentos, mostrará en pantalla el calendario del mes y año actuales,
por ejemplo:
usuario@maquina:~/$ cal
April 2001
S M Tu W Th F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
4. El comando cat
Se utiliza para concatenar archivos y mostrarlos por la salida estándar (normalmente la
pantalla). Su sintaxis es muy simple:
cat [opción] [archivo]...
Donde archivo puede ser uno o más archivos. Si no se especifica este segundo parámetro, cat
tomará la entrada de la entrada estándar (normalmente el teclado).
Sus opciones más comunes son:
-n
Numera todas las líneas de salida.
-b
Numera aquellas líneas de salida que no estén en blanco.
5. El comando cd
Este comando se usa para cambiar de directorio. Generalmente cuando el usuario inicia una
sesión en GNU/Linux, el directorio donde comienza es su directorio personal. Desde ahí uno
puede moverse a los diferentes directorios donde se tenga acceso usando este comando. Su
sintaxis es la siguiente:
cd directorio
Éste es un comando interno del intérprete (por ejemplo, bash), y no lleva opciones que sean de
relevancia como para nombrarlas.
Con la utilización del comando cd es bueno explicar conceptos como rutas relativas y rutas
absolutas.
Ruta relativa
Si la ruta no comienza con / entonces se considera relativa a la ruta actual.
Ejemplo 2. Una ruta relativa
Referirse al directorio bin/ no es lo mismo que referirse al directorio /bin/, si uno se encuentra
en el directorio /usr/, la primera instancia corresponde a /usr/bin/ mientras que la segunda
corresponde a /bin/.
Ruta absoluta
Si la ruta comienta con / entonces hará referencia a una ruta en el directorio raíz.
Ejemplo 3. Varios casos de uso de cd
Suponiendo que el directorio actual es /home/usuario:
[/home/usuario]$ cd subdirectorio
[/home/usuario/subdirectorio]$
6. El comando cp
Se utiliza para copiar archivos, su sintaxis es la siguiente:
cp [opciones] archivo-origen directorio-destino
cp [opciones] archivos-origen... directorio-destino
Con esto, juancito copia todos sus archivos con los permisos y atributos exactamente igual a
como están en los archivos originales, y sólo debe especificar su directorio personal, ya que la
opción -R se encarga de incluir todos los archivos que se encuentran dentro del mismo.
Ejemplo 5. Usando cp para actualizar archivos.
Pedro se encuentra trabajando en el laboratorio de informática de su escuela donde en el
servidor de archivos existe un directorio /usr/local/tp que contiene los directorios de todos los
grupos de trabajo de la escuela. Pedro pertenece al grupo 15 y necesita actualizar su grupo de
copias del trabajo práctico 2, entonces usará el comando cp de la siguiente manera:
$ cp -uv /usr/local/tp/grupo15/tp2/* /home/pedro/TPs/2
Con la opción -v, Pedro puede ver cuales archivos se han actualizado, y con la opción -u sólo
copia aquellos archivos mas recientes que los que él ya posee.
[2] juancito es un usuario sabio que hace copias de respaldo, ¿usted las hace?
7. El comando date
Este comando tiene dos funciones: una es la de mostrar en pantalla la fecha del sistema (en
varios formatos, como veremos a continuación), la otra es la función de configurar la hora del
sistema, pero para que esta funcionalidad se cumpla, se debe ejecutar el comando desde una
sesión de root. La sintaxis de este comando es:
date [opción...] [+FORMAT]
date [opción] [MMDDhhmm[[CC]AA][.ss]]
FORMAT controla el formato con que se mostrará la fecha, algunas de las opciones de este
argumento son:
%a
Día de la semana abreviado.
%A
Día de la semana completo.
%b
Nombre del mes abreviado.
%B
Nombre del mes completo.
%d
Día del mes.
%m
Número de mes.
%H
Hora, en formato 24h.
%M
Minutos.
%S
Segundos.
Existen muchísimas más opciones de formato que alentamos al lector a verlas en la página de
manual del comando date.
Ejemplo 6. Uso de date con formato simple.
usuario@maquina:~/$ date
Sun Apr 8 15:09:32 ART 2001
usuario@maquina:~/$ date +"%A %d %B"
Sunday 08 April
8. El comando df
Provee información sobre la utilización del espacio en disco en los diferentes sistemas de
archivos montados en el sistema. Para un sistema GNU/Linux, quedarse sin espacio libre es
algo bastante grave, ya que muchos demonios y programas en general utilizan el directorio /
tmp para guardar información mientras se ejecutan. La sintaxis de df es la siguiente:
df [opciones] [sistema-de-archivo...]
9. El comando du
Este comando informa al usuario de la cantidad de almacenamiento utilizado por los archivos
especificados, posee varias opciones, su sintaxis es la siguiente:
du [opciones] [archivo...]
Esto quizás no se ve ahora como algo útil, pero en combinación con otros comandos es una
herramienta de gran utilidad.
ARCHIVO corresponde al nombre entero o en parte del archivo que se está buscando, MODO
son los permisos del archivo a buscar representados en octal. Cómo manejarse con permisos
de usuario se puede ver en Conceptos básicos.
Ejemplo 10. Varios usos del comando find
Carlos recuerda haber almacenado en su directorio personal una foto de su familia cuando
estaban de vacaciones, y lo único que recuerda es que estaba en formato PNG, para intentar
localizar dicha foto, usa el comando find de la siguiente forma:
$ find /home/carlos -name "*.png"
Este comando listará también los enlaces simbólicos, que aunque en el listado aparecen con
todos los permisos activados, no significa que cualquier usuario los pueda modificar. Para
evitar entonces este inconveniente, se puede ejecutar el comando de esta manera:
# find / -perm 777 -follow
La opción -follow instruye a find para que en lugar de hacer la prueba con los enlaces
simbólicos, la haga con los archivos apuntados por estos enlaces.
También se pueden aprovechar las tuberías para realizar filtros, lo anterior es equivalente a:
$ cat archivo | grep 'a*'
15. El comando ln
Este comando sirve para establecer enlaces entre archivos. Un enlace puede ser rígido o
simbólico. El primer tipo es simplemente una forma de dar otro nombre a un archivo. Por
ejemplo teniendo el archivo /etc/passwd, se puede hacer un enlace y tener el nuevo nombre en
/home/usuario/claves, y ambos nombres de archivos refiriéndose al mismo archivo. El segundo
tipo es parecido al primero, pero se pueden enlazar directorios, y además de diferentes
sistemas de archivos. Este tipo de enlace es el que más se utiliza. La sintaxis del comando ln
es:
ln [opciones] origen [destino]
ln [opciones] origen... directorio
La «l» al comienzo de la línea especifica el tipo de archivo listado, en este caso, un link.
16. El comando locate
locate es un comando de búsqueda de archivos, bastante parecido al comando find. La
diferencia de locate es que la búsqueda la hace en una base de datos indexada para aumentar
significativamente la velocidad de respuesta. Esto quiere decir, que locate realmente no busca
en el disco del sistema, sino que en un archivo con la lista de todos los archivos que existen
en el GNU/Linux. Generalmente todas las distribuciones de GNU/Linux ejecutan a una hora
determinada (generalmente cerca de las 4:00am, ya que tarda algún tiempo realizar esta
tarea) un comando para actualizar la base de datos que utiliza locate, dicho comando se llama
updatedb. Su sintaxis es:
locate PATRÓN
Donde PATRÓN corresponde al mismo tipo de patrón que en el comando find. Ejemplo de
ejecución:
Ejemplo 14. Un ejemplo de uso del comando locate
usuario@maquina:~/$ locate locate
/usr/bin/locate
/usr/lib/locate
/usr/lib/locate/bigram
/usr/lib/locate/code
/usr/lib/locate/frcode
/usr/share/doc/kde/HTML/en/kcontrol/kcmlocate.docbook.gz
/usr/share/doc/xlibs-dev/XdbeAllocateBackBufferName.3.html
/usr/share/doc/xlibs-dev/XdbeDeallocateBackBufferName.3.html
/usr/share/doc/xlibs-dev/XtAllocateGC.3.html
/usr/share/emacs/20.7/lisp/locate.elc
/usr/share/gnome/help/gsearchtool/C/locate.png
/usr/share/man/man1/locate.1.gz
/usr/share/man/man5/locatedb.5.gz
/usr/X11R6/man/man3/XdbeAllocateBackBufferName.3x.gz
/usr/X11R6/man/man3/XdbeDeallocateBackBufferName.3x.gz
/usr/X11R6/man/man3/XtAllocateGC.3x.gz
/var/lib/locate
/var/lib/locate/locatedb
/var/lib/locate/locatedb.n
Como se puede observar, locate ha listado todos aquellos archivos que posean la
palabra «locate» en su nombre (los directorios están incluidos).
17. El comando ls
Quizás uno de los comandos de mayor utilización, sirve para listar archivos.
Su sintaxis es la siguiente:
ls [opciones] [archivo...]
Si se ejecuta ls sin argumentos, dará como resultado un listado de todos los archivos
(incluyendo directorios) del directorio donde el usuario está posicionado. Sus opciones son:
-a
Lista todos los archivos, incluyendo aquellos que comienzan con un «.» [4]
-d
Lista el nombre del directorio en vez de los archivos contenidos en él.
-l
Lista los archivos con mucho más detalle, especificando para cada archivo sus permisos, el
número de enlaces rígidos, el nombre del propietario, el grupo al que pertenece, el tamaño en
bytes y la fecha de la última modificación.
-r
Invierte el orden de listado de los archivos.
-s
Muestra el tamaño de cada archivo en bloques de 1024 bytes a la izquierda del nombre.
-h
Muestra los tamaños de archivo en términos de kilobytes, megabytes, etc.
-t
Lista los archivos ordenados por el tiempo de modificación en vez de ordenarlos
alfabéticamente.
-A
Lista todos los archivos excepto el «.» y el «..».
-R
Lista los contenidos de todos los directorios recursivamente.
-S
Ordena el listado por el tamaño de los archivos.
--color[=cuándo]
Especifica si emplear color para distinguir los diferentes tipos de archivos. El argumento cuándo
puede tener varios valores:
none
No usar colores. Esta opción es la predeterminada.
auto
Usar colores solamente cuando la salida estándar es una terminal.
always
Usar siempre colores. Si ls se usa con la opción --color sin especificar la opción de color, el
resultado es el mismo que cuando se usa --color=always.
Ejemplo 15. Algunos ejemplos utilizando el comando ls
Supónganse que se tiene un directorio /usr/local/papers donde se alojan los documentos de
un grupo de redactores de una revista, y se quiere saber cuáles fueron los últimos documentos
modificados y su tamaño para su inclusión en el próximo número. Para esto se puede ejecutar
el comando ls de la siguiente forma:
$ ls -lhtr /usr/local/papers
Como se puede observar, se le pasan 4 opciones al comando ls, de tal manera que muestre un
listado extendido, ordenado por tiempos de modificación de forma ascendente y que además
muestre los tamaños de archivo en forma más legible. Otra manera de ejecutar el mismo
comando es la siguiente:
$ ls -l -h -t -r /usr/local/papers
[4] Como convención, los archivos cuyos nombres comienzan con un punto se les
denomina «ocultos».
Se puede utilizar de forma interactiva, con mail usuario@email.com o bien enviar por entrada
estandar el contenido del email.
Ejemplo 16. Ejemplo sencillo utilizando mail
De forma interactiva se finaliza el mail con una línea que sólo contenga un punto (.)
$ mail destino@dominio.com.tw
Subject: email desde linux!
hola este es un lindo email
saludos,
usuario .
Cc:
[5] En inglés, scripts, son programas creados en el lenguaje del intérprete de comandos
21. El comando mv
Este comando se usa tanto para mover archivos, como para renombrarlos (que, al fin de
cuentas, es una manera de mover archivos); su sintaxis es la siguiente:
mv [opción...] origen destino
mv [opción...] origen... destino
Si el último argumento, destino, es un directorio existente, mv mueve cada uno de los otros
archivos a destino.
Algunas opciones de este comando son:
-f
Borrar los archivos de destino existentes sin preguntar al usuario.
-i
Lo contrario de -f; pregunta por cada archivo a sobreescribir antes de hacerlo.
-v
Muestra el nombre de cada archivo a ser movido.
Ejemplo 18. Ejemplo del uso de mv
Si en el directorio actual existe 1 archivo llamado arch1.txt
$ mv arch1.txt /usr/doc/
24. El comando rm
He aquí un comando peligroso, rm se utiliza para borrar archivos o directorios, su sintaxis es:
rm [opciones] archivo...
Se debe siempre pensar dos veces lo que se está haciendo antes de ejecutar este comando.
Quizás esto parezca una advertencia para tontos, pero más aún cuando se está administrando
un equipo que da servicios a varios usuarios, un «teclazo» en falso, y fácilmente se pierden
datos importantes. Sus opciones más utilizadas son:
-f
No imprimir mensajes de error, ni pedir al usuario una confirmación por cada archivo que se
vaya a borrar.
-r
Borrar los contenidos de directorios recursivamente.
-v
Muestra el nombre de cada archivo eliminado.
El argumento archivo puede ser tanto un nombre de archivo, como una expresión regular.
Ejemplo 20. Un ejemplo del uso del comando rm
Para borrar un archivo en el directorio actual llamado arch1.txt
$ rm arch1.txt
El comando rm no permite borrar directorios directamente. Pero existen opciones que pueden
ayudar para eliminarlo sin confirmación. Cuidado con el uso de estas opciones.
$ rm -rf directorio
[6] Perdonen al autor, aunque a veces es interesante mezclar conceptos matemáticos con
informáticos, éste no es el caso.
creará un archivo llamado arch1.txt vacío (tamaño 0). es de suponer que la fecha de creación y
modificación serán el momento actual.
28. El comando wc
El nombre del comando wc proviene de word count, y como es de suponer, sirve para contar
palabras. Pero no sólo palabras como se verá a continuación. Su sintaxis es como sigue:
wc [opción...] [archivo...]
En el primer case se ha pedido la página de manual del mismo comando whereis [8] , mientras
que en el segundo se han pedido todos los archivos que tengan que ver con el comando
passwd.
[8] El lector ya está advertido que al autor le gustan las recursividades, por favor perdónenlo.
[9] http://lucas.hispalinux.es
32. Agradecimientos
La realización de este manual habría sido mucho más difícil sin la ayuda de los coordinadores
del proyecto LuCAS[10] Ismael Olea González, Juan José Amor Iglesias y César Ballardini.
No podemos dejar de agradecer también a Linus Torvalds por su gran aporte al software
libre, a Richard M. Stallman por preocuparse por las libertades del software y finalmente
agradecemos a toda la comunidad de desarrolladores, redactores, y toda aquella gente que
aporta su grano de arena en este mundo, el mundo del software libre.
[10] http://lucas.hispalinux.es
33. Agradecimientos
La realización de este manual habría sido mucho más difícil sin la ayuda de los coordinadores
del proyecto LuCAS[11] Ismael Olea González, Juan José Amor Iglesias y César Ballardini.
No podemos dejar de agradecer también a Linus Torvalds por su gran aporte al software
libre, a Richard M. Stallman por preocuparse por las libertades del software y finalmente
agradecemos a toda la comunidad de desarrolladores, redactores, y toda aquella gente que
aporta su grano de arena en este mundo, el mundo del software libre.
[11] http://lucas.hispalinux.es
El nombre de Host es necesario para diferenciar la petición del usuario. También se puede
utilizar una dirección IP si existen múltiples interfaces.
Cuando se ejecute Apache, dependiendo la petición del cliente, se utilizarán distintos
Document Root [13] Pero como configuración en común, la ejecución se hará con el usuario
apache en ambos casos.
Ahora, podemos combinar la directiva de bloque <Directory> para dar opciones particulares a
cada directorio de los hosts virtuales, pues sus Document Roots son distintos.
<Directory /var/www>
Options Indexes
</Directory>
A nuestro ejemplo podemos agregarle un directorio llamado images que contenga todas las
imágenes del sitio pero no queremos que nadie liste el contenido de ese directorio:
<Directory /var/www/images>
Options -Indexes
</Directory>
Recordemos que se debe referenciar el path completo. El `-' sirve para deshabilitar la opción.
Por razones de seguridad, es útil agrupar todos los archivos tipo CGI en un directorio único, por
ejemplo cgi-bin el cual debe tener la opción “ ExecCGI”.
<Directory /var/www/cgi-bin>
Options -Indexes ExecCGI
</Directory>
Y podemos mejorar la seguridad negando la ejecución de CGI en el resto de los directorios:
<Directory /var/www>
Options Indexes -ExecCGI
</Directory>
<Directory /var/www>
Options Indexes -ExecCGI+
</Directory>
<Directory /var/www/images>
Options -Indexes
</Directory>
<Directory /var/www/cgi-bin>
Options -Indexes ExecCGI
</Directory>
[14] Como muchos archivos de configuración cualquier línea que comience con ``\#'' se ignora
por lo tanto es considerada comentario.
37. COMOs
Los COMOs [15] son documentos en forma de “recetas”, en los que se trata la forma de realizar
tareas específicas del sistema. Estos documentos se encuentran en el directorio principal
de documentación de GNU/Linux, /usr/share/doc/, bajo el subdirectorio HOWTO [16] . Esta
documentación está disponible en texto plano y formato HTML, gracias a esto podemos
emplear cualquier paginador (como por ejemplo less) o navegador web para visualizarla.
También puede encontrar ficheros cuyo nombre termina en .gz. Dichos ficheros han sido
comprimidos con gzip para ahorrar espacio, luego debe descomprimirlos antes de leerlos. Una
forma de leer los COMOs comprimidos, sin llenar su disco con versiones descomprimidas, es
utilizar zless:
La orden zless utiliza las mismas teclas que less, de modo que se puede mover con facilidad a
través del documento.
38. Argentina
Grupos locales en Argentina
GrULiC
Grupo de usuarios de Linux de Córdoba (http://www.grulic.org.ar/)
GULCO
Grupo de Usuarios de Linux de Corrientes (http://www.gulco.linux.org.ar/)
Linux Santa Fe
Grupo de Usuarios de Linux en Santa Fe (http://www.linuxsantafe.com/)
LugCOS
GNU/Linux Users Group del Centro Oeste Santafesino (http://lugcos.org.ar)
LUGAr
Linux Users Group Argentina (radicado en Buenos Aires) (http://www.linux.org.ar/)
LUGLi
GNU/Linux Users Group del Litoral (radicado en Santa Fe) (http://www.lugli.org.ar)
LUGMen
Grupo de Usuarios de Linux de Mendoza (http://www.linuxmendoza.org.ar/)
LUGNA
GNU/Linux User Group Neuquén - Argentina (http://www.lugna.linux.org.ar/)
LUGro
Grupo de Usuarios de GNU/Linux de Rosario (http://www.lugro.org.ar/)
LugRa
GNU/Linux Users Group Rafaela (http://www.rafaela.linux.org.ar)
LUG SeC
Grupo de Usuarios de Linux del Sureste de Córdoba (http://www.lug.org.ar/)
LUG Tucumán
Linux Users Group Tucumán (http://www.tucuman.linux.org.ar/)
LugUsh
Linux User Group Ushuaia (http://www.lugush.org.ar/)
NugLy
Nuevos usuarios de GNU/Linux de Jujuy (http://www.nugly.linux.org.ar)
PLUG
Grupo de Usuarios de GNU/Linux de La Plata (http://www.plug.org.ar/)
39. Bolivia
Grupos locales en Bolivia
LUGBOL
Linux User Group Bolivia (http://www.linux.org.bo/)
40. Chile
Grupos locales en Chile
Linux.CL
Linux en Chile (http://www.linux.cl/)
41. Colombia
Grupos locales en Colombia
GLUV
Grupo Linux Universidad del Valle (http://cluv.univalle.edu.co/)
LinuxCOL
Grupo de Usuarios Colombianos de Linux (http://linuxcol.uniandes.edu.co/)
43. Cuba
Grupos locales en Cuba
Linux Cuba
Grupo de Usuarios de Linux en Cuba (http://www.linux.cu/)
44. Ecuador
Grupos locales en Ecuador
Ecuanex
Linux en Ecuador (http://linux.ecuanex.net.ec/)
45. El Salvador
Grupos locales en El Salvador
SVLinux
Grupo de Usuarios de Linux en El Salvador (http://www.linux.org.sv/)
46. España
Grupos locales en España
ADALA
Asociación para el Desarrollo y Avance del software Libre en Andalucía (http://www.adala.org/)
AsturLinux
Asociación de Usuarios Asturianos de LiNUX (http://www.asturlinux.org)
AUGCYL
Asociación Usuarios GNU/Linux Castilla y León (http://www.augcyl.org/)
AULIR
Asociación de Usuarios de Linux de La Rioja (http://www.aulir.com/)
BULMA
Bisoños Usuarios de Linux de Mallorca y Alrededores (http://bulmalug.net/)
CALIU
CAtalan LInux Users (http://www.caliu.org/)
Cat-Linux
GNU/Linux en català! (http://www.cat-linux.com)
COALA
Colectivo de Apoyo a Linux de Asturias (http://www.coala.uniovi.es/)
Euskal Linux
Grupo de Usuarios del País Vasco (http://www.euskal-linux.org/)
GALPON
Grupo de Amigos de Linux de Pontevedra (http://galpon.com.uvigo.es)
GILUG
GIrona Linux Users Group (http://www.gilug.org/)
GLUB
Grupo de LinuxUarios de Bizkaia (http://glub.ehu.es/)
GLUG
Grupo de Usuarios de Linux de Galicia (http://www.glug.es/)
GPUL
Grupo de Programadores y Usuarios de Linux (http://www.gpul.org/)
GRULIN
Grupo de Usuarios Linux en Navarra (http://www.elpuntofijo.com/grulin/)
GRULLA
Grupo de Usuarios de Linux de La Almunia (http://grulla.hispalinux.es/)
Grupos Locales en Hispalinux
Página de grupos locales en HispaLinux (http://grupos-locales.hispalinux.es/)
GUL
Grupo de Usuarios de Linux de la Universidad Carlos III de Madrid (http://gul.uc3m.es/gul/)
GULA-ZALE
Grupo de Usuarios Linux de Álava - Zaletuen Arabako Linux Elkartea (http://www.gula-zale.org/
)
GULAlcarria
Grupo de Usuarios de GNU/Linux de Guadalajara y alrededores (http://
gulalcarria.sourceforge.net/)
GULCA
Grupo de Usuarios de Linux de Cádiz (http://www.gulca.org/)
GULEF
Grupo de usuarios de Linux de Eivissa i Formentera (http://www.clubibosim.org/)
GULEX
Grupo de Usuarios de Linux/Unix de Extremadura (http://www.gulex.org/)
GULIC
Grupo de Usuarios de Linux de Canarias (http://www.gulic.org/)
GULMU
Grupo de Usuarios de Linux de Murcia (http://gulmu.com/)
GULS
Grupo Usuarios de Linux de Salamanca (http://guls.sourceforge.net/)
GuPLe
Grupo de usuarios y programadores de Extremadura (http://www.guple.org/)
HispaLinux
Asociación de Usuarios Españoles de GNU/Linux (http://www.hispalinux.es/)
IndaLinux
Grupo de Usuarios de GNU-Linux de Almería (http://indalinux.hispalinux.es/)
LILO
LInuxeros LOcos (http://lilo.sourceforge.net/)
LiMA
Asociación de Usuarios "LiNUX Málaga" (http://www.linux-malaga.org/)
LINUCA
Asociación de Usuarios GNU/Linux en Cantabria (http://www.linuca.org)
Linux-Madrid
Grupo local de GNU/Linux de madrileños y otros convecinos (http://linux-madrid.hispalinux.es/)
Llug
Lleida Linux User Group (http://www.llug.net/)
MaCHeGoX
Grupo de Usuarios de Linux de Castilla-La Mancha (http://www.geocities.com/
alcazardesanjuan/)
PoLinux
Asociación Usuarios de Linux de la UPV (http://www.polinux.upv.es/)
SLeón
Asociación de Software Libre de León (http://www.sleon.org/)
SUGUS
Asociación de GNU/Linux - Sevilla (http://sugus.eii.us.es/)
USUALIZA
USUArios de LInux de Zamora (http://www.linux-zamora.org)
VALUX
Asociación de usuarios de LINUX de la Comunidad Valenciana (http://www.valux.org/)
ZARALINUX
Asociación de Usuarios de Linux de Zaragoza (http://piramide.unizar.es/zaralinux/)
47. Guatemala
Grupos locales en Guatemala
GLUG
Guatemala Linux User Group (http://linux.guatemala.org/)
GUUG
Grupo de usuarios de Unix en Guatemala (http://www.guug.org/)
48. Introducción
Los grupos locales son agrupaciones de personas que físicamente se reunen y realizan
actividades en una zona determinada.
Estos grupos tienen unas particularidades que los diferencian de asociaciones nacionales
o grupos de trabajo virtuales: necesitan un punto de reunión (un local, por ejemplo), hacen
actividades “a nivel de suelo” destinadas a la promoción del Software Libre entre el ciudadano
de la calle (conferencias, fiestas de instalación, colaborar con colegios, centros culturales,
otras asociaciones, etc.). Todo esto significa que sus cometidos son mucho más que un mero
contacto por Internet.
A continuación se presenta una lista de los grupos locales existentes en el mundo
hispanohablante (si conoces alguno que no aparezca en esta lista, contacta con nosotros, por
favor):
49. México
Grupos locales en México
GLO
Grupo Linux de Occidente (http://www.glo.org.mx)
GNU/Linux en México
Grupo de Usuarios de GNU/Linux en México (http://www.linux.org.mx/)
GULEV
Grupo de Usuarios de GNU/Linux (http://veracruz.linux.org.mx)
GULMT
Grupo de Usuarios de Linux de México en Toluca (http://www.internetica.net.mx/linux/)
Linux CEM
Grupo de Usuarios de Linux del ITESM CEM (http://linux.cem.itesm.mx/)
Linux Monterrey
Grupo de usuarios de GNU/Linux en Monterrey (http://www.interclan.net/rsepulveda)
Linux Puebla
Grupo de Usuarios de Linux en Puebla en el Estado de Veracruz (http://www.linuxpuebla.org)
50. Perú
Grupos locales en Perú
AQPLUG
Grupo de Usuarios de Linux en Arequipa (http://linux.aqp.com.pe/)
PLUG
Grupo de Usuarios de Linux en Perú (PLUG por las siglas en Inglés - Peruvian Linux User
Group) (http://www.linux.org.pe/)
52. Uruguay
Grupos locales en Uruguay
UYLUG
Grupo de Usuarios de Linux del Uruguay (http://www.linux.org.uy/)
53. Venezuela
Grupos locales en Venezuela
VELUG
Grupo de Usuarios de Linux de Venezuela (http://www.linux.org.ve/)
54. Introducción
En esta sección, se proveerá al lector de una lista de recursos en Internet, desde los que puede
extraer información de todo tipo, e incluso software para GNU/Linux.
56. Documentación
La siguiente lista presenta las páginas más importantes de documentación disponibles en
Internet:
Páginas con documentación
INSFLUG
http://www.insflug.org/, página donde se coordina la traducción “oficial” de documentos breves,
como los COMOs y PUFs o Preguntas de Uso Frecuente [18]
NuLies
http://nulies.hispalinux.es/, proyecto dedicado a la traducción al castellano de aquellas partes
del núcleo Linux cuya traducción sea útil para la inmensa mayoria de hispanoparlantes
PAMELi
http://ditec.um.es/~piernas/manpages-es/, los esfuerzos de la traducción al castellano de las
páginas del manual se encuentran en esta localización
Pedro Reina
http://pedroreina.org, Página personal de Pedro Reina, profesor de Enseñanza Secundaria.
En esta página está disponible el curso de informática realizado por Pedro, basado en
herramientas de libre distribución
TLDP-ES/LuCAS
http://es.tldp.org/, como se puede leer en la página del Proyecto, LuCAS es la mayor biblioteca
en español dedicada a GNU/LiNUX de todo el planeta
57. Información
Colección de enlaces con información relativa al sistema operativo GNU/Linux:
Direcciones de información
es.comp.os.linux.*
http://www.escomposlinux.org, Página de los grupos de noticias de Linux de la jerarquía
es.comp.os.linux.*
El rincón de Linux
http://www.linux-es.com/, Esta página es un buen punto de partida para aquellos que necesitan
encontrar información sobre Linux, principalmente en castellano
GNU No Es Unix!
http://www.gnu.org/home.es.html, Proyecto donde se originó la filosofía del Software Libre.
Visita obligada para quien quiera conocer que es el Software Libre
La Gaceta de Linux
http://www.gacetadelinux.com/, Traducción al castellano de la conocida Gaceta inglesa Linux
Gazette [19] El objetivo de esta publicación es hacer Linux un poco más divertido, compartir
ideas y descubrimientos
linux.com
http://www.linux.com, Sitio dedicado a dar información general sobre muchos aspectos del
sistema
LinuxFocus
http://linuxfocus.org/, Revista internacional y libre sobre linux. Está traducida a muchos idiomas,
entre los que se encuentra el español
Linux Today
http://linuxtoday.com/, Página destinada a los profesionales interesados en mantener nivel de
conocimiento alto sobre Linux y el Código Abierto
58. Noticias
A continuación se muestran algunas páginas dedicadas a noticias sobre el Software Libre en
general y GNU/Linux en particular:
Páginas de noticias
Barrapunto
http://www.barrapunto.com, Foro de noticias relacionadas con GNU/Linux, en castellano
Kernel Trafic
http://kt.zork.net/kernel-traffic/, Noticias semanales sobre la actividad del núcleo Linux
Kuro5hin
http://www.kuro5hin.org/, Página dedicada a la tecnología y a la cultura. Información de calidad,
para gente a la que le gusta pensar
linux.org
http://www.linux.org, Sitio oficial de Linux, el núcleo del sistema GNU/Linux. Aquí se encuentran
entre otras cosas, las últimas versiones del núcleo a medida que se van publicando
Linux Weekly News
http://lwn.net/, Últimas noticias relacionadas con GNU/Linux, en inglés
SlashDot
http://www.slashdot.com/, Foro de noticias relacionadas con GNU/Linux, en inglés
Planeta Linux
http://www.planetalinux.com.ar/, La fuente Argentina de recursos Linux
61. Introducción
Una de las más importantes características de todo sistema GNU/Linux, es la calidad y
cantidad de la documentación que se incluye: páginas del manual, “COMOs”, guías, libros, etc.
De esta forma, el usuario tiene a su disposición los recursos necesarios para informarse de
cada detalle del sistema.
63. Manuales
Además de la documentación en línea y los COMOs, existen verdaderos manuales, que vienen
incluídos en cada distribución. Originalmente, estos manuales estaban escritos en inglés, pero
gracias al esfuerzo del proyecto TLDP-ES/LuCAS (La mayor biblioteca en español dedicada a
GNU/LiNUX de todo el planeta), en la actualidad existe una gran cantidad de documentación en
nuestro idioma.
Las últimas versiones de los manuales en castellano se pueden obtener del sitio web de TLDP-
ES/LuCAS (http://es.tldp.org/)
Algunos manuales disponibles en castellano
LIPP
Linux Instalación y Primeros Pasos, una guía bien básica, especial para los recién iniciados
GARL
Guía de Administración de Redes en Linux [20] , una guía avanzada sobre la configuración de
los diferentes servicios de red que un servidor GNU/Linux puede proveer
GLUP
Guía del Usuario de Linux, especial para todos los usuarios de GNU/Linux. Abarca las tareas
más cotidianas, como por ejemplo: edición de archivos, manejo en el shell, manejo del entorno
gráfico, entre otras
GULP
Guía Linux de Programación, al momento de la redacción de este curso, la GULP se halla
en desarrollo, incluye diferentes aspectos de la programación en C del sistema, desde los
conceptos básicos hasta la programación con semáforos
Guía del enRootador de Linux
Esta guía pretende dar respuestas muy claras a los problemas que pueden presentarse en la
instalación de GNU/Linux
Guía del núcleo
Un libro ideal para hackers [21] , programadores y entusiastas de lo desconocido
Manual de GNU Bison
Una guía muy completa sobre el generador de analizadores sintácticos compatible con YACC,
Bison
GURH
Guía de instalación oficial de Red Hat Linux [22] , manual que describe paso a paso la
instalación y configuración de una distribución Red Hat Linux
Introducción a la administración de redes TCP/IP
Manual introductorio para aquellos que pretenden administrar una red basada en los protocolos
de red de Internet (TCP/IP)
Manual de GNU Flex
Descripción de la herramienta para la generación de programas que realizan concordancia de
patrones en texto, Flex
DNS
Historia, descripción y configuración del servicio DNS
Seguridad en Unix y Redes
Pautas para conseguir un nivel de seguridad aceptable en sistemas Unix (con muchas
referencias a GNU/Linux)
GSAL
Guía de Seguridad del Administrador de Linux, un ambicioso manual que hará las delicias a
todos los paranoicos de la seguridad :-)
Usando Samba
Traducción del conocidísimo libro Using Samba editado por O'Reilly
LDP Manifiesto
Manual que detalla los objetivos y estado actual del proyecto de documentación Linux [23]
Guía de Programación de Módulos del Núcleo Linux
Libro destinado a programadores que conocen el lenguaje C, en el que se describe cómo
programar Módulos del Núcleo Linux
Dentro del núcleo Linux 2.4
El funcionamiento interno del núcleo Linux en su versión 2.4 queda reflejado en este manual
Guía de usuario de Ruby
Tras la lectura de esta guía, el lector ha de ser capaz de ejecutar y utilizar el lenguaje de
programación Ruby
Interconexión IrDA con Linux
Cómo conectar nuestro GNU/Linux vía IrDA a dispositivos IPAQ, PALM, GSM...
Administración de una red local basada en Internet
Una introducción para aquellas personas que pretendan administrar una red basada en los
protocolos de red de Internet (TCP/IP)
Análisis de seguridad de la familia de protocolos TCP/IP y sus servicios asociados
Introducción al mundo de la seguridad de los sistemas de información, enfocado en la familia
de protocolos de comunicaciones TCP/IP
Todos estos manuales, y alguno más, se pueden obtener en varios formatos del sitio TLDP-ES
http://es.tldp.org/htmls/manuales.html
Tab
para mover el cursor a un enlace
Intro
para seguir un enlace
p
le devolverá a la página previa
n
le enviará a la página siguiente
u
subirá un nivel de la documentación
q
para abandonar info
La mejor manera de usar info es leer la documentación info acerca de él. Si lee la primera
página que info le presente, será capaz de comenzar a usarlo.
65. Páginas del Manual
Se les llama Páginas del Manual a la documentación en línea del sistema. Existe una página
del manual por casi cada comando de GNU/Linux. La forma de consultar esta documentación
(en un terminal de texto) es mediante la orden man seguida del comando sobre el cual se
quiere obtener la información. Por ejemplo, si necesitamos ver las opciones del comando
mount (para montar sistemas de archivos), se debería ejecutar man mount.
La página del manual se muestra mediante el programa less, (el cual facilita la lectura del
documento pantalla a pantalla), por lo que todas las opciones de less funcionarán cuando lea
una página del manual. Las teclas más importantes de less son:
Teclas más importantes de less
q
para salir
Intro
para avanzar línea a línea
Espacio
para avanzar página a página
b
para retroceder una página
/
seguido de un texto y de la tecla Intro para buscar dicho texto
n
para encontrar la siguiente coincidencia de la búsqueda actual
[26] RPM es un tipo especial de paquetes, hay varios tipos como por ejemplo DEB.
[24] Siempre tener en cuenta que las mayúsculas se diferencian de las minúsculas. Es un error
muy común tener el Bloq Mayús activado.
[25] Emacs es otro editor de texto excelente, por cierto.
[26] RPM es un tipo especial de paquetes, hay varios tipos como por ejemplo DEB.
69. Chat
Una de las actividades más adictivas en Internet es el chat. Cada día se hace más popular el
chat a través de programas de chat o irc [27] .
Para chatear existen varios programas. En KDE el más usado es ksirc. Se encuentra en K-
>Internet->Cliente de irc. Si bien existen muchos clientes más, éste es relativamente simple
como para empezar.
En la pantalla principal (Figura 4. Pantalla principal de ksirc) hay un menú llamado Conexiones
con una entrada que dice Nuevo servidor..
Figura 4. Pantalla principal de ksirc
70. Conectarse
Lo primero que hay que hacer es configurar una cuenta de Internet. Los pasos son
relativamente simples usando el kppp.
El kppp se puede ejecutar desde terminal o clickeando en K->Internet-> Conexión a Internet.
Figura 7. Vista inicial del kppp
Luego hay que ir a Configuración (Figura 8. Configuracion del kppp) para crear una conexión a
Internet con un click en Nueva (Figura 9. Nueva conexión).
Figura 8. Configuracion del kppp
72. Navegación
Una de las principales actividades en Internet es la navegación. El programa más usado
es Netscape. Este no es software libre, por lo tanto algunas distribuciones no lo traen
instalado, como por ejemplo Debian. De todas formas está disponible para bajar desde http://
www.netscape.com.
En la distribución Red Hat, en KDE la ubicación de Netscape es K->Red Hat->Internet-
>Netscape Communicator. Si bien en cada distribución cambian los menús, una forma segura
de encontrarlo es escribiendo en una terminal netscape.
La primera vez que se ejecuta netscape (Figura 16. Página de LUNIX en Netscape) aparecerá
una ventana con la licencia y los botones Accept y Do Not Accept. Aclaramos que no es
sotfware libre, no tiene la licencia GNU que viene con la mayoría del software en Linux.
Figura 16. Página de LUNIX en Netscape
Otra aplicación que sirve para navegar en páginas no muy complejas es el kfm, que no se lo
conoce por ese nombre sino más bien por Navegador (Figura 17. Página de LUNIX en kfm).
Cada vez que uno navega entre las carpetas locales utiliza ese programa. Como por ejemplo
cuando se clickea en la opción de menú Directorio Personal. Y aparecerá una ubicación similar
a file:/home/usuario. Si se reemplaza por http:// se podrá navegar por la web.
Está en desarrollo y pretende llegar a reemplazar al software comercial.
Figura 17. Página de LUNIX en kfm
Otra alternativa es la navegación en texto. Si bien a muchos no les parecerá atractiva, es
una experiencia distinta. Un programa bastante elaborado es el lynx (Figura 18. Página de
LUNIX en Lynx). Abriendo una terminal y escribiendo lynx http://www.lynx.org podremos
acceder a la página de los creadores. Al no mostrar gráficos es mucho más rápido que otros
navegadores. Y sin lugar a dudas ocupa mucho menos espacio.
Figura 18. Página de LUNIX en Lynx
73. Problemas con el modem
Antes de empezar a ilusionarse con conectarse a Internet, hay que saber si el modem es o no
un Winmodem. Esta línea especial de modems (o no tan modems) utilizan drivers propietarios
que la mayoría sólo funcionan en Windows. En caso de una futura compra de modem, lo
primero que hay que fijarse es que no sea uno de estos.
Sabiendo que no es un Winmodem el modem instalado, hay muchos problemas que
pueden tener los modems. Desde los más simples, como ser que la línea de teléfono esté
desconectada, hasta los más complicados y misteriosos que cuesta bastante encontrar sus
causas. En el archivo /usr/doc/HOWTO/Modem-HOWTO hay mucha referencia sobre modems
y en especial un capítulo dedicado a problemas (Troubleshooting).
Para quienes no leen inglés, existe una traducción de ese archivo, junto con varios HOWTOs
(traducidos al castellano como COMOs), llamado Modem-COMO y puede estar en el directorio
/usr/doc/HOWTO/translations/es.
77. Ping
¿Cómo sabemos si una computadora está dentro de la red?
Es una pregunta relativamente simple de contestar sabiendo su Dirección IP. knu se encuentra
en K->Internet->Utilidades de Red. Se ingresa la dirección IP (por ejemplo 127.0.0.1 [28] ) y a
continuación !Adelante! como muestra la Figura 19. Ejemplo del uso de ping en knu.
Figura 19. Ejemplo del uso de ping en knu
Dará información de la conexión. Normalmente en enlaces entre máquinas el dato que más
importa es time, que expresa la latencia de red. Aquí es irrelevante, puesto que es la máquina
local. De no funcionar esta simple prueba, es posible que la configuración de red no sea
correcta.
También se pueden poner nombres de máquinas, como por ejemplo www.google.com siempre
que esté clickeado el rectángulo que dice Resolver el nombre.
78. Escritorios
Figura 20. Configuración de escritorios múltiples en el Panel
La siguiente sección, Figura 20. Configuración de escritorios múltiples en el Panel , tiene las
opciones necesarias para definir la cantidad de escritorios múltiples que se tendrán en la sesión
KDE, así como también el ancho de los botones de escritorio que aparecen en el Panel y por
último, el nombre que poseerán esos botones.
También hay que añadir una cuenta POP yendo a Añadir.... Aquí hay que completar con datos
del servidor, como muestra la Figura 14. Configurar una cuenta POP3 en kmail
Figura 14. Configurar una cuenta POP3 en kmail
Con estos datos sería suficiente como para enviar correos electrónicos y poder recibir. Un
ejemplo terminado esta en Figura 15. Ejemplo de kmail configurado
Figura 15. Ejemplo de kmail configurado
Un tema avanzado para este curso pero interesante para conocer y tenerlo en cuenta es
la lengüeta PGP. PGP significa Pretty Good Privacy (privacidad bastante buena), que es
el nombre de un programa de encriptación de mensajes para comunicaciones seguras. Es
necesario tener instalado el programa pgp o bien la version GNU del que se llama gpg (este
último lo recomendamos).
Al enviar el primer email va a pedir que introduzcamos un archivo de firma. Por ahora no existe
ninguno. Entonces con el editor de textos hay que escribir un simple archivo que contenga la
firma. Por tradición se elige el archivo .signature porque varios programas de correo lo utilizan.
De esta forma la firma será la misma sin importar qué cliente de correo estemos usando.
Con sólo apretar Conectar se debería conectar sin problemas (Figura 11. Conectándose a
Internet).
Figura 11. Conectándose a Internet
De todas formas, muchas veces la realidad es muy distinta a la teoría. Esta es una lista de
posibles problemas:
● Problemas con el modem
● Problemas con pppd
● Problemas relativos al proveedor
No pretende ser una lista exhaustiva, tan sólo son los problemas más comunes.
79. Opciones
Figura 21. Opciones del Panel
Aquí se podrán personalizar las diferentes opciones de comportamiento del Panel (Figura
21. Opciones del Panel). En el primer cuadro Letreros de ayuda de menú se encuentra la
opción Mostrar ayudas de menú que activa o desactiva el uso de unos pequeños carteles que
aparecen como ayuda cuando se deja quieto el puntero del mouse sobre algún sitio del Panel
(en inglés se los llama Tooltips). Por defecto esta opción está activada, y al estarlo, se utiliza la
barra de deslizamiento para configurar el tiempo de retardo que tomará en aparecer cada una
de estas ayudas.
En el cuadro Visuales se tienen 3 opciones a personalizar, la primera, Auto-ocultar panel hace
que el Panel se esconda automáticamente (si está activada), pudiendo configurar la velocidad
y el retardo de esta acción. La opción Auto-ocultar barra de tareas es lo mismo que la anterior,
pero para la barra de tareas; y la opción Animar mostrar/esconder de estar activada (por
defecto lo está), muestra una animación al esconderse el Panel o la barra de tareas.
El cuadro inferior --Otros-- configura varios aspectos funcionales del botón de menú K del
Panel. La primer opción Entradas del Menú Personal Primero hace que aparezcan las
configuraciones personales del menú antes que los menúes que vienen por defecto en el
sistema. La segunda opción Carpetas de Menú Primero organiza el menú de tal forma que
las categorías aparezcan arriba de las opciones simples. La tercer opción Reloj muestra el
tiempo en formato AM/PM sirve para cambiar el modo del reloj entre AM, PM y 24hs. Por
último, la cuarta opción Reloj muestra el tiempo en latidos de Internet cambia el modo del reloj,
del tradicional a un tipo de hora ``universal'' definido por la empresa SWATCH para el uso del
mismo en Internet.
80. Panel
Esta sección consta de tres cuadros, el cuadro Posición permite seleccionar el lugar donde el
Panel va a estar localizado en el escritorio, por defecto se encuentra en la parte inferior de la
pantalla.
El cuadro Barra de tareas sirve para configurar la posición de la barra de tareas, una barra
donde por cada aplicación ejecutándose, aparece un botón para su rápido acceso en caso de
estar en segundo plano o minimizada. Se da la posibilidad de deshabilitar la barra de tareas así
como también cambiarla de lugar, por defecto aparece en la parte superior del escritorio.
El cuadro Estilo tiene las opciones de tamaño del Panel, por defecto está en Normal.
81. Introducción
La comodidad es un factor muy importante en lo que respecta a productividad en trabajos de
todo tipo, incluyendo el trabajo en un escritorio virtual como lo es un entorno gráfico en una
computadora.
La comodidad en un entorno gráfico depende de la personalización de colores, tipos de letras,
imágen de fondo, sonidos del sistema, etc. es por ello que la configuración del entorno se toma
como una parte escencial de este curso describiéndose a continuación las propiedades mas
importantes del KDE que se pueden acceder a través del Centro de control KDE.
82. Bordes
Los bordes activos se utilizan para moverse de un escritorio a otro a través del uso del mouse.
Cuando están activados, si se lleva el puntero hacia el borde derecho de la pantalla y se lo deja
un instante, el KDE activa el escritorio consecutivo. Lo mismo pasa si se lleva el mouse hasta la
izquierda de la pantalla.
Seleccionando la opción Activar bordes activos como se ve en Figura 22. Configuración
de bordes, se puede establecer el tiempo de retardo que requieren los bordes activos para
funcionar.
Figura 22. Configuración de bordes
Otras opciones en la sección inferior del cuadro son los Bordes Mágicos, que se utilizan para
magnetizar los bordes de las ventanas entre sí.
83. Colores
Los colores de los diferentes componentes de las ventanas pueden cambiarse de forma tal de
darle al escritorio la apariencia que a uno más le agrade. Esto se puede hacer en la sección de
Colores que puede observarse en Figura 23. Configuración de colores en KDE. Este cuadro se
divide en tres partes más una de visualización previa.
Figura 23. Configuración de colores en KDE
Cada configuración de colores se puede guardar como un esquema individual, en el cuadro
Esquema de colores se pueden ver varios esquemas ya definidos, simulando los colores
de varios entornos. Pueden definirse nuevos esquemas presionando Añadir y definiendo un
nombre para ese nuevo esquema, una vez hecho esto, en el cuadro Color del widget[29] se
elige cada componente que se quiera asignar un color específico y luego se presiona el botón
de color seleccionando así el color a utilizar. En la visualización previa se puede ir controlando
los cambios de colores a medida que se realizan.
El cuadro Contraste posee una barra de nivel que establece el contraste entre los colores
seleccionados.
[29] Widget se le llama a cada componente de una ventana, un botón, un recuadro, la barra de
título, etc.
84. Estilo
Figura 24. Estilo de widgets como Windows95
La tercera opción, que dice Aplicar fuentes y colores a aplicaciones no-KDE sirve para darle a
las aplicaciones que no son específicas de KDE (el Netscape por ejemplo), un ``look'' parecido
a las demás aplicaciones que si lo son, asignándole el color de ventanas y botones bastante
similares.
Debajo de ésto, hay un cuadro llamado Icon style que se utiliza para asignar el tamaño de los
íconos de la barra de herramientas (panel) y del escritorio.
Como se ve en Figura 26. Configuración del Fondo de pantalla en KDE1, se puede configurar
cada escritorio por separado, o unificar la configuración para todos seleccionado la opción
Fondo común. En el sector Colores se puede seleccionar un color de fondo o utilizando la
opción Dos colores, se logra un ``degradé'' entre ambos.
En la sección Tapiz se encuentra una lista de las imágenes que pueden utilizarse para el fondo.
En la lista desplegable de Disposición existen varias opciones para la forma de mostrar en
pantalla dichos tapices.
Para que el fondo de pantalla cambie automáticamente, puede activarse activar la opción Al
azar
Si se activa la opción Fijar en el panel, en la barra de herramientas del KDE aparecerá un ícono
especial para poder cambiar la configuración del fondo directamente sin necesidad de entrar en
el Centro de Control KDE.
86. Conceptos básicos de LDAP
A continuación detallaremos los conceptos y vocabulario que se debe manejar para poder
entender temas mas avanzados de LDAP.
Cada nodo del árbol de datos se lo denomina “entrada”. Cada entrada tiene una denominación,
o DN(Distinguished Name, nombre distinguido), que se forma de la concatenación de los DNs
relativos (o RDNs) de las entradas “padre” hasta llegar a la entrada “raíz” del árbol, como se
puede ver en Figura 27. Como se construyen los DNs de las entradas..
Figura 27. Como se construyen los DNs de las entradas.
Este método permite que cada entrada posea un identificador único, evitando la duplicación de
entradas de esta manera, tal como sucede en el servicio de nombres de dominio en Internet.
Cada entrada posee atributos donde se almacenará la información a consultar. Cada atributo
tiene un tipo de datos y acepta uno o mas valores. Además, cada entrada posee una o mas
entradas “objectClass”, las cuales definen los atributos que la entrada tendrá disponibles,
detallando cuales atributos son obligatorios y cuales son opcionales.
Por ejemplo una entrada para describir una cuenta de usuario en el servidor puede derivar del
objectclass posixAccount, cuyos atributos obligatorios son cn, uid, uidNumber, gidNumber y
homeDirectory y sus atributos opcionales: userPassword, loginShell, gecos y description.
Cada uno de estos objectClass se define en un archivo, normalmente localizado en el directorio
/etc/openldap/schema (en la implementación OpenLDAP). La clase de datos que LDAP puede
almacenar se puede extender agregando nuevos esquemas en este directorio.
La primer línea especifica el back-end de base de datos a utilizar, “ldbm” es la opción mas
frecuentemente utilizada. La segunda línea declara el DN de la entrada raíz del árbol LDAP. La
tercer y cuarta entrada definen los datos del usuario administrador (algo así como su nombre
de usuario y contraseña), ya que esta cuenta no puede estar incluida en la base de datos
LDAP antes que se haya configurado. La quinta entrada sirve para definir el directorio donde
se almacenarán los archivos correspondientes a esta base de datos y las últimas dos entradas
establecen los tipos de índice que se van a utilizar en las distintas entradas, para búsquedas.
La contraseña rootpw está cifrada con el algoritmo MD5, esto se puede generar con el
comando slappasswd de la siguiente manera:
# slappasswd -h {MD5}
Esta primer lista de control de acceso se puede interpretar como: Para los atributos
userPassword de todas las entradas bajo "dc=ejemplo,dc=net", se dará permiso de escritura
al usuario administrador, al usuario propietario, y al resto se les permitirá la operación de
autenticación.
Pero, ¿dónde están los usuarios?. El concepto de usuario tal como se lo conoce normalmente
aquí no se aplica, sino que se habla de Bind DN, cada cliente LDAP debe autenticarse con el
servidor enlazándose (bind) a éste en una determinada entrada de la jerarquía de la base de
datos (DN), que necesariamente deberá poseer un atributo userPassword.
Con esta ACL lo que se hace es proteger el atributo de contraseña para que no cualquier
pueda siquiera inspeccionarlo. Luego siguen otras ACLs:
access to dn=".*,dc=ejemplo,dc=net" attr=mail
by dn="cn=root,dc=ejemplo,dc=net" write
by self write
by * read
Este es un ejemplo similar al anterior, pero se permite la lectura del atributo mail (es decir, la
dirección de correo electrónico) a cualquiera, mientras que se permite su modificación a la
cuenta administrativa y al dueño del atributo.
Si bajo la entrada con DN “ou=People,dc=ejemplo,dc=net” se almacenan las cuentas de
usuario del sistema, entonces deberíamos permitir sólo la lectura de estos datos a todo el
mundo (sin permitir la modificación de por ejemplo, el nombre de usuario, ni siquiera al propio
usuario) de esta manera:
access to dn=".*,ou=People,dc=ejemplo,dc=net"
by * read
Finalmente se agrega el ACL por defecto, que permite la lectura de todos los atributos por
cualquiera, y su modificación por el usuario dueño. Se hace esto de la siguiente forma:
access to dn=".*,dc=ejemplo,dc=net"
by self write
by * read
Cada ACL se chequeará en el orden en que fueron declaradas, es por eso que la ACL
que se agregó última, no debe declararse antes de otras, porque puede llegar a anular su
funcionalidad. Un ejemplo claro es la declaración de la penúltima ACL sobre la última. A
primera vista, podría parecer que esa penúltima ACL se encuentra incluída en la última y que
por lo tanto podría ser obviada, pero observando detenidamente se puede uno dar cuenta que
la penúltima ACL no permite escritura a nadie, bajo la entrada ou=People,dc=ejemplo,dc=net, y
que por mas que la última entrada si lo permita, la anterior tiene precedencia.
Si estas ACLs se agregaron en su propio archivo /etc/openldap/slapd.access.conf, entonces
habrá que cerciorarse que se incluya este archivo en el archivo de configuración principal /etc/
openldap/slapd.conf con la siguiente sintaxis:
include /etc/openldap/slapd.access.conf
Para que se tomen los cambios, recordar de reiniciar el servicio LDAP en el sistema.
La contraseña se debe crear con el comando slappasswd como se vió anteriormente. Una vez
escrito correctamente el archivo LDIF, se lo agrega al servidor ejecutando el comando ldapadd
de esta manera:
# ldapadd -x -D "cn=root,dc=ejemplo,dc=net" -W -f /tmp/proxy.ldif
Una vez hecho este cambio, se debe reiniciar el servicio LDAP para que tome la nueva
configuración. A continuación se puede realizar una consulta al servidor LDAP mediante el
comando ldapsearch:
# ldapsearch -LL -H ldap://localhost -b"dc=ejemplo,dc=net" -W -x -
D "cn=proxyuser,dc=ejemplo,dc=net" "(uid=pedro)"
dn: userid=pedro,ou=People,dc=ejemplo,dc=net
objectClass: top
objectClass: account
objectClass: person
objectClass: userSecurityInformation
uid: pedro
sn: Picapiedras
cn: Pedro
userPassword:: e01ENX1HcWFsOUpQQWowMHV5VkFVb1MyL3dnPT0=
telephoneNumber: 431-2125
pam_filter objectclass=posixaccount
pam_login_attribute uid
pam_member_attribute gid
pam_template_login_attribute uid
pam_password md5
nss_base_passwd ou=People,dc=ejemplo,dc=net?one
nss_base_shadow ou=People,dc=ejemplo,dc=net?one
nss_base_group ou=Group,dc=ejemplo,dc=net?one
nss_base_hosts ou=Hosts,dc=ejemplo,dc=net?one
Esto hará que los sistemas clientes consulten primero sus archivos locales, luego hagan
búsquedas en LDAP y en el caso de los hosts, hagan consultas por DNS como último recurso.
En el /etc/hosts de los clientes sólo se debería dejar con la entrada del host local, hostname y
del servidor LDAP.
En un archivo LDIF puede haber mas de una entrada definida, cada entrada se separa de las
demás por una línea en blanco. A su vez, cada entrada puede tener una cantidad arbitraria de
pares <nombre_atributo>: <valor>.
Este formato es útil tanto para realizar copias de seguridad de los datos de un servidor LDAP,
como para importar pequeños cambios que se necesiten realizar manualmente en los datos,
siempre manteniendo la independencia de la implementación LDAP y de la plataforma donde
esté instalada.
A continuación podemos observar un ejemplo de una entrada para describir una cuenta de
usuario en un servidor:
Ejemplo 28. Formato LDIF para cuenta de usuario.
dn: uid=jperez,ou=People,dc=ejemplo,dc=com
uid: jperez
cn: Juan Perez
objectclass: account
objectclass: posixAccount
objectclass: top
loginshell: /bin/bash
uidnumber: 512
gidnumber: 300
homedirectory: /home/jperez
gecos: Juan Perez,,,,
userpassword: {crypt}LPnaOoUYN57Netaac
LDAP funciona como una base de datos, optimizada para las operaciones de lectura y
búsqueda. Por otro lado, no posee soporte para ingreso de datos por transacciones ni rollback,
que se encuentran en los motores de base de datos relacionales. Normalmente en LDAP las
operaciones de ingreso de datos son a todo o nada.
La arquitectura cliente-servidor y estructura en forma de árbol que utiliza LDAP para almacenar
su información, tiene algunas ventajas muy interesantes, como ser:
● Evita la duplicación de datos, la estructura de datos obliga a que no exista el mismo
dato en dos lugares diferentes del esquema.
● Permite la distribución de la administración, al igual que el servicio de DNS, la
responsabilidad en la administración de los datos de un árbol se puede separar entre
distintos equipos si es necesario.
● Acepta niveles de acceso bien detallados, pudiendo definir políticas de seguridad por
cada nodo.
Figura 29. Delegación del árbol LDAP
Además de esto, LDAP provee capacidades de réplica, de modo tal que se aumenta la
confiabilidad y disponibilidad de la información, aumentando también la eficiencia del servicio
ya que la carga se puede repartir entre las réplicas. Las réplicas automáticamente irán
sincronizándose con su servidor central cada cierto tiempo, hasta cierto punto se acepta cierta
inconsistencia en las réplicas, ya que como se ha comentado al comienzo, normalmente no se
realizan muchas actualizaciones a los datos.
¿Qué clase de información puede contener y cual es el uso que se le puede dar? eso es a
discreción del administrador. Algunos ejemplos comunes son:
● Libretas de direcciones compartidas.
● Autenticación de usuarios centralizada.
● Perfiles de usuarios centralizados, para permitir Roaming
En resumen, LDAP es un servicio muy flexible que permite a un administrador centralizar
variados servicios, y de esta manera facilitar la tarea de mantenimiento sin que disminuya la
confiabilidad del sistema.
91. Introducción
Este documento está protegido bajo la licencia de documentación libre Free Documentation
License del Proyecto GNU, que a continuación se incluye. Toda persona que lo desee está
autorizada a usar, copiar y modificar este documento según los puntos establecidos en la
Licencia FDL
Este manual se distribuye sin garantía alguna, los autores no se hacen responsables de
cualquier tipo de daño mental, emocional o de cualquier otro tipo que produzca la lectura o
cualquier otro uso de este manual. Úsalo a tu propio riesgo.
El documento está disponible en Internet en
http://lucas.hispalinux.es/htmls/cursos.html
92.1. Preamble
The purpose of this License is to make a manual, textbook, or other written document “free”
in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it,
with or without modifying it, either commercially or noncommercially. Secondarily, this License
preserves for the author and publisher a way to get credit for their work, while not being
considered responsible for modifications made by others.
This License is a kind of “copyleft”, which means that derivative works of the document must
themselves be free in the same sense. It complements the GNU General Public License, which
is a copyleft license designed for free software.
We have designed this License in order to use it for manuals for free software, because free
software needs free documentation: a free program should come with manuals providing the
same freedoms that the software does. But this License is not limited to software manuals; it
can be used for any textual work, regardless of subject matter or whether it is published as a
printed book. We recommend this License principally for works whose purpose is instruction or
reference.
92.5. Modifications
You may copy and distribute a Modified Version of the Document under the conditions of
sections 2 and 3 above, provided that you release the Modified Version under precisely this
License, with the Modified Version filling the role of the Document, thus licensing distribution
and modification of the Modified Version to whoever possesses a copy of it. In addition, you
must do these things in the Modified Version:
● Use in the Title Page (and on the covers, if any) a title distinct from that of the
Document, and from those of previous versions (which should, if there were any, be
listed in the History section of the Document). You may use the same title as a previous
version if the original publisher of that version gives permission.
● List on the Title Page, as authors, one or more persons or entities responsible for
authorship of the modifications in the Modified Version, together with at least five of the
principal authors of the Document (all of its principal authors, if it has less than five).
● State on the Title page the name of the publisher of the Modified Version, as the
publisher.
● Preserve all the copyright notices of the Document.
● Add an appropriate copyright notice for your modifications adjacent to the other
copyright notices.
● Include, immediately after the copyright notices, a license notice giving the public
permission to use the Modified Version under the terms of this License, in the form
shown in the Addendum below.
● Preserve in that license notice the full lists of Invariant Sections and required Cover
Texts given in the Document's license notice.
● Include an unaltered copy of this License.
● Preserve the section entitled “History”, and its title, and add to it an item stating at least
the title, year, new authors, and publisher of the Modified Version as given on the Title
Page. If there is no section entitled “History” in the Document, create one stating the title,
year, authors, and publisher of the Document as given on its Title Page, then add an
item describing the Modified Version as stated in the previous sentence.
● Preserve the network location, if any, given in the Document for public access to a
Transparent copy of the Document, and likewise the network locations given in the
Document for previous versions it was based on. These may be placed in the “History”
section. You may omit a network location for a work that was published at least four
years before the Document itself, or if the original publisher of the version it refers to
gives permission.
● In any section entitled “Acknowledgements” or “Dedications”, preserve the section's
title, and preserve in the section all the substance and tone of each of the contributor
acknowledgements and/or dedications given therein.
● Preserve all the Invariant Sections of the Document, unaltered in their text and in their
titles. Section numbers or the equivalent are not considered part of the section titles.
● Delete any section entitled “Endorsements”. Such a section may not be included in the
Modified Version.
● Do not retitle any existing section as “Endorsements” or to conflict in title with any
Invariant Section.
If the Modified Version includes new front-matter sections or appendices that qualify as
Secondary Sections and contain no material copied from the Document, you may at your option
designate some or all of these sections as invariant. To do this, add their titles to the list of
Invariant Sections in the Modified Version's license notice. These titles must be distinct from any
other section titles.
You may add a section entitled “Endorsements”, provided it contains nothing but endorsements
of your Modified Version by various parties -- for example, statements of peer review or that the
text has been approved by an organization as the authoritative definition of a standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25
words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only
one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through
arrangements made by) any one entity. If the Document already includes a cover text for the
same cover, previously added by you or by arrangement made by the same entity you are
acting on behalf of, you may not add another; but you may replace the old one, on explicit
permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use
their names for publicity for or to assert or imply endorsement of any Modified Version.
92.9. Translation
Translation is considered a kind of modification, so you may distribute translations of the
Document under the terms of section 4. Replacing Invariant Sections with translations requires
special permission from their copyright holders, but you may include translations of some or
all Invariant Sections in addition to the original versions of these Invariant Sections. You may
include a translation of this License provided that you also include the original English version of
this License. In case of a disagreement between the translation and the original English version
of this License, the original English version will prevail.
92.10. Termination
You may not copy, modify, sublicense, or distribute the Document except as expressly provided
for under this License. Any other attempt to copy, modify, sublicense or distribute the Document
is void, and will automatically terminate your rights under this License. However, parties
who have received copies, or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
If you have no Invariant Sections, write “with no Invariant Sections” instead of saying which
ones are invariant. If you have no Front-Cover Texts, write “no Front-Cover Texts” instead
of “Front-Cover Texts being LIST”; likewise for Back-Cover Texts.
If your document contains nontrivial examples of program code, we recommend releasing these
examples in parallel under your choice of free software license, such as the GNU General
Public License, to permit their use in free software.
a lo que se debe responder con el nombre de usuario. Acto seguido, GNU/Linux solicita una
clave para poder comprobar que el usuario es quien dice ser:
Password:
En este caso se teclea la clave de acceso. Por motivos de seguridad esta clave no aparecerá
en la pantalla. Si la pareja nombre de usuario/clave es correcta, el sistema inicia un intérprete
de comandos con el que se puede trabajar.
Habitualmente será el símbolo $, aunque puede ser también el símbolo % (si usamos un shell
C). Cuando es el administrador (root) quien está trabajando en el sistema, el indicador que
aparece es #.
94. Introducción
Los tipos de trabajos que se pueden realizar sobre un Unix cualquiera, pero particularmente
sobre GNU/Linux, difieren en la forma de interactuar con el usuario y el formato de la interfaz
de usuario. A simple vista, se puede decir que hay dos tipos de acceso interactivo en lo que
respecta al formato de la interfaz: usando interfaz gráfica o usando interfaz de texto. En este
curso se le dará especial importancia a la interfaz de texto, ya que es lo más normal que
se encuentra en los equipos que funcionan como servidores, y las herramientas basadas
en interfaz de texto tienen mayor tiempo de desarrollo que las otras, lo que las hace más
convenientes para la tarea de administrar un sistema GNU/Linux.
97. Introducción
GNU/Linux es un sistema operativo multiusuario y multitarea. El término multiusuario se
refiere a que varias personas pueden trabajar simultáneamente en la misma computadora y el
término multitarea significa que GNU/Linux es capaz de ejecutar más de una tarea de forma
concurrente, es decir, comenzar a trabajar en una tarea y dedicarse a otra antes de haber
finalizado la primera.
Este archivo es del usuario root, y del grupo del mismo nombre, solamente se puede modificar
(bit «w» de escritura) por su usuario dueño, y leer por el grupo y los demás.
Los grupos son un tema más que nada administrativo y no lo tocaremos en esta sección. Sólo
hay que tener en cuenta que generalmente en un sistema GNU/Linux, un usuario cualquiera
pertenece a su grupo (grupo del mismo nombre que su nombre de usuario) y al grupo users.
A diferencia de sistemas operativos como DOS y Windows, el hecho de que un archivo tenga
una extensión .com o .exe no significa que será un programa ejecutable. Al necesitar restringir
los derechos de ejecución de cualquier archivo [32], la acción de ejecutar cualquier programa
estará supeditada al permiso correspondiente (bit «x» de ejecución). Esto es importante tenerlo
en cuenta a la hora de escribir programas que serán interpretados, ya que a fin de cuentas los
archivos serán de texto, y para que se ejecuten se les deberá activar el permiso de ejecución.
001 1
010 2
011 3
100 4
101 5
110 6
111 7
Entonces se puede concluir que los siguientes comandos son equivalentes:
chmod u+rwx go-rwx nombre-de-archivo.txt
La opción -R permite cambiar recursivamente los permisos de todos los archivos dentro de un
directorio.
El argumento modo está compuesto por alguna combinación de las letras u (usuario dueño),
g (grupo dueño), y o (otros), seguido de un símbolo + o - dependiendo si se quiere activar o
desactivar un permiso, siguiendo por último una combinación de las letras correspondientes a
los distintos permisos: r, w y x.
Ejemplo 29. Veremos algunos ejemplos comunes.
Si se necesita dar permisos de ejecución al usuario y al grupo de un archivo, el comando
deberá ejecutarse de la siguiente manera:
chmod ug+x nombre-de-archivo
Recién creado un archivo puede tener permisos no deseados, por ejemplo lectura y escritura
para el grupo y de lectura para el resto. Para modificar este estado se utiliza 'go-rw'. 'g' es
grupo, 'o' es otros, '-' significa eliminar atriburos y 'rw' es lectura y escritura respectivamente.
$ touch archivo
$ ls -l archivo
-rw-rw-r-- 1 usuario usuario 0 oct 21 14:09 archivo
Esto puede tardar algunos minutos, dependiendo de la potencia del procesador y la cantidad de
memoria RAM del equipo.
La opción bzImage (tener en cuenta las mayúsculas) le dice al compilador que genere el
archivo del núcleo y lo comprima con bzip2. Antes se utilizaba la opción zImage que generaba
un núcleo comprimido con gzip, pero tenía un límite de tamaño que actualmente se ha
sobrepasado por la cantidad de opciones que posee el núcleo. bzip2 comprime mejor que
gzip.
Luego de generar el núcleo, se deben generar los módulos, con el comando:
root@maquina:/usr/src/linux# make modules
Esta etapa quizás tome mas tiempo que la anterior, dependiendo de la cantidad de opciones
que se hayan elegido como módulos.
Una vez finalizado, se deben instalar los módulos de la siguiente manera:
root@maquina:/usr/src/linux# make modules_install
Y por último, se debe copiar el archivo del núcleo a algún sitio donde estén alojados
normalmente los núcleos, como por ejemplo el directorio /boot/. El archivo del núcleo,
suponiendo que el conjunto de archivos fuente del núcleo se haya almacenado en el directorio /
usr/src/linux/, se encuentra en /usr/src/linux/arch/i386/boot/bzImage.
Como último paso, se debe configurar el LILO para poder probar el nuevo núcleo, pero esto se
ve en Section , “LILO”.
A modo de información, es conveniente comentar el uso de una utilidad bastante práctica. El
comando dmesg imprime en pantalla los diferentes mensajes de inicio que el núcleo muestra
cuando se arranca el sistema. Esto puede ser muy útil cuando se necesita chequear mensajes
de error que no se han podido leer bien en el arranque.
[37] La recursión es algo muy interesante, pero en estos casos no aporta nada útil.
[38] Se toma la versión 2.4.2 del núcleo para las explicaciones, pero se supone que durante
toda la serie 2.4.x estas secciones y sus contenidos no cambiarán demasiado
[39] En realidad, uno de los autores (Lucas Di Pentima)
Por ahora esto puede parecer inentendible pero vamos a analizar línea a línea:
boot=/dev/hda
Se muestra un mensaje que es el archivo /boot/message que puede contener algo como:
Bienvenido a LILO, el selector de SO de arranque!
Luego vienen las configuraciones de los núcleos en si. En el ejemplo existen 2 núcleos, uno de
linux y el otro es un Windows.
Las dos configuraciones son distintas pero tienen una linea en común. Esta es label. label
es el identificador de núcleo para LILO, es de suponer que tiene que ser único. Puedo tener
varios núcleos de linux pero no con label=linux en mas de uno de ellos. Simplemente habrá que
asignarlos de distinta manera como por ejemplo label=linux-2.2.19 y label=linux-2.4.3.
Si por un momento repasamos este concepto, nos vamos a dar cuenta que default=linux hace
referencia al núcleo que posee label=linux. Cuando cambiemos de configuración a label=linux-
nuevo recordemos cambiar default también.
Para correr un sistema no sólo necesitamos el núcleo, sino también archivos, que componen el
árbol de directorios que surge de la raíz o root.
Por eso,
root=/dev/hda6
especifica que se va a usar la sexta partición del disco como directorio raíz o simplemente raíz,
es decir que, todo lo que esté en esa partición va a pasar a ser el directorio / donde estarán /
bin/, /etc/, /home/, /usr/, /lib/, etc.
En este concepto independizamos el núcleo de los archivos que maneja. Una vez que está
el núcleo corriendo, los archivos se pueden obtener de diferentes lugares. Por ejemplo
particiones, otros discos, discos flexibles, hasta un dispositivo que se encuentra a través de
una red[41]. Casi cualquier archivo/dispositivo puede ser root siempre que este formateado
correctamente.
Por ultimo la linea:
append=" hdc=ide-scsi ide1=autotune ide0=autotune"
pasa parámetros al núcleo para ajustar configuraciones, las cuales dependerán de cada
sistema.
root@maquina:/root#
[42] Utilizamos la palabra \emph{dispositivo} en vez de \emph{disco} porque puede ser que
estemos configurando otra alternativa de arranque.
109. LILO
Al hablar del núcleo es inevitable hablar del cargador de Linux o bien conocido como LILO[47]
que es el encargado de cargar en memoria el núcleo y largarlo a correr.
El núcleo es un archivo mas. Normalmente se encuentra en el disco rígido[48]. Similar a un
archivo ejecutable, algún proceso debe ser el encargado de cargarlo y luego ejecutarlo. Como
todavía no se encuentra nada en memoria, la BIOS ejecuta código de un lugar especial en el
disco, llamado boot sector, que contendrá a LILO.
Una de las grandes funciones de LILO es la selección de núcleo a usar. Normalmente al
compilar diferentes núcleos hay que elegir, por ejemplo, entre alguno que tenga soporte para
clusters[49] o para emular SCSI con un dispositivo IDE[50].
También se pueden tener núcleos de otros sistemas operativos (en el caso de algún problema
serio neurológico) como OS/2, toda la gama de Windows, otros UNIX, etc.
El núcleo de Linux acepta parámetros para personalizarlo o en el caso de que no pueda auto
detectar ciertos dispositivos o recursos. Estos parámetros deben darse antes de que se cargue
el núcleo en si. Un ejemplo sería:
LILO: linux mem=256M
En este caso se saltea la auto detección de cantidad de memoria realizada por Linux y se
presume que existen 256 MB de memoria.
Una lista más detallada de estos parámetros se encuentra en /usr/src/linux/Documentation/.
En este directorio está toda la documentación de los desarrolladores de núcleo, separada por
módulo.
Donde opt-1, opt-2, etc. son las opciones o parámetros del módulo.
Una configuración interesante es la creación de sobrenombre o alias a los módulos. Sirve para
no tener que recordar nombres como via82cxxx_audio y en reemplazo usar placa_sonido por
ejemplo. Su sintaxis es:
alias sobre-nombre nombre-modulo
Algunos scripts de configuración del sistema tienen palabras definidas para cargar los módulos
correspondientes y que el usuario edite /etc/modules.conf y asigne el módulo.
Un ejemplo clásico sería:
alias sound sb
alias eth0 ne2k-pci
Que asigna el seudónimo sound a un módulo de Sound Blaster y eth0[51] al módulo ne2k-pci
para la placa de red.
A medida que se utilizaban los módulos, era conveniente tener una utilidad que cargue el o los
módulos necesarios para hacer una tarea. Esta utilidad está contenida en el núcleo, se llama
{\tt kmod} y se configura en la sección Loadable Module Support, subsección Enable Loadable
Module Support, opción Kernel Module Loader
Con sólo incluir eso, prácticamente no hay que cargar a mano ni ningún módulo.
[51] Corresponde a la primera placa de red Ethernet
Siempre que terminamos de configurar la opciones del núcleo hay que ejecutar make dep.
Ejecutando make modules se compilarán todos los módulos que sean necesarios. Esto puede
tardar desde unos pocos segundos hasta una hora, dependiendo del hardware, la configuración
(cuantos módulos se eligieron) y la versión del núcleo.
Lo único que falta es copiar los módulos recién compilados al lugar indicado (el directorio /
lib/modules/(versión del Núcleo)/). Esto se puede hacer manualmente con cp o tipear make
modules\_install.
Como también podría estar vacía. Si es que ningún módulo se cargó o si el núcleo es
monolítico.
Tomemos el caso del módulo soundcore:
soundcore 2800 2 [via82cxxx_audio]
[52] Aquí se muestra como generarlos, pero, la mayoría de las distribuciones ya vienen casi
todos los módulos compilados
119. Eliminación
Muchas veces los discos rígidos no son suficientes para cubrir todas las necesidades. A falta
de espacio en disco, se debe eliminar los paquetes menos usados o los más grandes.
La eliminación es tan fácil como la Instalación. Instalamos el paquete "xmms", ahora vamos a
proceder a eliminarlo.
Esta vez no hace falta poner el CD-ROM de GNU/Linux.
1. Se carga el "kpackage" mediante una terminal o consola escribiendo kpackage (siendo
root) o yendo al menú K->Utilidades->kpackage. (fig. Figure 1)
2. Seleccionar el paquete a desinstalar, como por ejemplo RPM-Application-Multimedia-
xmms. (fig. Figura 34. Selección del paquete a eliminar)
3. Figura 34. Selección del paquete a eliminar
4.
7.
8. luego Desinstalar.
Es un procedimiento muy muy simple... hay que tener cuidado con varios paquetes:
● RPM-Applications-kpackage
● RPM-System Environment-Base-rpm
Son los programas usados para instalar/desinstalar programas. No hay problemas en
desinstalar ninguno de ellos pero al querer volverlos a instalar... no existe el instalador de
paquetes. (Juraría que estaba ahí hace segundos)
Una categoría muy peligrosa es RPM-System Environment y todas sus ramas. A pesar de
que estamos trabajando en memoria, si se corta la energía luego de eliminar esos paquetes,
es muy probable que no se pueda arrancar más el sistema. Y existen muchas cosas mas
entretenidas para hacer con GNU/Linux que reinstalar todo de cero.
120. Instalación
Uno de los propósitos que tiene el sistema de paquetes RPM es la instalación de paquetes
nuevos. Se puede encontrar todo el conjunto de paquetes a instalar en el CD-ROM de GNU/
Linux.
También se consiguen infinidad de paquetes en Internet listos para bajar. Existen utilidades y
sitios dedicados a encontrar paquetes de un determinado tipo.
Por ejemplo si queremos utilizar el reproductor de mp3 llamado "xmms" y no se encuentra
instalado:
1. Insertamos el CD-ROM de GNU/Linux
2. Si no se monta automáticamente, debemos ir a una terminal y montarlo escribiendo
mount /mnt/cdrom
3. Ejecutamos el comando kpackage, desde una Terminal o accediendo a través de K-
>Utilidades->kpackage
4. Va a preguntar la clave del root, debido a que los paquetes se hacen disponibles a
todos los usuario no tan sólo a uno.
5. Una vez en el programa kpackage debemos ver una pantalla similar a la figura Figura
36. Pantalla inicial del kpackage
6. Figura 36. Pantalla inicial del kpackage
7.
8. Buscamos el paquete "xmms", para eso vamos a Archivo->Buscar Paquete . (fig. Figura
37. Función de búsqueda de paquetes).
9. Figura 37. Función de búsqueda de paquetes
10.
11. Si está instalado va a aparecer con un icono de paquete que tiene una "R" (de RPM).
En este caso, elija otro paquete que no esté intalado en la categoría NEW.
12. En cambio si no está instalado, el icono es una "N" (de Nuevo) y se puede ver
información sobre el paquete. (fig. Figura 38. Vista de paquetes no instalados).
13. Figura 38. Vista de paquetes no instalados
14.
15. El botón Examinar contiene detalles acerca de la instalación. (fig. Figura 39. Detalles
sobre la instalación de paquetes).
16. Figura 39. Detalles sobre la instalación de paquetes
17.
18. Para instalar el paquete sólo hay que presionar el botón Instalar.
En el caso de que no haya problemas ya se podría ejecutar el comando xmms desde una
terminal o consola como muestra la figura Figura 40. Carga del xmms desde una consola.
Figura 40. Carga del xmms desde una consola
Para aquellos usuarios de la KDE 2.0 el proceso de instalación es casi igual pero existen
algunos matices que se deben tener en cuenta. Para ejecutar kpackage podemos ejecutar
kpackage desde un terminal en el que previamente hayamos ejecutado su porque de otra
manera nos dejará ver los paquetes instalados pero no permitirá la instalación de nuevos
paquetes. El entorno que nos presenta kpackage en la versión de KDE 2.0 es parecido al de la
KDE 1.1.x con lo que se puede aplicar todo lo visto hasta ahora sin ninguna complicación.
donde:
xmms
es el nombre del paquete
0.9.5
es la versión, cuanto mayor, más nuevo es el paquete.
1
es la revisión. Sería la versión del empaquetado, no del programa.
i386
es la arquitectura, o sea el tipo de máquina donde va a ejecutarse.
rpm
es la extensión.
Ya veremos en detalle que hay que tener en cuenta al copiar.
122. Verificación
Muchas veces el uso incorrecto del sistema borra o modifica archivos que pertenecen a
paquetes y que son necesarios para su funcionamiento. Pasado un tiempo, al intentar ejecutar
programas, éstos no funcionan correctamente.
Una alternativa antes de instalar de nuevo el paquete defectuoso es la verificación del mismo
para que no se reinstale equivocadamente.
Cómo verificar un paquete:
● Seleccionamos el paquete (ej. RPM-Applicaciones-Multimedia-xmms)
● Ir a la lengüeta Lista de Archivos (fig. Figura 41. Listado de archivos correspondientes a
un paquete)
● Figura 41. Listado de archivos correspondientes a un paquete
●
Se indicará con una cruz roja cualquier archivo que no se encuentre, en cambio, se marcarán
los archivos existentes con un tilde verde.
Además de la diferencia visual de las bibliotecas gráficas, estas también difieren en lo que
respecta a los lenguajes de programación soportados. Tomando como ejemplo las dos
bibliotecas gráficas mas populares en estos días, Qt (y las kde-libs) principalmente usan C++
para el desarrollo de aplicaciones, en cambio las bibliotecas gráficas del proyecto GNOME
(GDK y GTK+) tiene como lenguaje de programación principal el C. Sin embargo, esto no es
una limitación hoy en día, ya que estas bibliotecas también soportan lenguajes alternativos
como el Perl, Python, Tcl/Tk, etc. de tal manera de poder dar cabida a más programadores
para cada entorno gráfico.
Lo único que cambia son las capas por encima del servidor X, y es por eso que es posible tener
en un mismo equipo varios entornos gráficos y usar el que mas se ajuste a las necesidades del
usuario, a diferencia de otros sistemas operativos que sólo poseen una opción.
Lo interesante del modelo de capas, es que éstas son intercambiables: si por ejemplo se
cambia la tarjeta de vídeo (la capa mas inferior), no es necesario tener que cambiar el resto
del conjunto de programas, sólo basta con que la capa superior (el servidor X en este caso)
pueda comunicarse con la nueva capa de hardware para que todo funcione correctamente.
Otra ventaja es que si el desarrollo de las diferentes capas se realiza por diferentes grupos
de personas, cuando se actualiza una de las capas el conjunto en su totalidad se actualiza
automáticamente, si por ejemplo el equipo GNOME lanza su nueva versión de la biblioteca
GTK+, solamente hará falta instalar esta nueva versión y el resto de los programas que
conforman las otras capas no deberían tocarse, quedando todo funcionando correctamente [57]
[55] Cuando se habla de dibujado básico, se está hablando de pintado de puntos en pantalla.
[56] Se dan estos dos ejemplos ya que son los entornos gráficos mas populares en estos días.
[57] Esto es lo que normalmente ocurre, pero a veces puede tomar un poco más de trabajo
dependiendo del nivel de actualización.
server = news.servidor_principal.com
expire = 5
## Standard news servers run on port 119. If your newsserver doesn't, comment
## out the following line and change it accordingly.
# port = 8000
#El puerto en el que escucha leafnode es el 119, con port se puede cambiar.
#***************************************************************************
## This is another news server which stores some groups that are not
## available on the first one. You can define username, password and port
## for each server separately.
server = news.un_servidor.com
username = usuario
password = clave
server = news.otro_servidor.com.es
username = usuario
password = clave
## Here we have another news server which has a very slow connection. For
## that reason, we wait a full minute before we give up trying to connect.
## The default is 10 seconds.
# server = really.slow.snail
# timeout = 60
## Never fetch more than this many articles from one group in one run.
## Be careful with this; setting it much below 1000 is probably a bad
## idea.
maxfetch = 100
## Fetch only a few articles when we subscribe a new newsgroup. The
## default is to fetch all articles.
initialfetch = 30
## maxlines will make fetch reject postings that are longer than a certain
## amount of lines.
# maxlines = 100
## minlines will make fetch reject postings that are shorter than a certain
## amount of lines.
# minlines = 2
## timeout_long determines how many days fetch will wait before not getting
## an unread newsgroup any more. The default is seven days.
# timeout_long = 6
## timeout_active determines how many days fetch will wait before re-reading
## the whole active file. The default is 90 days.
# timeout_active = 365
## If you want to have your newsreader score/kill on Xref: lines, you might
## want to uncomment this.
# create_all_links = 1
Leafnode consta de una serie de programas que tienen como objetivo el control del servidor:
fetchnews
con este comando se prepara a Leafnode para albergar los grupos de noticias y para bajar
las noticias cada vez que queramos. Presenta una serie de modificadores que nos ayudan
a controlar su funcionamiento. Los modificadores más destacados son v, f, x, l, n y P. Con
el modificador v hacemos que pase a modo de depuración, de esta manera irá mostrando
en pantalla los mensajes que va generando, con lo que podemos ver el estado actual o los
mensajes de error si los hubiera. La profundidad de depuración viene marcada por la cantidad
de v que se pongan. El modificador f se utiliza para volver a leer las listas de grupos desde
los servidores, puede tardar tiempo y se utiliza cuando Leanode comienza a dar problemas
al servir las noticias. El modificador x # nos permite bajar # noticias extras desde el exterior.
El modificador l se usa para que Leafnode no utilice los servidores suplementarios. Con el
modificador n se puede comunicar a Leafnode que no elimine los grupos que no se leen, esto
es, cuando nos inscribimos en un grupo que nos interesa pero que no leemos desde hace
tiempo. El modificador P se utiliza para mandar las noticias que hayamos recibido localmente a
los servidores externos pero no bajar ninguna noticia nueva.
texpire
este es el programa que retira del servidor todas aquellas noticias que superen el tiempo dado
en la directiva expire o groupexpire. Sus modificadores son dos, v y f. El modificador v es el
mismo que en el comando anterior. El modificador f se utiliza para forzar la caducidad de las
noticias independientemente del tiempo de acceso.
applyfilter
con este programa se busca dentro de las noticias almacenadas en el directorio news todas
aquellas que coincidan con los patrones dados dentro del fichero filters para ser retiradas. Su
sintaxis es applyfilter grupo de noticias, ha de notarse que se debe dar el nombre completo
del grupo, por ejemplo, para el grupo misc de la jerarquía ecol ha de ponerse applyfilter
es.comp.os.linux.misc.
checkgroups
se utiliza para actualizar las descripciones de los grupos.
newsq
con este vemos las noticias que hay en la cola listas para ser enviadas al servidor en la
próxima conexión.
Figura 46. Viendo las noticias en knode
Con esta regla filtramos todas las noticias que tengan en el asunto [Cursos-linux].
De esta forma podremos evitar bajar noticias que contengan unas determinadas palabras
o unos remitentes molestos. En http://www.escomposlinux.org/spam/ se pueden encontrar
consejos para filtrar el spam y filtros constantemente actualizados que filtran los spammers
dentro de la jerarquía es.comp.os.linux.*.
o bien:
/etc/init.d/xinetd reload
¿Y dónde están los códigos de salida? Bueno, el comando interno [59] if analiza el código de
salida, y si es 0 (cero) ejecuta la lista de comandos después del then, en caso contrario (y si
existe) la lista de comandos después del else hasta encontrar un fi.
Por lo tanto el script arreglar-base-de-datos tiene que devolver 0 en caso de éxito. Éste es el
comportamiento normal de la mayoría de los comandos en Linux y otros Unix, y un valor para
varios errores.
Las páginas man suelen tener una sección llamada Exit Status que contiene los códigos que
devuelve el programa.
[58] Por ridículo que parezca es la forma correcta de mencionar a los emails
[59] Built-in command en inglés.
... luego presionamos Ctrl-D que significa "fin de archivo" en la mayoría de los casos,
apareciendo en pantalla:
alfabético
comando
El
orden
ordenar
por
puede
sort
Teniendo claro los conceptos vamos a ver cómo utilizamos las tuberías para «unir» los
programas entre sí.
es equivalente a:
# comando1
(ejecución de comando1)
# comando2
(ejecución de comando2)
En el primer ejemplo con una sola línea se ejecutan ambos comandos. Es muy buen ejemplo
cuando se quiere encadenar tareas que consumen mucho tiempo y tienen que ser seguidas.
Hay que tener presente que no se ejecutan en paralelo. Cuando termina de ejecutarse
comando1 empieza a ejecutarse comando2.
133. Práctica
1. Hacer un script que compile un programa [60] y SÓLO en el caso de que la compilación
sea exitosa, realice el enlazado (o linkado) del mismo [61] .
2. Suponiendo que el comando cant-mb-libres retorna la cantidad de MB libres en el
disco, hacer un script que compruebe la capacidad disponible, y si es mayor a 640MB,
copia el directorio /usr/local al directorio /backup. En caso contrario mandar un correo a
<administrador@lejos.ch>, también utilizando un hipotético comando: enviar-mail.
3. En base al listado del directorio /backup, enviar a la impresora (o agregar al archivo /
dev/lp0 que es equivalente) los primeros 30 elementos. Si existía mayor cantidad de
archivos escribir una línea final que diga "y más...". Este ejercicio realizarlo con while o
for en lugar de tuberías.
134. Redirección
Si bien nuestro ejemplo es ilustrativo, es bueno ver los resultados en pantalla. En repetidas
ocasiones en la vida de un sistema es mejor tener todo en archivos, ya sea para guardar algún
historial o para automatizar ciertas funciones dentro de scripts.
Para almacenar o sacar información de archivos y vincularlas con entradas o salidas
estándares se utilizan Redirecciones.
La redirección se expresa con los símbolos «Mayor» (>) y «Menor» (<). Se pueden utilizar en
forma simple o doble.
Ejemplo 30. Uso de la redirección
Utilizando el comando cat se puede hacer una copia de arch1.txt a arch2.txt utilizando
redirección.
$ cat arch1.txt > arch2.txt
135. Escritura
Para escribir un archivo se utiliza (>). Hay que tener mucho cuidado de no borrar un archivo
sobreescribiéndolo. Cuando se utilizan redirecciones, debido a su utilidad en los scripts, no
se realizan confirmaciones. Si el archivo a escribir existe y posee información valiosa, aplicar
>archivo-importante lo sobreescribe con el contenido del flujo.
En cambio el operador (>>) realiza un agregado [62] de los datos en el flujo.
No hay nada mejor que un ejemplo clarificador:
$ escribe-en-salida-estandar > archivo.txt
136. Lectura
Para la lectura es el símbolo menor (<) y se utiliza de la siguiente manera:
$ comando-que-acepta-stdin < archivo-de-entrada.txt
Preferimos emplear el comando cat para estas operaciones, pues brinda una mayor legibilidad.
137. Práctica
1. Con los comandos aprendidos, mostrar de un directorio de varios archivos los primeros
10.
2. Modificar el ejercicio anterior para mostrar los 10 archivos de mayor tamaño, ordenados
alfabéticamente.
3. En un directorio con varios archivos, mostrar sólo los que tienen una determinada
terminación como por ejemplo .txt utilizando grep y find.
4. Utilizando find o una composición de varios comandos por tuberías, mostrar sólo
los enlaces simbólicos existentes, en caso de no poseer, crear varios en varios
subdirectorios con el comando ln.
En ese tubo, el flujo está en un estado intermedio, donde está ordenado, pero no tiene las
definiciones de diccionario.
En la línea de comandos esto se escribe de la siguiente manera:
$ sort | dicccionario
Si queremos eliminar la ultima linea podemos volver a usar grep con la opcion -v
$ ps ax | grep http | grep -v grep
3343 ? S 0:00 httpd -DPERLPROXIED -DHAV
3344 ? S 0:00 httpd -DPERLPROXIED -DHAV
3975 ? S 0:00 httpd -DPERLPROXIED -DHAV
Se pueden filtrar las líneas que contengan la palabra linux del archivo arch1.txt y luego
mostrarlas en un paginador como less
$ cat arch1.txt | grep linux | less
Para ver el contenido de una variable, se puede usar el comando echo de la siguiente manera:
echo $VARIABLE
Para eliminar una variable, se utiliza el comando interno del intérprete bash, llamado unset
pasándole como parámetro el nombre de la variable.
Es importante notar que una vez que se sale de una sesión, las variables establecidas se
pierden. Es por eso que si se necesita disponer de variables específicas cada vez que se abra
una sesión en GNU/Linux, es imprescindible agregar dichas configuraciones a los archivos de
inicio del intérprete de comandos.
Otro uso común de estas variables es en los scripts, programas hechos en el lenguaje del
intérprete; las variables de entorno son de gran ayuda para establecer configuraciones
fácilmente cambiables en dichos programas.
[63] En el caso del intérprete bash, estos scripts incluyen el .bashrc, .bash_profile, y otros.
[64] En bash.
Para ver el contenido de una variable, se puede usar el comando echo de la siguiente manera:
echo $VARIABLE
Para eliminar una variable, se utiliza el comando interno del intérprete bash, llamado unset
pasándole como parámetro el nombre de la variable.
Es importante notar que una vez que se sale de una sesión, las variables establecidas se
pierden. Es por eso que si se necesita disponer de variables específicas cada vez que se abra
una sesión en GNU/Linux, es imprescindible agregar dichas configuraciones a los archivos de
inicio del intérprete de comandos.
Otro uso común de estas variables es en los scripts, programas hechos en el lenguaje del
intérprete; las variables de entorno son de gran ayuda para establecer configuraciones
fácilmente cambiables en dichos programas.
[63] En el caso del intérprete bash, estos scripts incluyen el .bashrc, .bash_profile, y otros.
[64] En bash.
140. .bash_profile
Este archivo es del tipo login, por lo que se ejecuta una sola vez en una sesión.
Todos los archivos son scripts por lo que en la sección Programación en shell se ven ejemplos
de programación en bash. Permiten personalizar el bash enormemente u obligando a los
usuario a ejecutar ciertas tareas administrativas en cuanto ingresan al sistema o bien ejecutan
el interprete de comandos.
141. .bashrc
Este archivo es del tipo no-login. Primero se carga el archivo global al sistema /etc/bashrc y
luego se pasa al archivo .bashrc en el directorio personal del usuario.
Es un archivo que probablemente llame a otros como por ejemplo .profile y establezca las
variable se entorno.
143. El comando if
Ya vimos un ejemplo sencillo utilizando if, que a su vez puede ser de gran utilidad. Ya
hablamos de la equivalencia entre el «;» y el «Enter» pero hay veces que pasa desapercibido el
detalle de que if y then deben estar en diferentes líneas por lo que:
# if COMANDO then COMANDO fi
Este último ejemplo va a dar error de sintaxis. La forma correcta de expresar es:
# if COMANDO; then COMANDO ; fi
o bien:
# if COMANDO
> then COMANDO
> fi
No hace falta crear un archivo que contenga las instrucciones, en cambio, esta programación
se puede ir realizando «en línea». Es decir, introducirla por línea de comandos en una terminal.
Muchas veces es necesario hacer comparaciones o comprobaciones para tomar decisiones.
Por ejemplo "Si el usuario no posee el archivo ~/.configuracion con la configuración por
defecto" o bien "Si el número de archivos es mayor a 20 escribir no se puede transferir".
Existe el comando test para hacer estas evaluaciones y en base al resultado, código de error
de test será 0 u otro número. Por ejemplo, para saber si un archivo .configuracion existe en el
home del usuario el comando puede ser:
# test -e $HOME/.configuracion
para facilitar la notación dentro del comando if se hace un enlace simbólico [66] a un comando
llamado [. Parece extraño llamar a un comando con un corchete abierto pero veamos un
ejemplo:
if test -e $HOME/.configuracion
Puede traducirse a:
if [ -e $HOME/.configuracion ]
donde el ] (corchete cerrado) final no tiene importancia y la programación queda menos
engorrosa.
Podríamos utilizar lo aprendido para crear un script que "Si el usuario no posee el archivo /
HOME/.configuracion con la configuracion por defecto entonces crearlo." en unas pocas líneas:
if [ -e $HOME/.configuracion ]
then
crear-configuracion >> $HOME/.configuracion
fi
El comando test permite la composición de condiciones con AND y OR lógicos con los
modificadores -a y -o respectivamente y el modificador NOT con !. Se podría agregar a la linea
del if anterior la condición "y además no posee el archivo SinConfiguracion" de la siguiente
forma:
if [ -e $HOME/.configuracion -a ! -e SinConfiguracion]
Este ejemplo comprueba si la variable CANT_USUARIOS es menor o igual (-le significa less
or equal en inglés) a uno; de ser así, repite cada 1 segundo, «Todavía no hay suficientes
jugadores». En cuanto la cantidad de usuarios sea mayor a 1 sale del ciclo.
También es posible hacer un ciclo infinito utilizando test (o bien llamado [) para que devuelva
siempre verdadero (con [ 1 ]). Se recomienda usar el comando true que devuelve un código de
salida exitoso (cero) y el while no termina a menos que se le envíe una señal con Ctrl-C.
while true
do
clear
mailq
sleep 2
done
354. Arranque
En Windows el programa StarOffice se arranca desde el menú Inicio, carpeta Programas,
carpeta StarOffice 5.2, opción StarOffice 5.2. En Windows y en GNU/Linux se pueden añadir
accesos directos en el escritorio o en otros puntos del menú Inicio, el menú GNOME o el menú
del gestor de ventanas que se esté utilizando.
357. Configuración
Las barras de símbolos se hacen aparecer o no eligiéndolas en el menú Ver, submenú Barra
de Símbolos. Se puede cambiar su altura arrastrando el borde inferior. Tienen un menú de
contexto desde el que se pueden personalizar fácilmente, añadiendo o quitando botones.
Cuando no caben en la pantalla todos los botones de la barra, aparecen en el extremo derecho
dos flechitas que permiten ir viendo todos los botones. Pueden estar fijas en un extremo de
la ventana o bien flotantes en su propia ventana (que se podrá cambiar de forma y posición);
se pasa de un modo a otro haciendo una doble pulsación sobre ellas, en algún punto libre,
mientras se pulsa la tecla Ctrl.
362. El Beamer
Es un visor de archivos. Cuando en el explorador se señala una carpeta, en el Beamer se ve
la relación de sus archivos; cuando en el Explorador se señala un archivo de la Galería, en el
Beamer se ve su aspecto.
367. Instalación
Para poder utilizar el programa es necesario instalarlo en el disco duro. El proceso de
instalación consiste en la creación de un nuevo directorio, la grabación de todos los ficheros
necesarios y el ajuste de ciertos datos internos. De todo ello se encarga el programa de
instalación, de modo que el usuario apenas tiene que responder unas preguntas.
Existen varios modos de instalar StarOffice en GNU/Linux. Aquí se va a explicar la que parece
más razonable para la mayoría de las situaciones:
● El usuario root realiza la instalación básica general de los archivos del programa.
● Cada usuario que desee utilizar el programa hace una mínima instalación en la que
copia unos pocos archivos a su directorio home.
7.
El cuadro se abre en el mismo directorio en que se trabajó la última vez. En la zona grande
de trabajo aparecen los directorios de ese directorio y los documentos encontrados. Haciendo
doble pulsación sobre un directorio, se pasa a examinar su contenido. El cuarto botón de la
barra de herramientas permite volver al directorio padre del que se está viendo. El segundo y
tercer botón sirven para elegir el modo de presentar la lista de documentos encontrados. Se
recomienda el modo Detalles, ya que así se puede navegar más fácilmente por el árbol de
directorios, pulsando en los + y -.
El cuadro de texto Nombre del archivo puede usarse para escribir directamente el nombre
(o el nombre completo) del documento que se desea abrir. También se puede escribir un
nombre usando caracteres comodín; al pulsar el botón Abrir, aparecerán aquellos nombres
de documento que encajen con el patrón dado en los comodines. La lista desplegable Tipo
de Archivo tiene exactamente esta utilidad, pero con una serie de nombres de fichero ya
preestablecida.
Por fin, cuando se decida el documento que hay que abrir, se pulsa sobre él y luego sobre el
botón Abrir.
605. Introducción
GNU/Linux no necesita un entorno de ventanas para funcionar. Ciertamente, cuando comenzó
no existía dicho entorno. La pantalla era un intérprete de comandos de aspecto similar a los
Unix o una ventana de MS-DOS. Las aplicaciones que funcionan bajo terminales o consolas las
llamaremos aplicaciones de texto.
Tiempo después se portó un sistema de ventanas llamado X/Window, muy popular en el mundo
Unix.
Es un sistema de control de mouse y pantalla, pero no maneja las ventanas y operaciones con
ventanas (como mover, minimizar, cerrar, etc.). Por lo tanto hay que utilizar algún programa
administrador de ventanas. Se eligió para el curso es el KDE. Existen muchos otros entre los
cuales está el GNOME, CDE, WindowMaker y AfterStep.
Las aplicaciones que funcionan bajo X/Window las llamaremos aplicaciones gráficas. Necesitan
X/Window para funcionar pero no necesitan un administrador de ventanas. Sin embargo el
administrador de ventanas facilita el uso de los programas.
606. Requerimientos
Como es de esperarse las consolas y terminales son mucho más antiguas que las pantallas
con entornos gráficos, por lo tanto los requerimientos son menores.
Los requerimientos mínimos para usar GNU/Linux son, tan solo, una 386 con 4 MB de RAM.
Esto no quiere decir que va a funcionar rápido, pero va a funcionar. En algunos trabajos no es
necesario un equipo más potente. Es común pensar que si no se tiene la última máquina que
está en el mercado junto los últimos periféricos no se puede usar nada. Este es un concepto
erróneo.
Tener en cuenta el uso que se dará a la computadora. Por ejemplo para compartir Internet
entre varios amigos o dentro de una pequeña empresa, una 386 con 4 MB de Ram sería
suficiente. En cambio para la creación de planos en un sistema CAD esto no sería un equipo
óptimo.
Si bien la computadora funciona con esa configuración, el aspecto es similar al de terminales
hace varios años atrás. Para usuarios recién iniciados y poco familiarizados con terminales,
suele parecer un entorno poco amigable. Pero si se necesita rapidez con poco hardware no
queda otra opción.
Normalmente para usar una terminal gráfica [68], con KDE se requiere aproximadamente un
Pentium (166MHz o 200MHz) con 32MB de RAM para trabajar. Y para trabajar cómodamente
con StarOffice es necesario 64MB de RAM.
Para mayor detalle sobre terminales gráficas ejecutar man X que detalla como funciona el
servidor que atiende a KDE, llamado X/Window (es sin `s' final) Para mayor detalle sobre KDE
ir a K-Ayuda KDE
[69] el prompt suele ser el símbolo $. más alguna información del tipo [usuario@maquina
directorio]
A nivel de red, estamos suponiendo que las máquinas B y D son pasarelas a Internet de
cada red local, esto quiere decir que ambas máquinas poseen dos interfaces de red, una que
corresponde a la red local y otra que corresponde a una red con el proveedor de conexión, la
cual tiene una dirección IP ruteable, mientras que las direcciones IP de las redes locales no lo
son.
Para lograr este escenario simulado de la vida real, se necesitan entonces ciertas
configuraciones en cada máquina, las mismas se detallan a continuación.
Máquina A
Necesita la configuración de red local y nada más.
# ifconfig eth0 192.168.1.25 netmask 255.255.255.0
# route add default gw 192.168.1.1
Máquina E
Necesita una configuración similar a la máquina A, respetando los valores de su propia red
local.
# ifconfig eth0 192.168.2.43 netmask 255.255.255.0
# route add default gw 192.168.2.1
Máquina B
Tiene que funcionar como pasarela, es por eso que no se debe olvidar activar la capacidad de
IP forwarding para el traspaso de paquetes IP de una red a la otra.
# ifconfig eth0 192.168.1.1 netmask 255.255.255.0
# ifconfig eth1 10.1.1.22 netmask 255.255.255.0
# echo 1 > /proc/sys/net/ipv4/ip_forward
# route add default gw 10.1.1.100
La ruta por defecto que se establece en la pasarela B es para simular la ruta por defecto que
toda máquina conectada a Internet debe tener configurada con su proveedor de conexión.
Máquina D
Este equipo tiene la misma funcionalidad que la máquina B, por lo que sus configuraciones son
muy similares.
# ifconfig eth0 192.168.2.1 netmask 255.255.255.0
# ifconfig eth1 10.1.2.33 netmask 255.255.255.0
# echo 1 > /proc/sys/net/ipv4/ip_forward
# route add default gw 10.1.2.100
Máquina C
Esta máquina simula ser el punto de acceso a la red pública que ofrecen los proveedores
de conexión. Este equipo sólo tiene conocimiento sobre las redes públicas 10.1.1.0/24 y
10.1.2.0/24, nada sabe sobre las redes locales de ambos extremos, por lo que no puede rutear
paquetes a esas redes.
# ifconfig eth0 10.1.1.100 netmask 255.255.255.0
# ifconfig eth0 10.1.2.100 netmask 255.255.255.0
# echo 1 > /proc/sys/net/ipv4/ip_forward
Como este equipo necesita realizar retransmisión de paquetes IP entre ambas redes, necesita
el IP Forwarding activado.
Lo que queda es configurar las máquinas B y D para que trabajen como pasarelas seguras y
generen el túnel VPN necesario para comunicar ambas redes locales.
610. Configuración de IPSec para el ejemplo
Para este ejemplo se da por hecho que el núcleo del sistema operativo tiene ya incluído
el soporte para FreeS/WAN, que la clave RSA se ha generado y que todos los paquetes
necesarios se han instalado. Además, se supondrá que el esquema de red explicado en
Ejempo práctico: configuración inicial de la red fue entendido y armado correctamente.
De acuerdo con lo explicado en Configuración de FreeS/WAN, se debe crear el archivo /etc/
ipsec.conf con el siguiente contenido:
config setup
interfaces="ipsec0=eth1"
klipsdebug=none
plutodebug=none
plutoload=%search
plutostart=%search
conn %default
keyingtries=0
conn sitio1-sitio2
left=10.1.1.22
leftsubnet=192.168.1.0/24
leftnexthop=%defaultroute
right=10.1.2.33
rightsubnet=192.168.2.0/24
rightnexthop=%defaultroute
auto=start
authby=rsasig
leftid=@sg1.curso.com
rightid=@sg2.curso.com
leftrsasigkey=
rightrsasigkey=
Luego, se deben ingresar las claves públicas de cada pasarela de seguridad. En la máquina
B se ejecuta el comando ipsec showhostkey --left y la salida se la añade como valor de
leftrsasigkey. Lo mismo se debe hacer con la máquina D, sólo que se ejecuta el comando
ipsec showhostkey --right y su salida se agrega a la opción rightrsasigkey.
Una vez finalizada la creación del archivo, se debe tener cuidado de que sea el mismo para
ambas máquinas B y D. Luego se reinicia el servicio de IPSec, y se prueba la conectividad
desde la máquina A hacia la máquina E con un ping:
# ping 192.168.2.43
El túnel establecido permitirá la conexión de tipo red-a-red, es decir que sólo las estaciones de
trabajo de una red local podrán comunicarse con las de la red opuesta. Si se quiere comunicar
cada pasarela de seguridad con la red local opuesta, habrá que generar túneles específicos
para esta tarea.
Siguiendo el esquema de Figura 76. Esquema de ejemplo para la configuración del FreeS/
WAN, la configuración básica para un túnel red-a-red se realiza editando el archivo /etc/
ipsec.conf
config setup
interfaces="ipsec0=eth0"
klipsdebug=none
plutodebug=none
plutoload=%search
plutostart=%search
conn %default
keyingtries=0
conn sitio1-sitio2
left=10.1.1.2
leftsubnet=192.168.1.0/24
leftnexthop=%defaultroute
right=10.1.2.2
rightsubnet=192.168.0.0/24
rightnexthop=%defaultroute
auto=start
authby=rsasig
leftid=@sg1.curso.com
rightid=@sg2.curso.com
leftrsasigkey=0x--left-public-key
rightrsasigkey=0x--right-public-key
En los valores de leftrsasigkey y rightresasigkey deberán ir las claves públicas de las pasarelas
de seguridad, se deberán extraer de ambos equipos, con el siguiente comando:
# ipsec showhostkey --right
# ipsec showhostkey --left
Según corresponda, se le pasará la opción --left o --right, y esa salida, agregarla al /etc/
ipsec.conf. El archivo resultante deberá ir en ambas pasarelas de seguridad. Una vez reiniciado
el servicio de ipsec, para conocer el estado del túnel, se puede utilizar el comando:
# ipsec auto --status
000 interface ipsec0/eth0 10.1.1.2
000
000 algorithm ESP encrypt: id=3, name=ESP_3DES
000 algorithm ESP auth attr: id=1, name=AUTH_ALGORITHM_HMAC_MD5
000 algorithm ESP auth attr: id=2, name=AUTH_ALGORITHM_HMAC_SHA1
000
000 "sitio1-sitio2": 192.168.1.0/24===10.1.1.2[@sg1.curso.com]---10.1.1.1...10.1.2.1---
10.1.2.2[@sg2.curso.com]===192.168.0.0/24
000 "sitio1-sitio2": ike_life: 3600s; ipsec_life: 28800s; rekey_margin: 540s; rekey_fuzz:
100%; keyingtries: 0
000 "sitio1-sitio2": policy: RSASIG+ENCRYPT+TUNNEL+PFS; interface: eth0; trap erouted
000 "sitio1-sitio2": newest ISAKMP SA: #0; newest IPsec SA: #0; eroute owner:
#0000 "sitio1-sitio2": ESP algorithms wanted: 3/000-1/000, 3/000-2/000,
000 "sitio1-sitio2": ESP algorithms loaded: 3/168-1/128, 3/168-2/160,
000
000 #74: "sitio1-sitio2" STATE_MAIN_I1 (sent MI1, expecting MR1); EVENT_RETRANSMIT
in 4s
Esto que se muestra, indica que el túnel está establecido utilizando 3DES como algoritmo de
cifrado, MD5 y SHA1 como algoritmos de cifrado para autenticación, y otros datos interesantes.
En este caso, el Road Warrior se está conectando desde cualquier tipo de conexión con IP
dinámico, como ser un módem, ADSL, o cualquier servicio similar que provea IP pública pero
no fija.
En este caso, el archivo de configuración variará un poco para el Road Warrior con respecto al
de la pasarela de seguridad, a continuación se muestran ambos casos.
conn %default
keyingtries=1
conn rw1-sg2
left=0.0.0.0
leftsubnet=
leftnexthop=
right=10.1.2.2
rightsubnet=192.168.0.0/24
rightnexthop=%defaultroute
auto=add
authby=rsasig
leftid=@rw1.curso.com
rightid=@sg2.curso.com
leftrsasigkey=0x--left-public-key
rightrsasigkey=0x--right-public-key
La opción auto=add en este caso, no fuerza al túnel a iniciarse, sino que se activa pero queda a
la espera de conexión, la cual va a iniciar el Road Warrior cuando se conecte a Internet.
Nótese que los datos correspondientes al Road Warrior no se agregan, ya que sus detalles de
conexión no se conocen en forma previa.
conn %default
keyingtries=1
conn rw1-sg2
left=%defaultroute
leftsubnet=
leftnexthop=
right=10.1.2.2
rightsubnet=192.168.0.0/24
rightnexthop=%defaultroute
auto=start
authby=rsasig
leftid=@rw1.curso.com
rightid=@sg2.curso.com
leftrsasigkey=0x--left-public-key
rightrsasigkey=0x--right-public-key
En este caso, las claves públicas se deberán agregar de la misma manera como se explica en
Configuración de FreeS/WAN.
IP 47
La entrada al firewall, y la salida se deberá adecuar el núcleo del firewall para el
enmascaramiento del tráfico PPTP. Esto se hace agregando unos parches al núcleo tal como
se describe en:
http://bmrc.berkeley.edu/people/chaffee/linux_pptp.html
http://www.impsec.org/linux/masquerade/ip_masq_vpn.html
http://www.taniz.org/pptp-mini-howto.pdf
619.1. Configuración
El archivo /etc/ppp/options.pptpd
debug
name servername
auth
require-chap
proxyarp
+chap
+chapms
+chapms-v2
mppe-40
mppe-128
mppe-stateless
ms-dns 192.168.1.200
ms-wins 192.168.1.200
/etc/pptpd.conf:
speed 115200
option /etc/ppp/options.pptpd
localip 192.168.0.234-238
remoteip 192.168.1.234-238
/etc/ppp/chap-secrets:
# Secrets for authentication using CHAP
# client server secret IP addresses
username * password *
Características soportadas:
● Compatible con clientes Windows 2000.
● Compatible con los esquemas de encriptación MPPE de Microsoft, mediante un parche
al pppd. (RC4 a 40 bits y 128 bits).
● Compatible con clientes PPTP Windows 95/98/NT.
● Compatible con clientes PPTP Linux.