Академический Документы
Профессиональный Документы
Культура Документы
Introduccin ........................................................................................................................... 6
Unidad 1.- Instalacin del Sistema Operativo y Ajustes posteriores ...................................... 7
Introduccin ....................................................................................................................................................... 7
Sistema Operativo UNIX ..................................................................................................................................... 9
Sistema Operativo Linux...................................................................................................................................10
Requerimientos de Hardware de Linux ............................................................................................................12
Sistema de Archivos en Linux ...........................................................................................................................15
Procesamiento de Texto ...................................................................................................................................17
Caractersticas del Sistema Linux .....................................................................................................................20
Software disponible en Linux ...........................................................................................................................20
Distribuciones Linux. .........................................................................................................................................20
Estndar de Jerarqua de Sistema de Archivos. ...............................................................................................25
Estructura de los directorios general ...............................................................................................................25
Estructura de Archivos .....................................................................................................................................26
Instalacion Centos 7.0 ......................................................................................................................................30
Cmo obtener Centos Linux. ............................................................................................................................30
Instalacin ........................................................................................................................................................31
Editor de texto VI y VIM ...................................................................................................................................61
Gestion de memoria Swap ...............................................................................................................................78
pg. 1
Unidad 4.-Gestin de usuarios, grupos y privilegios. ........................................................ 117
Gestin de cuentas de usuario. ......................................................................................................................117
Tipos de usuarios ............................................................................................................................................117
Archivos de configuracin ..............................................................................................................................125
Gestion de cuentas de grupos: ............................................................................................................127
SUDO ..............................................................................................................................................................128
pg. 2
Instalar un sistema de web browsing para CLI ...............................................................................................254
Ambiente de trabajo ......................................................................................................................................254
Crear llave.......................................................................................................................................................254
Instalar Apache Server ...................................................................................................................................256
Instalar PHP ....................................................................................................................................................258
Instalar Base De Datos....................................................................................................................................258
Instalar y Configurar SSH Server.....................................................................................................................259
Instalar GCC ....................................................................................................................................................260
Instalar Java ....................................................................................................................................................261
Instalar TOMCAT para HTTP Java ...................................................................................................................262
Instalar NMAP ................................................................................................................................................264
Configuracion de firewall ...............................................................................................................................265
Instalar WGET .................................................................................................................................................273
TELNET ............................................................................................................................................................274
Instalar WEBMIN ............................................................................................................................................274
Instalar un compresor de archivos .................................................................................................................276
Instalar un servidor FTP ..................................................................................................................................278
Configurar SUDO ...........................................................................................................................................279
Instalar Rockit Hunter.....................................................................................................................................280
pg. 3
Formacin de la comunidad de aprendizaje:
La formacin de la comunidad de aprendizaje es un proceso que debe llevarse a cabo para iniciar
cada uno de nuestros cursos. Su finalidad es crear un clima propicio para la celebracin de la
actividad instruccional, es decir, generar un entendimiento previo entre el instructor y los
participantes sobre los temas que se desarrollarn durante sta, as como las estrategias
educativas que se llevarn a cabo para lograr un mejor aprendizaje.
Un adecuado manejo de la comunidad de aprendizaje es un elemento fundamental para
garantizar la satisfaccin de uno de los clientes involucrados en la imparticin de los cursos: los
participantes.
Alineacin de expectativas:
El instructor recabar las expectativas de los participantes respecto al curso, con el
fin de dejarles claro el objetivo del mismo.
En caso de que alguna expectativa no coincida con los temas que el curso contiene,
el instructor dejar claro cules de las expectativas expresadas no sern cubiertas
con el curso y porqu.
Las expectativas alineadas sern anotadas en hojas de rotafolio para su revisin al
trmino del curso.
Durante el desarrollo del curso el instructor deber cubrir las expectativas
alineadas.
Presentacin del objetivo del curso:
El instructor presentar a los participantes el objetivo del curso, aclarando dudas al
respecto si las hubiese.
Reglas de oro:
El instructor promover el establecimiento de reglas por parte de los participantes
que se observarn a travs del curso; por lo que puede proponer: tiempo de
tolerancia para iniciar las sesiones, respeto hacia los compaeros, participacin de
todos en tcnicas y ejercicios grupales, etc.; se incluirn todos los puntos que los
participantes consideren pertinentes.
pg. 4
Se anotarn los acuerdos en hojas de rotafolio y se colocarn en un espacio en el
que sean visibles a lo largo de todo el curso.
Cumplimiento de expectativas:
Al finalizar el curso el instructor deber llevar a cabo una revisin de las
expectativas
alineadas que se anotaron en hojas de rotafolio al inicio del curso.
Se revisar cada una de las expectativas alineadas palomeando las que hayan sido
cumplidas, y el instructor explicar de qu manera se llev a cabo tal cumplimiento.
pg. 5
Introduccin
Linux es un sistema operativo de la familia Unix, gratuito, creado mediante la poltica de cdigo
abierto. Estas caractersticas implican un gran ahorro en los costes de instalacin de los
equipos, pero tambin una mayor especializacin por parte del personal informtico.
En todo sistema Unix existe un usuario administrador (root), que controla el funcionamiento
completo del sistema, tiene acceso universal y puede realizar cualquier operacin con los datos
y los dispositivos de la mquina.
Por lo tanto, este curso tiene como finalidad la formacin de profesionales en el rea de
Administracin de Redes que le permite al participante obtener conocimientos profundos en el
rea de infraestructura. Combina una slida formacin terico -prctica con una metodologa que
logra un importante nivel de entrenamiento tcnico.
pg. 6
Unidad 1.- Instalacin del Sistema Operativo y Ajustes posteriores
Introduccin
Para que una computadora sea capaz de hacer todo esto, requiere de un programa especial
llamado sistema operativo. El sistema operativo reside en el disco duro de la computadora
y acta como un puente entre los programas de usuario y los programas que controlan le
hardware de la computadora.
El sistema operativo controla todo el trabajo de la computadora. Sin el, la computadora solo
es un montn de circuitos electrnicos.
pg. 7
Los siguientes son algunos de los usos del sistema operativo:
pg. 8
Sistema Operativo de Usuario nico: permite que solo un usuario use todos los recursos del
sistema de computadora en cualquier momento dado. Mientras el procesador maneja un
usuario o programa, otros programas o usuarios no pueden usar estos recursos. Un ejemplo
de Este tipo el sistema operativo DOS.
Sistema Operativo Multiusuario: permite que ms de un usuario o programa se ejecuten o
usen recursos del sistema en forma simultnea. Algunos ejemplos de estos sistemas
operativos multiusuario son UNIX, XENIX, Linux, Solaris, etc.
En los tiempos en que los sistemas operativos como DOS nicamente permitan solo un
usuario para realizar tareas simples, la introduccin de UNIX creo una nueva forma de
computacin. A pesar que Windows tambin es un sistema operativo principalmente de
usuario nico, permite que varias tareas se realicen en forma simultanea. A continuacin se
aprender acerca del sistema operativo UNIX, dado que Linux es una variacin del sistema
operativo UNIX.
El sistema operativo UNIX tiene una historia muy interesante. Algunos aspectos de su
evolucin son:
pg. 9
El sistema operativo UNIX corre en un rango de computadores desde microcomputadoras hasta
mainframes. Algunas de sus caractersticas son:
Es conocido como un sistema operativo abierto dado que puede ser llevado e instalado
en cualquier clase de sistema de computadora y plataforma de hardware.
Normalmente, los sistemas operativos son escritos en lenguaje ensamblador. Sin embargo,
UNIX esta escrito en un lenguaje de alto nivel y su cdigo fuente esta disponible fcilmente.
Esto supone una ventaja para los programadores cuando incorporan cambios para ajustarse
a sus necesidades.
Es un sistema multiusuario y multitarea. Multitarea significa que el sistema operativo coordina
mltiples tareas o trabajos en forma simultanea. Mientras un usuario esta compilando un
programa en C, otro puede crear documentos usando un editor, cada ignorando la presencia
del otro.
UNIX es uno de los sistemas operativos ms poderosos existentes, por el hecho de poder
compartir recursos en tiempo real.
A pesar de que UNIX esta desarrollado para programadores, proporciona un entorno tan flexible
que tambin es usado en negocios, ciencias, educacin e industria.
Los interruptores de telecomunicacin y sistemas de transmisin son algunos ejemplos del
uso del sistema operativo UNIX
Por los aos 80, los sistemas operativos eran bsicamente propietarios, lo que significaba que
se tena que usar solo el sistema operativo proporcionado para una plataforma especifica. El
proyecto GNU fue fundado por Richard Stallman, quien fue el tambin fundador de Free
Software Foundation (FSF), autor de GNU GPL (General Public License) y el desarrollador
original de algunos programas de software GNU (por ejemplo, el compilador gcc y el editor de
texto Emacs)
pg. 10
Las principales metas del proyecto GNU incluyeron las siguientes:
En 1990, la mayora de las piezas de software del sistema operativo basado en GNU se haban
escrito, excepto la ms importante, el kernel. El kernel es el ncleo del sistema operativo.
Mas tarde, el kernel gratuito basado en UNIX, desarrollado por Linus Torvalds fue
combinado con el sistema GNU. As naci un sistema operativo, el sistema GNU basado en
Linux.
Es desarrollado, escrito, distribuido y respaldado bajo GPL de GNU (GNU no es UNIX). Como
resultado, su cdigo fuente puede ser distribuido gratuitamente y disponible para el publico
en general.
Los sistemas Linux se usan para redes, desarrollo de software, soluciones de alojamiento
basados en Web y como plataforma de usuario final.
La mascota oficial, que Linus eligi para su sistema operativo, es el pingino Linux llamado Tux
(Torvalds Unix), que se presente en la figura 3
pg. 11
Linux no es un derivado del cdigo fuente de UNIX. Sin embargo, la interfaz de Linux es
intencionalmente como la de UNIX. As las lecciones aprendidas acerca de UNIX, incluyendo
informacin sobre seguridad son aplicables tanto a UNIX como a Linux
Linux es un sistema operativo estable y verstil, especialmente como un servidor de red.
Proporciona un slido entorno grafico, paquetes fciles de instalar y aplicaciones de alto
nivel.
Requerimientos de Hardware de Linux
Linux soporta plataformas de hardware tales como Intel x86, PowerPC, S/390, SPARC y Alpha.
Los diferentes requerimientos de hardware para Linux se listan en la siguiente tabla
Hardware Requerimientos
CPU La serie x86 de Intel y sus compatibles,
DEC, Alpha, Motorola, PowerPC, etc.
Tarjeta Madre (MotherBoard) Sistemas de bus PCI, EISA, VESA y MCA.
Memoria 64 MB(mnimo), 256 MB recomendados
para mayor eficiencia y ejecucin
Monitor y Adaptador de Video CGA, EGA, VGA, IBM monochrome, Sper
VGA y otras tarjetas aceleradoras de video
Dispositivos de Puntero Ratn serial estndar como Logitech, serie
MM, Microsoft 2 botones, Sistemas Mouse de 3
botones, etc.
Controlador de Disco Duro IDE, EIDE, MFM \, RLL y la mayora de los controladores
ESDI
Espacio de Disco Duro Requiere un mnimo de 100 MB de espacio
para una instalacin mnima de Linux. Para una
instalacin completa con todos los servicios, los
requerimientos pueden ser tanto como 2 GB
Unidades de CD-ROM Sistema estndar de archivo ISO 9660 para CD-ROMS
pg. 12
Organizacin de Linux
El sistema operativo Linux esta organizado funcionalmente en los siguientes tres niveles:
Kernel (Ncleo)
Shell (Interprete de Comandos)
Herramientas y aplicaciones.
La representacin esquemtica de las tres partes principales del sistema operativo Linux se
presenta en la Figura 4
Herramientas y aplicaciones
Shell
Nucelo
El kernel
El kernel es el ncleo de un sistema operativo, as como la CPU es el ncleo de un sistema
de computadora. El kernel es una coleccin de programas, la mayora escritos en C y solo existe
un kernel para cualquier sistema operativo. Este se comunica directamente con el hardware y
sin un kernel un sistema operativo no puede interactuar con el hardware. Algunas de las tareas
importantes del kernel son:
pg. 13
En un sistema multiusuario, a cada terminal se le asigna un numero y los usuarios trabajan en
terminales conectadas a la computadora principal. El sistema operativo se comunica con la
Terminal a travs de los nmeros de Terminal
El Shell
El sistema operativo Linux usa un shell para transferir los comandos desde el teclado a la
computadora. El shell (interprete de comandos) es solo otro programa escrito en C.
Acta como un intrprete entre los programas de los usuarios y el kernel. Traduce los
comandos del usuario en la accin apropiada. El shell interacta con el usuario, mientras que
el kernel interacta con el hardware de la maquina.
El shell es una interfaz basada en texto para el sistema Linux. En Linux, las interfaces graficas
tales como el Sistema X Window (similar al presentado por Windows NT y 2000, que permiten
al usuario ejecutar comandos usando el ratn y el teclado) tambin pueden ser usadas. El shell
por defecto en Linux es bash (Bourne Again Shell). Otros tipos de shell disponibles en Linux
son:
csh (C Shell)
ksh (Korn Shell)
sh (Shell)
esch (enhanced C Shell)
Bourne Shell y el C Shell son los que se usan comnmente. Ambos son controlados por
comandos. El Korn Shell es el menos usado. Todos los shells sirven para el mismo propsito, pero
tiene diferentes caractersticas y sintaxis.
Herramientas y Aplicaciones
En el sistema Linux existe un cierto nmero de herramientas disponibles. Las herramientas
pg. 14
son programas de usuario que pueden ser escritos por terceros para determinados tipos de
aplicaciones. Tpicamente, las herramientas se agrupan para realizar ciertas funciones, tales
como programacin, aplicaciones de negocio y procesamiento de texto.
pg. 15
Bloque de Arranque
Consiste de un bloque de disco que contiene el cdigo para iniciar la computadora,
Ocupa el primer bloque de un sistema de archivos
Un sistema solo requiere de un bloque de arranque para iniciar el sistema. En el resto de los
sistemas de archivos, este bloque permanece vaco.
Superbloque
Esta a continuacin del bloque de arranque en el sistema de archivos
Consiste de un bloque de disco que contiene informacin acerca del sistema de archivos
Contiene informacin acerca del nmero de bloques en el sistema de archivos, el nmero de
bloques asignados para inodos (se aprender acerca de los inodos ms adelante) y el nmero
de bloques que estn actualmente libres.
Bloque Inodo
Es el tercer grupo de bloques en un sistema de archivos.
Contiene ms de un bloque de disco para mantener informacin acerca de los archivos en
el sistema de archivos.
Bloque de Datos
Almacena el contenido del archivo
Sigue a los bloques asignados para inodos.
Un sistema de archivos contiene cierto nmero de bloques de datos.
Antes de proceder a aprender acerca de la particin del disco, se entender un poco mas acerca
de la informacin que mantiene inodos. Los inodos mantienen informacin acerca del
propietario del archivo, los bloques de disco usados en el archivo, etc. Los archivos, por otro
lado, contienen los datos del archivo.
Asuma que se crea un archivo llamado midocumento.txt. Este debe ser almacenado en el disco.
Dependiendo del sistema de archivos al que este asociado, los datos del archivo se
almacenaran en los bloques de datos y otra informacin administrativa acerca de este, ser
almacenada en los bloques inodos.
pg. 16
Particin de Disco
Aqu, el sistema divide el disco en particiones de disco.
Cada particin consiste en bloques, situados en forma contigua, pero separados de las otras
particiones
Un espacio de intercambio (space swap) se usa para implementar la memoria virtual, donde
una porcin de la memoria principal se almacena temporalmente
Las particiones del espacio de intercambio (space swap) son una secuencia lineal de
bloques.
Procesamiento de Texto
En esta oracin el patrn pronunciacin ocurre tres veces en el texto. Cierto nmero de
herramientas, tales como grep, egrep y fgrep, estn disponibles para realizar el procesamiento
de texto.
pg. 17
Tambin existen otras herramientas de procesamiento de texto, que son conocidas como
editores. Estos proporcionan las funcionalidades para crear, editar (modificar) y guardar
texto.
Sed: es un editor de flujos basado en ed. Puede editar archivos sin intervencin del
usuario. Los comandos de edicin pueden ser pasados como argumentos de linea de
comandos. Los argumentos de linea de comandos son aquellos que se proporcionan
junto con un comando, antes de que el comando sea ejecutado. Estos argumentos van
como entradas sobre las cuales el programa puede trabajar para producir cierta salida.
Sed se utiliza extensivamente en los sistemas Linux. Proporciona mecanismos poderosos
para editar flujos de datos pasados a el como entrada.
Emacs: es un poderoso editor de texto. Siendo C el lenguaje de programacin usado
comnmente en los sistemas Linux, emacs tiene caractersticas incorporadas que
permite dar formato automtico a los programas C, a su vez tambin permite la
bsqueda de patrones y lectura de correo electrnico desde el editor.
A continuacin se presenta una breve discusin sobre las capacidades de programacin y
documentacin disponibles en Linux.
Programacin
Se puede programar a travs del shell y esto se conoce como programacin de shell Linux
proporciona ms de un shell. El Bourne Again Shell (popularmente conocido como bash) es
pg. 18
el shell mas usado. Se aprender acerca de los diferentes shells que proporciona Linux
en la unidad 2: El Sistema Linux. Cada shell en Linux proporciona la capacidad de programacin.
Un programa shell puede invocar las herramientas proporcionadas en Linux a travs de una
sintaxis simple. La programacin de shell es similar a un lenguaje de programacin como C.
pero con una sintaxis diferente.
Documentacin.
Linux proporciona una documentacin bastante elaborada para todas sus herramientas. Las
herramientas son referidas comnmente como comandos.
man clear
man date
man man
Los primeros dos usos del comando man muestran la documentacin para los comandos clear
y date, respectivamente. El tercer uso, muestra la documentacin del mismo comando
pg. 19
man
pg. 20
Muchas de ellas estn configuradas para un tipo especfico de computadora.
Las 10 distribuciones principales se listan a continuacin:
Linux es un sistema de libre distribucin por lo que puedes encontrar todos los ficheros y
programas necesarios para su funcionamiento en multitud de servidores conectados a Internet.
La tarea de reunir todos los ficheros y programas necesarios, asi como instalarlos en tu sistema y
configurarlo, puede ser una tarea bastante complicada y no apta para muchos. Por esto mismo,
nacieron las llamadas distribuciones de Linux, empresas y organizaciones que se dedican a hacer
el trabajo "sucio" para nuestro beneficio y comodidad.
Una distribucin no es otra cosa, que una recopilacin de programas y ficheros, organizados y
preparados para su instalacin. Estas distribuciones se pueden obtener a traves de Internet, los
cuales contendrn todo lo necesario para instalar un sistema Linux bastante completo y en la
mayora de los casos un programa de instalacin que nos ayudara en la tarea de una primera
instalacin. Casi todos los principales distribuidores de Linux, ofrecen la posibilidad de bajarse sus
distribuciones, via FTP (sin cargo alguno).
pg. 21
Existen muchas y variadas distribuciones creadas por diferentes empresas y organizaciones a unos
precios bastantes asequibles (si se compran los CDs, en vez de bajrsela via FTP), las cuales
deberas poder encontrar en tiendas de informtica libreras. En el peor de los casos siempre
puedes encargarlas directamente por Internet a las empresas y organizaciones que las crean. A
veces, las revistas de informtica sacan una edicin bastante aceptable de alguna distribucin.
A continuacion una grfica con todas las distribuciones a lo largo de los ltimos aos. Este grfico
es grande asi que pulsar en el mismo para ver la versin en tamao original.
Si vas a instalar el sistema por primera vez, te recomiendo que pruebes una distribucion LiveCD.
Con una de ellas podras probar Linux sin necesidad de instalarlo. A continuacin puedes encontrar
informacion sobre las distribuciones ms importantes de Linux (aunque no las nicas).
pg. 22
REDHAT ENTERPRISE.-Esta es una distribucin que tiene muy buena
calidad, contenidos y soporte a los usuarios por parte de la empresa
que la distribuye. Es necesario el pago de una licencia de soporte.
Enfocada a empresas.
http://www.redhat.com/
pg. 23
GENTOO.-Esta distribucin es una de las unicas que incorporaron un
concepto totalmente nuevo en Linux. Es una sistema inspirado en BSD-
ports. Podeis compilar/optimizar vuestro sistema completamente
desde cero. No es recomendable adentrarse en esta distribucion sin
una buena conexion a internet, un ordenador medianamente potente
(si quereis terminar de compilar en un tiempo prudencial) y cierta
experiencia en sistemas Unix.
http://www.gentoo.org/
pg. 24
Estndar de Jerarqua de Sistema de Archivos.
Introduccin.
El estndar de jerarqua de archivos (FHS o Filesystem Hierarchy Standard) define los principales
directorios y sus contenidos en GNU/Linux y otros sistemas operativos similares a Unix.
En agosto de 1993 inici un proceso para desarrollar un estndar de sistema de archivos
jerrquico, como un esfuerzo para reorganizar las estructuras de archivos y directorios de
GNU/Linux. El 14 de Febrero de 1994 se public el FSSTND (Filesystem Standard), un estndar de
jerarqua de archivos especfico para GNU/Linux. Revisiones de ste se publicaron el 9 de Octubre
de 1994 y el 28 de Marzo de 1995.
El FHS es mantenido por Free Standards Group, una organizacin sin fines de lucro constituida
por compaas que manufacturan sustento fsico (Hardware) y equipamiento lgico (Software)
como Hewlett Packard, Dell, IBM y Red Hat. La mayora de las distribuciones de Linux, inclusive
las que forman parte de Free Software Standards, utilizan este estndar sin aplicarlo de manera
estricta.
La versin 2.3 del FHS, que es la utilizada por CentOS, Fedora, Red Hat Enterprise Linux,
openSUSE y SUSE Linux Enterprise, fue anunciada el 29 de enero de 2004.
Estticos: Contiene archivos que no cambian sin la intervencin del administrador (root), sin
embargo, pueden ser ledos por cualquier otro usuario. (/bin, /sbin, /opt, /boot, /usr/bin...)
Dinmicos: Contiene archivos que son cambiantes, y pueden leerse y escribirse (algunos
slo por su respectivo usuario y el root). Contienen configuraciones, documentos, etc. Para
estos directorios, es recomendable una copia de seguridad con frecuencia, o mejor an,
deberan ser montados en una particin aparte en el mismo disco, como por ejemplo,
montar el directorio /home en otra particin del mismo disco, independiente de la particin
principal del sistema; de esta forma, puede repararse el sistema sin afectar o borrar los
documentos de los usuarios. (/var/mail, /var/spool, /var/run, /var/lock, /home...)
pg. 25
Compartidos: Contiene archivos que se pueden encontrar en un ordenador y utilizarse en
otro, o incluso compartirse entre usuarios.
Restringidos: Contiene ficheros que no se pueden compartir, solo son modificables por el
administrador. (/etc, /boot, /var/run, /var/lock...)
Estructura de Archivos
Existe una estructura de archivos estndar FHS (Filesystem Hierarchy Standard) El estndar de
jerarqua de archivos que es un conjunto de recomendaciones orientadas a la compatibilidad de
aplicaciones, herramientas de administracin y desarrollo entre distintos sistemas. Esta es una de
las estructuras de archivos que deja la instalacin por defecto de CentOS
pg. 26
Directorio /bin: En este directorio estn los ficheros ejecutables bsicos (bin = binaries)
Directorio /boot: Aqu estn los ficheros y directorios de arranque (boot)
Directorio /dev: Contiene ficheros de dispositivos.
Directorio /etc: Contiene ficheros y directorios de configuracin especficos de tu sistema.
Directorio /home: Contiene los archivos utilizados por el usuario, documentos, escritorio,
descargas, etc.
Directorio /lib: Bibliotecas compartidas esenciales para los binarios de /bin/, /sbin/ y el
ncleo del sistema.
Directorio /lost+found: Directorio especifico para archivos perdidos. Cada particin tiene
el suyo propio independientemente.
Directorio /media: Puntos de montaje para dispositivos de medios como unidades lectoras
de discos compactos.
Directorio /misc: Abreviacin de miscelnea.
Directorio /mnt: Sistemas de ficheros montados temporalmente.
Directorio/opt: En este directorio se suelen almacenar todos los archivos de una
instalacin fuera de los repositorios como puede ser cuando instalamos un .deb
Directorio/proc: Directorio que contiene informacin sobre diferentes partes del sistema,
cpu, discos, tiempo uptime, irqs, memoria, etc
Directorio/root: Directorio particular del superusuario del sistema ( root )
Directorio/sbin: Contiene archivos ejecutables que por lo general son comandos usados
para la administracin del sistema.
Directorio /srv: Es un directorio que contiene datos especficos que son servidos por el
sistema servidor (SeRVer).
Directorio /sys: Contiene parmetros de configuracin del sistema que se est ejecutando.
Datos referidos al kernel, bus, dispositivos, firmware, fs (filesystem) y otros.
Directorio /tmp: Directorio donde se almacenan los ficheros temporales. Son ficheros que
se eliminan con el apagado del sistema.
Directorio /usr: Este es el espacio compartido de todos los usuarios del sistema. Aqu se
guardan los datos compartidos de usuarios: aplicaciones, libreras, manuales, etc.
Directorio /var: Contiene los datos que estn cambiando continuamente en el sistema
como ficheros de log del sistema, correo, colas de impresin, etc.
El diseo predeterminado del instalador de CentOS, Fedora y Red Hat Enterprise Linux utiliza
4 particiones:
pg. 27
Particin Descripcin
/boot Requiere de 200 MiB a 512 MiB.
/ Si se utiliza el diseo de tres particiones, asignar el resto
del espacio disponible en la unidad de almacenamiento.
Si se van asignar particiones para los directorios
mencionados adelante, se requieren de 3072 MiB a 5120
MiB.
/home En estaciones de trabajo, a esta particin se asigna al
menos la mitad del espacio disponible para
almacenamiento.
Memoria de Memoria diseada para el intercambio de informacin
intercambio (Swap) cuando la memoria ram es insuficiente.
Los siguientes directorios jams debern estar fuera de la particin que corresponda a /, es decir,
jams se deben asignar como particiones separadas:
/etc
/bin
/dev
/lib y /lib64
/media
/mnt
/proc
/root
/sbin
/sys
Para futuras versiones de CentOS, el directorio /var tambin deber estar dentro de la misma
particin que corresponda a /, pues el proceso de arranque, que ser gestionado por Systemd, as
lo requerir.
Otras particiones que se recomienda asignar, son:
Particin Funcin
/usr Requiere al menos 3072 MiB en instalaciones bsicas. Debe
considerarse el equipamiento lgico se planee instalar a futuro. Para
uso general se recomiendan al menos de 5120 MiB, y, de ser posible,
considere un tamao ptimo de hasta 20480 MiB.
/tmp Requiere al menos 350 MiB y puede asignarse hasta 5 GiB o ms,
dependiendo de la carga de trabajo y del tipo de aplicaciones. Si, por
pg. 28
ejemplo, el sistema cuenta con un grabador de DVD, ser necesario
asignar a /tmp el espacio suficiente para almacenar una imagen de
disco DVD, es decir, al menos 4.2 GiB, asumiendo que es de una sola
cara y de densidad simple. Algunas distribuciones de vanguardia
utilizan un disco RAM es decir un RAM disk para este directorio
con la finalidad de mejorar el rendimiento del sistema.
/var Requiere al menos 3072 MiB en estaciones de trabajo sin servicios.
En servidores regularmente se le asigna al menos la mitad del
espacio disponible para almacenamiento.
/usr/local Requiere al menos 3072 MiB en instalaciones bsicas. Debe
considerarse el equipamiento lgico que se planee compilar desde
cdigo fuente, e instalar, a futuro. Al igual que /usr, para uso general
se recomiendan al menos de 5120 MiB, y, de ser posible, considere
un tamao ptimo de hasta 20480 MiB.
/opt Requiere al menos 3072 MiB en instalaciones bsicas. Debe
considerarse el equipamiento lgico de terceros que se planee
instalar a futuro. Al igual que /usr, para uso general se recomiendan
al menos de 5120 MiB, y, de ser posible, considere un tamao
ptimo de hasta 20480 MiB.
/var/lib Si se asigna como particin independiente de /var, lo cual permitira
optimizar el registro por diario utilizando el modo journal para un
mejor desempeo, requiere al menos 3072 MiB en instalaciones
bsicas. Deben considerarse las bases de datos o directorios de
LDAP, que se planeen hospedar a futuro. Recuerde que LDAP es
capaz de mandar mensajes a nivel de PING, de igual manera que es
usado para actualizar el cache de la librera del software.
/var/www o Dependiendo del sistema operativo utilizado, el directorio raz del
/srv/www servidor HTTP Apache puede encontrarse dentro de dos diferentes
rutas. CentOS, Fedora y Red Hat Enterprise Linux utilizan
/var/www, mientras que openSUSE y SUSE Linux Enterprise
utilizan /srv/www. Asignar como particin independiente cualquiera
de stos directorios permite optimizar el registro por diario
utilizando el modo writeback para mejorar el desempeo.
Requiere al menos 3072 MiB en instalaciones bsicas. Deben
considerarse los anfitriones virtuales, aplicaciones y contenido para
ser servido a travs del protocolo HTTP, que se planeen hospedar a
futuro.
pg. 29
Instalacion Centos 7.0
CentOS es una distribucin Linux de clase empresarial derivado de fuentes libremente ofrecidos
al pblico por un destacado proveedor de Amrica del Norte Enterprise Linux. CentOS se ajuste
plenamente a la poltica de redistribucin del proveedor de aguas arriba y aspira a ser 100%
compatible a nivel binario. (CentOS principalmente cambia los paquetes para eliminar marcas
comerciales del proveedor y obras de arte.) CentOS es gratuito. CentOS es desarrollado por un
equipo pequeo pero creciente nmero de desarrolladores del ncleo. A su vez, los
desarrolladores principales estn respaldados por una activa comunidad de usuarios como los
administradores de sistemas, administradores de redes, los usuarios empresariales, gerentes,
colaboradores principales de Linux y los entusiastas de Linux de todo el mundo. CentOS tiene
numerosas ventajas sobre algunos de los proyectos de otros clones, incluyendo: una activa y la
creciente comunidad de usuarios, reconstruida rpidamente, probado y QA'ed paquetes de
erratas, una extensa red de servidores espejos , los desarrolladores que estn tocados y de
respuesta, mltiples vas de apoyo gratuitos, como un Chat IRC , listas de correo , Foros , una
dinmica de preguntas frecuentes . Este sitio hace uso de Javascript. Si su navegador no funciona
con JavaScript, le recomendamos que use Firefox.
La distribucin CentOS Linux se deriva de las fuentes de Red Hat Enterprise Linux (RHEL). Al
igual que RHEL, es una distribucin que se destaca por su estabilidad, robustez, y
simplicidad. Estas son caractersticas muy deseables para un administrador de sistemas, por
ello muchos de nosotros la elegimos como distribucin #1 al momento de instalar un nuevo
servidor GNU/Linux. Su estabilidad y robustez nos dan un buen nivel de confianza, al mismo
tiempo que su administracin es muy simple y ampliamente documentada. Aunque, estas
caractersticas no se ponderan al momento de instalar GNU/Linux en una computadora
personal, sino que se opta por tener un sistema no tan estable, pero con las versiones ms
recientes posibles de cada aplicacin o paquete. Estabilidad y actualizaciones son conceptos
divergentes, ya que la estabilidad de una aplicacin se logra con aos de testeo y
depuracin.
Para descargar la ltima versin de CentOS 7 acceder al sitio oficial de
descargas centos.org/download/, y descargar la imagen ISO del DVD
(isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso) desde uno de los
mirrors.
pg. 30
Instalacin
pg. 31
Lo primero que observamos al iniciar el instalador es un panel de tareas de instalacin. Estas
tareas se pueden realizar en cualquier orden, y algunas no son obligatorias, por lo que es
posible olvidarse o saltearse alguna accidentalmente.
pg. 32
Voy a proceder a realizar cada una de las tareas de configuracin desde arriba hacia abajo,
comenzando por la configuracin regional, accediendo al botn "DATE & TIME":
pg. 33
Seleccionar la ubicacin geogrfica (por ejemplo Buenos Aires, equivalente a GMT-3) y
presionar "Done" para volver al panel. Luego, configurar la disposicin de teclado
accediendo a "KEYBOARD":
pg. 34
Con el botn "ms" (+) agregar el teclado, por ejemplo "Spanish; Castillian (Spanish)":
pg. 35
Presionar "Add" y eliminar la configuracin de teclado por defecto ("English") con el botn
"menos" (-):
pg. 36
Presionar "Done" para confirmar los cambios y acceder al botn "LANGUAGUE SUPPORT"
para instalar los idiomas:
pg. 37
Adems del idioma ingls por defecto, agregar cualquier otro idioma necesario, por ejemplo
"Espaol (Espaa)" y "Espaol (Argentina)":
pg. 38
Presionar "Done" una vez ms para aceptar los cambios y volver al panel. Con esto se ha
finalizado la configuracin inicial ("LOCALIZATION").
A continuacin, acceder al botn "SOFTWARE SELECTION", para seleccionar el software a
instalar. CentOS posee diferentes "sabores" de acuerdo al uso que se le vaya a dar al sistema,
como por ejemplo servidor Web, host de mquinas virtuales, estacin de trabajo, etc. En
este caso voy a seleccionar "KDE Plasma Workspaces" ya que este artculo apunta a una
instalacin bsica de un sistema de escritorio. Si se instala cualquier tipo de versin para
servidores, siguiendo la filosofa de CentOS y GNU/Linux en general, muy seguramente no
se instalar ningn entorno grfico, aunque an no he probado este nuevo instalador. Cabe
destacar que el entorno de escritorio por defecto de las versiones "desktop" de CentOS es
GNOME 3. Como ex-usuario de GNOME 2, decid cambiarme a KDE, pues el nuevo diseo
de GNOME no me agrada. Aunque esto es cuestin de gustos.
Seleccionar "KDE Plasma Workspaces" para instalar CentOS con entorno de escritorio KDE.
Luego seleccionar los agregados opcionales que aparecen tildados en la siguiente captura,
de lo contrario el sistema quedar muy "pelado":
pg. 39
Al finalizar, presionar "Done" para volver al panel.
En la parte final de la configuracin de la instalacin se debe especificar el medio donde se
instalara el sistema, accediendo al botn "INSTALLATION DESTINATION":
pg. 40
Seleccionar un medio y un mtodo de particionado. En este punto se puede optar por
diferentes mtodos de particionado automticos y guiados. En este artculo voy a explicar
cmo utilizar un particionado manual. Para ello se debe especificar la opcin "I will configure
partitioning" y seleccionar un medio. Inmediatamente se abre una herramienta de
particionado muy diferente al anterior GParted. En la parte inferior se observa el espacio
disponible, y el espacio total. Con los botones '+' y '-' se agregan y eliminan particiones. A
modo de ejemplo voy a crear dos particiones, una para todo el sistema, y otra para la
memoria de intercambio (swap):
pg. 41
Presionar el botn '+' y especificar el punto de montaje y el tamao (agregar una letra 'g' al
final para indicar Gigabytes):
pg. 42
Luego indicar el formato del sistema de archivos, por ejemplo "ext4":
pg. 43
Repetir los pasos para el resto de las particiones:
pg. 44
En el panel de la izquierda se muestra cmo quedar la tabla de particiones:
pg. 45
Por supuesto, el esquema de particionado depender del uso de cada sistema. Siempre se
recomienda separar en filesystems diferentes los directorios /var, /usr y /home, como
mnimo. Dependiendo de cada tipo de sistema existirn ms o menos particiones.
Para crear la tabla de particiones, presionar "Done". El sistema advierte todos los cambios
que se producirn a nivel filesystem:
pg. 46
Aceptar los cambios para volver al panel. En este punto slo esta configurar la red, pero la
ansiedad me jug una mala pasada y me olvid ese paso accidentalmente. Aunque es algo
muy sencillo, ya que CentOS utiliza la herramienta NetworkManager.
pg. 47
Luego de configurar la red, presionar el botn "Begin Installation" para comenzar la
instalacin:
pg. 48
Aqu es donde se nota el paralelismo del instalador. Mientras el mismo comienza con sus
tareas, es posible configurar la contrasea de root y crear un usuario adicional. Presionar
"ROOT PASSWORD" para indicar la contrasea de superusuario:
pg. 49
Escoger una contrasea fuerte (se observa en la captura que he elegido una contrasea
dbil, por ello la advertencia) y volver al men anterior para crear un usuario ("USER
CREATION"):
pg. 50
Como en todo sistema GNU/Linux, por seguridad es altamente recomendable iniciar sesin
con un usuario non-root (no administrador), sobre todo si se trata de un sistema de
escritorio. Esto evita la mayora de los problemas de seguridad que existen con otros
sistemas, notablemente Windows. Indicar un nombre completo, nombre de usuario, y
contrasea. Presionando el botn "Advanced" es posible indicar parmetros adicionales
como membresa de grupo, directorio home (por defecto crea uno dentro de /home, cuyo
nombre coincide con el del usuario):
pg. 51
Si se desea que el usuario pueda ejecutar tareas con permisos elevados mediante sudo,
agregarlo al grupo "wheel". Volver y esperar que finalice la instalacin de software:
pg. 52
Al finalizar la instalacin, presionar el botn "Reboot" para reiniciar:
pg. 53
Una vez que reinicia, lo primero que se debe hacer es aceptar la licencia (me olvid esta
captura).
Respecto a este tema hay mucha tela para cortar. CentOS es ahora "propiedad" de Red Hat,
ergo tiene que respetar la ley de regulacin de exportaciones, puntualmente todo lo
referente al soporte a naciones embargadas:
By downloading CentOS software, you acknowledge that you understand all of the
following: CentOS software and technical information may be subject to the U.S. Export
Administration Regulations (the "EAR") and other U.S. and foreign laws and may not be
exported, re-exported or transferred (a) to any country listed in Country Group E:1 in
Supplement No. 1 to part 740 of the EAR (currently, Cuba, Iran, North Korea, Sudan &
Syria); (b) to any prohibited destination or to any end user who has been prohibited from
participating in U.S. export transactions by any federal agency of the U.S. government;
or (c) for use in connection with the design, development or production of nuclear,
chemical or biological weapons, or rocket systems, space launch vehicles, or sounding
rockets, or unmanned air vehicle systems. You may not download CentOS software or
technical information if you are located in one of these countries or otherwise subject to
these restrictions. You may not provide CentOS software or technical information to
pg. 54
individuals or entities located in one of these countries or otherwise subject to these
restrictions. You are also responsible for compliance with foreign law requirements
applicable to the import, export and use of CentOS software and technical information.
http://centos.org/legal/#export-regulations
Digamos que si un norteamericano hace esta misma gua y un cubano la lee, a los ojos del
gobierno yankee es un terrorista. Afortunadamente yo soy argentino y soy libre para escribir
esta gua, y que la lea quien quiera.
Ya lo s, da asco, no queda otra que aceptarla o abandonar CentOS (por qu no Scientific
Linux?).
La misma controversia se gener alrededor de Fedora.
Luego de aceptar la, nefasta licencia, es hora de configurar Kdump, una herramienta que
recopila informacin til en caso de un kernel crash. Como confo en que nunca va a suceder
un crash del kernel, y no me gusta desperdiciar memoria, desactivo Kdump:
pg. 55
Al iniciar nuevamente, se accede por primera vez a la pantalla de login, muy bonita para mi
gusto:
pg. 56
Y por primera vez, el escritorio de KDE:
pg. 57
Conceptos importantes, hay que recordar que siempre hay que distinguir los distintos
dispositivos en las instalaciones:
/dev = dispositivo
/sda = disco duro
/st0 = dispositivo de cinta grabable
/nst0 = dispositivo de cinta en modo no regrabable
pg. 58
Un sistema de archivos ext2 puede ser convertido a ext3.
ext3(soporta Jornaling) - Third Extended Filesystem es, esencialmente, el sistema de archivos
ext2 pero con el apoyo de journaling y la escritura de barreras. Es compatible con ext2, bien
probado, y extremadamente estable.
ReiserFS(soporta Jornaling) - Sistema de archivos con journaling y altas prestaciones de Hans
Reiser (V3) que utiliza un mtodo muy interesante de transferencia de datos basado en un
algoritmo creativo e innovador. ReiserFS es anunciado como muy rpido, especialmente cuando
se trata de muchos archivos pequeos. ReiserFS es rpido en dar formato, sin embargo,
comparativamente lento en el montaje. Muy maduro y estable. ReiserFS (V3) no est siendo
activamente desarrollado en este momento. Generalmente considerado como una buena opcin
para /var.
XFS (soporta Jornaling) - Primeros sistemas de archivos con journaling desarrollado
originalmente por Silicon Graphics para el sistema operativo IRIX y portado despus a
GNU/Linux. Proporciona un rendimiento muy rpido en los archivos y sistemas de archivos
grandes y es muy rpido en el formato y montaje. Pruebas de benchmark comparativa han
demostrado que es ms lento cuando trata con muchos archivos pequeos. XFS es muy maduro
y ofrece capacidad de desfragmentacin en lnea, adems este permite soporte para ACLs sin
opciones de montado especial.
1. Para que vamos a utilizar nuestro servidor, es decir para administracin de pginas web,
administracin de puntos de venta, administracin corporativa, etc.
2. El ciclo de vida que manejaremos dependiendo del tipo de instalacin que tendremos y
el cual es vital para este punto.
3. El Hardware que se maneja y el volumen de usuarios a los cuales se les dara soporte con
este.
Una vez terminando de instalar el servidor por ahora solo hacermos una correccin al server para
poder tener salida a internet y este es realizando una correccin al archivo que esta ubicado en
la siguiente ruta
Vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
NM_CONTROLLED="yes"
ONBOOT="yes"
pg. 59
HWADDR=08:00:27:89:15:BE
TYPE=Ethernet
BOOTPROTO=dhcp
La opcin ONBOOT, debe estar en no, con la tecla i, podremos insertar la modificacin, entrares
y lo modificaremos a yes y saldremos del archivo con :wq y reiniciaremos el sistema.
Tenga cuidado de no modificar nada mas en el archivo pues no tendr acceso a internet.
pg. 60
Editor de texto VI y VIM
Vi (Visual) es un programa informtico que entra en la categora de los editores de texto. Pues a
diferencia de un procesador de texto no ofrece herramientas para determinar visualmente cmo
quedar el documento impreso. Por esto carece de opcin como centrada o justificacin de
prrafos, pero permite mover, copiar, eliminar o insertar caracteres con mucha versatilidad. Este
tipo de programas es frecuentemente utilizado por programadores para escribir cdigo fuente de
software.
Vi fue originalmente escrito por Bill Joy en 1976, tomando recursos de ed y ex, dos editores de
texto para Unix, que trataban de crear y editar archivos, de ah, la creacin de vi.
Hay una versin mejorada que se llama Vim, pero Vi es un editor de texto que se encuentra en
casi todo sistema de tipo Unix, de forma que conocer rudimentos de Vi es una salvaguarda ante
operaciones de emergencia en diversos sistemas operativos.
Vim (del ingls Vi IMproved) es una versin mejorada del editor de texto vi, presente en todos los
sistemas UNIX.
Su autor, Bram Moolenaar, present la primera versin en 1991, fecha desde la que ha
experimentado muchas mejoras. La principal caracterstica tanto de Vim como de Vi consiste en
que disponen de diferentes modos entre los que se alterna para realizar ciertas operaciones, lo
que los diferencia de la mayora de editores comunes, que tienen un solo modo en el que se
introducen las rdenes mediante combinaciones de teclas o interfaces grficas.
La mejor forma de entender estos conceptos es simplemente usando vi para editar un archivo de
prueba.
As se inicia el editor y, como el fichero no existe todava, lo crea para ser editado. El editor est
ahora en modo de comandos esperando por un comando.
~
~
~
pg. 61
~
~
~
"prueba" [New file]
Mientras ests insertando texto, puedes tipear cuantas lneas quieras (presionando [Enter]
despus de cada una, por supuesto), y puedes corregir los errores.
Para finalizar el modo de edicin, y volver al modo de comandos, presiona [esc]. Mientras ests
en modo de comandos, puedes usar las teclas de flechas para moverte
por todo el archivo. Aqu, como tenemos solo una lnea de texto, al tratar de usar las
flechas para subir y para bajar vi har un pitido.
k arriba
j abajo
h izquierda
l derecha
a aade texto a partir del carcter en que est situado el cursor i inserta texto a partir de la
posicin del cursor
o inserta una lnea debajo de la posicin del cursor
O inserta una lnea encima de la posicin del cursor
pg. 62
Borrando y cambiando texto
Los cinco comandos ms utilizados para alterar el texto son x borra el carcter en el cursor
r sustituye el carcter en el cursor
dd borra la lnea en la que est el cursor
:s/palabrainicial/palabrafinal/c cambia de a una de las coincidencias
:s/palabrainicial/palabrafinal/g cambia todas las coincidencias
Estos cinco comandos son ejecutados en el modo de comandos, y vuelven al modo de comandos
despus de ejecutarse.
Deshaciendo cambios
Hay veces que se realizan cambios y nos damos cuenta inmediatamente que hemos cometido un
error. El editor vi facilita mecanismos para deshacer acciones de comandos previos.
:w
Si decides que no quieres sobrescribir el fichero que ests editando, sino que quieres guardar los
cambios como un fichero nuevo, aade al comando :w el nombre del nuevo fichero,
:w nuevo_fichero2
Abandonando vi
Para dejar vi se utiliza;
pg. 63
Comandos adicionales para posicionamiento del cursor
Los comandos para avanzar una pantalla arriba y abajo (12 lneas) son control-d una pantalla
abajo control-u una pantalla arriba
Para ficheros muy largos, se puede ir a una lnea del texto 3000G a a la lnea nmero 3000
Para posicionar el curso en la ltima lnea del fichero, teclea /G/
Para posicionar el cursor al comienzo del fichero, teclea 1G
El siguiente comando muestra el nmero de lnea actual control-g
Bsqueda
El comando n busca hacia adelante la siguiente ocurrencia. Para buscar hacia atrs, se utiliza el
comando?
Borrar texto
Ya se vio anteriormente el comando dd para borrar la lnea actual.
El comando dw borra la palabra actual. Ntese que el comando de borrado comienza por d,
seguido por el mbito de aplicacin (d para una lnea, w para una palabra (word en ingls)).
Quitar y poner
Cuando se borra algo, es almacenado en un buffer temporal. El contenido de este buffer puede
ser accedido y 'puesto' o pegado en cualquier sitio del texto.
Para recuperar el ltimo texto borrado, se usa el comando p
pg. 64
vi [archivo].
Movimientos bsicos:
=> Un espacio a la izquierda. j => Una lnea hacia abajo.
k => Una lnea hacia arriba.
l => Un espacio a la derecha.
$ => Mueve al final de la lnea actual.
+ => Comienzo de la lnea siguiente.
- => Comienzo de la lnea anterior. 0 => Comienzo de la lnea actual.
Control de despliegue:
pg. 65
Comandos de bsqueda:
/ => Bsqueda hacia adelante.
? => bsqueda hacia atrs.
n => Siguiente ocurrencia.
N => Posterior ocurrencia.
:set nu => mostrar nmeros de lnea
Comandos de control:
Otros
J unir dos lneas en una
C reemplaza caracteres
C o c$ reemplaza hasta el fin de lnea
c0 reemplaza desde el comienzo de lnea
BS borrar caracter hacia la izquierda
:set cambio de opciones
:set nonu no mostrar nmeros de lnea
:set showmode mostrar modo actual de vi
:set noshowmode no mostrar modo actual de vi
pg. 66
Nota: Los comandos en maysculas y minsculas alteran el resultado (cuidado)
Para volver de nuevo al Modo de Comandos, lo cual es necesario, por ejemplo, para mover el
cursor, presiona la tecla de escape o <esc>. Si no recuerdas en qu modo ests presiona <esc>: si
estabas en Modo de Insercin, ahora pasas al Modo de Comandos; si estabas en Modo de
Comandos, vi emitir un pitido y te dejar en Modo de Comandos.
Un editor de texto es simplemente un programa que se usa para editar ficheros que contengan
texto. Aunque hay muchos editores disponibles, el nico que vas a encontrar seguro en todos los
sistemas UNIX es vi (el "editor visual").
Existe un editor vi ampliado llamado vim que contiene facilidades adicionales, as como diversas
versiones del vi original. En todos los casos, el conjunto de comandos bsicos es el mismo.
Ejercicio:
Instala VI y VIM
Generamos un usuario nuevo y que no tenga privilegios:
# useradd m pruebavi
Asignamos un password a nuestro usuario
# passwd pruebavi
Nos cambiamos al usuario
# su l pruebavi
Creamos un documento nuevo con el comando vim
$ vim nuevo.txt
~
~
~
~
~
~
"nuevo.txt" [New file]
Una vez abierto el documento presionamos la tecla i para insertar texto nuevo
~
pg. 67
~
~
~
~
-INSERT-
Una vez que presiones i, aparecer insertar en la interface, esto indica que podemos editar el
archivo creado, una vez hecho esto escribiremos la frase Linux el mejor sistema y pulsamos enter,
a continuacin escribiremos El megor sistema que conosco este texto tiene errores
ortogrficos, escrbalo de manera errnea pues el ejercicio es para realizar dichas correcciones
utilizando el editor VIM.
pg. 68
archivo con el nombre otro.txt
~ Linux el mejor sistema
~ El mejor sistema que conozco
~
~
~
~
"otro.txt" [New file]
Vuelva a pulsar i, de nuevo aparecer el mensaje de INSERTAR
pg. 69
~conozco solo gente divertida
~mi novia es muy divertida
~
3 sustituciones en 3 lineas
A continuacin, posiciones el cursor de teclado utilizando las flechas del teclado hasta el primer
carcter de la primera lnea:
~Linux el mejor sistema
~El mejor sistema que conozco
~Hoy es un dia divertido
~conozco solo gente divertida
~mi novia es muy divertida
~
Pulsamos la letra d en dos ocaciones para ver como se elimina la primera lnea del archivo
~El mejor sistema que conozco
~Hoy es un dia divertido
~conozco solo gente divertida
~mi novia es muy divertida
~
Ahora pulsamos la tecla p para pegar la lnea
~El mejor sistema que conozco
~Hoy es un dia divertido
~conozco solo gente divertida
~mi novia es muy divertida
~Linux el mejor sistema
~
En este caso usted podr ver que se pega debajo del texto o donde tenga el cursor, lo cual quiere
decir que hay que posicionarse en la lnea correcta para pegar lo copiado
Ahora posicinese en la primera lnea del texto y va a oprimir 3 y despus dd y podra observar
como se copiaron ahora las 3 lineas consecutivas a partir de donde esta posicionado el texto y
podra pegar de la misma manera
~conozco solo gente divertida
~mi novia es muy divertida
~
pg. 70
Ahora vuelva a pulsar p y se restauran las tres lneas principales pero si pulsamos p de nueva se
volvern a pegar las lneas copiadas esto podra pasar n cantidad de veces segn sea el caso
~conozco solo gente divertida
~mi novia es muy divertida
~Linux el mejor sistema
~El mejor sistema que conozco
~Hoy es un dia divertido
~Linux el mejor sistema
~El mejor sistema que conozco
~Hoy es un dia divertido
~Linux el mejor sistema
~El mejor sistema que conozco
~Hoy es un dia divertido
~
Ahora procedemos a salir del archivo guardando los datos, pulsaremos: wq seguido de enter
~conozco solo gente divertida
~ mi novia es muy divertida
~ Linux el mejor sistema
~ El mejor sistema que conozco
~ Hoy es un dia divertido
~ Linux el mejor sistema
~ El mejor sistema que conozco
~ Hoy es un dia divertido
~ Linux el mejor sistema
~ El mejor sistema que conozco
~ Hoy es un dia divertido
~
: wq
Vuelva a editar el archivo pulsando vi nuevo.txt y pulsaremos : /divertid y veremos como se raliza
una bsqueda sombreando las cadenas de coincidencias.
pg. 71
~Hoy es un dia divertido
~ Linux el mejor sistema
~ El mejor sistema que conozco
~Hoy es un dia divertido
~
/divertid
pg. 72
~ Hoy es un dia divertido
~ Linux el mejor sistema
~ El mejor sistema que conozco
~ Hoy es un dia divertido
~ Linux el mejor sistema
~ El mejor sistema que conozco
~ Hoy es un dia divertido
~
9 Lineas ms
Una vez verificado esto guardamos el archivo y salimos de la edicin.
Para mayor informacin revisar la documentacin y la orientacin de comandos incluida en este
manual sobre VI.
Ajustes y Optimizacion del Servidor.
A partir de este momento se pretende realizar un checklist con los puntos importantes a
configurar en el server para ponerlo a punto para cualquier entrega.
Localizacin
La localizacin del sistema se logra mediante la edicin de 2 archivos localizados en las rutas:
/etc/sysconfig/i18n:
/boot/grub/menu.lst
pg. 73
En ambos hay que buscar la configuracin LANG="es_ES.UTF-8 y hay que modificarla por
LANG=es_MX.UTF-8
Esto nos dar la virtud de modificar la configuracin de espaol de Espaa por la configuracin de
espaol de Mxico.
Una vez realizada esta tarea se realizara un reincio de sistema para hacer los cambios de manera
permanente con el comando:
#reboot y enter.
Un sistema operativo monousuario (de mono: 'uno'; y usuario) es un sistema operativo que slo
puede ser ocupado por un nico usuario en un determinado tiempo. Ejemplo de sistemas
monousuario son las versiones domsticas de Windows. Administra recursos de memoria
procesos y dispositivos de las PC'S.
Es un sistema en el cual el tipo de usuario no est definido y, por lo tanto, los datos que tiene el
sistema son accesibles para cualquiera que pueda conectarse.
En algunos sistemas operativos se accede al sistema reproductor de un usuario nico que tiene
permiso para realizar cualquier operacin. Este es el caso de los sistemas operativos ms antiguos
como MS-DOS y algunos ms recientes como la serie Windows 95/98/Me de Microsoft o MacOS
(antes de Mac OS X) de Macintosh. En estos sistemas no existe una diferenciacin clara entre las
tareas que realiza un administrador del sistema y las tareas que realizan los usuarios habituales,
no disponiendo del concepto de multiusuario, un usuario comn tiene acceso a todas las
capacidades del sistema, pudiendo borrar, incluso, informacin vital para su funcionamiento. Un
usuario malicioso (remoto o no) que obtenga acceso al sistema podr realizar todo lo que desee
por no existir dichas limitaciones.
Nivel de ejecucion 1 o s (single), es el nivel de ejecucion de monousuario, sin acceso a servicios
de red, este nivel es regularmente utilizado en tareas de mantenimiento del sistema y el usuario
que ejecuta es root, permite reparar problemas en el sistema.
pg. 74
En este punto seleccionaremos la letra p para poder introducer el password del grub que se
ingreso en la instalacion inicial:
pg. 75
Se pone el password:
pg. 76
Seleccionamos la linea que del kernel de inicio:
Recuerde estas tres funciones del booteo o arranque
Lo primero es que el kernel o nucleo busca y monta el initrd
Linuxrc carga los modulos para montar el file system
El gestor de arranque carga el kernel e inintrd en la memoria.
pg. 77
Y esto nos dara acceso al sistema en nivel monousuario, para realizar las tareas que impliquen
tener este tipo de nivel.
pg. 78
Espacio de direcciones de un proceso
Conjunto de direcciones a las que hace referencia.
La unidad de manejo de memoria (MMU) es parte del procesador. Sus funciones son:
a) Convertir las direcciones lgicas emitidas por los procesos en direcciones fsicas.
b) Comprobar que la conversin se puede realizar. La direccin lgica podra no tener
una direccin fsica asociada. Por ejemplo, la pgina correspondiente a una direccin
se puede haber intercambiada a una zona de almacenamiento secundario
temporalmente.
c) Comprobar que el proceso que intenta acceder a una cierta direccin de memoria
tiene permisos para ello.
En caso de fallo se lanzar una excepcin que deber ser resuelta por el kernel del sistema
operativo. El kernel del sistema operativo est siempre en memoria principal, puesto que si se
intercambia a una zona de almacenamiento secundario, quin sera el encargado de llevarlo a
memoria principal cundo se produjera un fallo de acceso a memoria?
La MMU se inicializa para cada proceso del sistema. Esto permite que cada proceso pueda usar
el rango completo de direcciones lgicas (memoria virtual), ya que las conversiones de estas
pg. 79
direcciones sern distintas para cada proceso.
En todos los procesos se configura la MMU para que la zona del kernel (el cuarto gigabyte) slo
se pueda acceder en modo kernel (modo privilegiado). La configuracin correspondiente al espacio
de memoria del kernel es idntica en todos los procesos. Todos los threads de un mismo proceso
tambin compartirn la configuracin del espacio de memoria del usuario.
Para ejecutar un proceso debe estar, al menos en parte, en memoria principal. Subsistema de
Gestin de Memoria (parte del kernel del sistema operativo):
pg. 80
Unidad 2.- Administracin del Sistema de Archivos.
Ventajas
Aunque su velocidad y escalabilidad es menor que sus competidores, como JFS, ReiserFS o XFS,
tiene la ventaja de permitir actualizar de ext2 a ext3 sin perder los datos almacenados ni tener
que formatear el disco. Tiene un menor consumo de CPU y est considerado ms seguro que
otros sistemas de ficheros en Linux dada su relativa sencillez y su mayor tiempo de prueba.
El sistema de archivo ext3 agrega a ext2 lo siguiente:
Lmites de tamao
Ext3 tiene dos lmites de tamao distintos. Uno para archivos y otro para el tamao del sistema
de archivos entero. El lmite del tamao del sistema de archivos es de 232 bloques
pg. 81
Particin Ext4 (fourth extended filesystem cuarto sistema de archivos extendido)
Es un sistema de archivos transaccional (en inglsjournaling), anunciado el 10 de
octubre de 2006 por Andrew Morton, como una mejora compatible de ext3. El 25 de
diciembre de2008 se public el kernel Linux 2.6.28, que elimina ya la etiqueta de "experimental"
de cdigo de ext4.
Las principales mejoras son:
Soporte de volmenes de hasta 1024 PiB.
Soporte aadido de extent.
Menor uso del CPU.
Mejoras en la velocidad de lectura y escritura.
Extents
Los extents han sido introducidos para reemplazar al tradicional esquema de bloques usado por
los sistemas de archivos ext2/3. Un extent es un conjunto de bloques fsicos contiguos, mejorando
el rendimiento al trabajar con ficheros de gran tamao y reduciendo la fragmentacin. Un extent
simple en ext4 es capaz de mapear hasta 128 MiB de espacio contiguo con un tamao de bloque
igual a 4 KiB.2
pg. 82
El uso de extents est fijado por defecto desde la versin del kernel 2.6.23. Anteriormente, esta
opcin requera ser activada explcitamente (por ejemplo mount /dev/sda1 /mnt/point -t
ext4dev -o extents ).
pg. 83
Noatime (No tiempos de acceso)
Hoy vamos a ver una configuracin muy simple de aplicar, y que hace que el sistema vaya
muuucho ms flido. Y estoy hablando del parmetro "noatime".
[Explicacin]
Resulta que nuestro sistema de ficheros guarda, para cada uno de nuestros ficheros, un
parmetro que se llama "atime", o "access time". Total, que cada vez que accedemos (leemos)
un fichero, el valor "atime" se actualiza. As podemos saber cul fu la ltima vez que
accedimos/leimos un determinado fichero.
Pero claro, esto tiene un comportamiento no deseado: Resulta que por cada lectura que
hacemos a disco, necesitamos escribir algo a disco!! (Actualizar el valor "access time"). Esto
parece absurdo! Para leer tenemos que escribir.
Habr alguien que pensar: exagerado! No es para tanto. Total, tiene que escribir a disco tan
solo unos pocos bytes, esto no es nh.
Pues bueno, resulta que escribir estos pocos bytes si jode, y mucho. Me explico. Linux tiene un
sistema fantstico de caches, completamente transparente para el usuario. Te permite hacer lo
siguiente:
# cat ./bashrc
# cat ./bashrc
La primera vez que haces el "cat" de cualquier fichero ( en nuestro caso, .bashrc ), se va al disco
duro, y lo lee. Pero tambin lo pone en la memoria RAM. La segunda vez que ejecutas el
comando "cat", sabe que lo tiene cacheado y lo lee directamente de memria RAM. No hace
falta tocar disco duro. Esto hace que el sistema vaya muuuucho ms rpido, ya que todo los
pg. 84
ficheros que hayas leido una vez ( y no se hayan modificado ) ya estn cacheados, y no se
precisa leer a disco. Pero que pasa si no tenemos desactivado el "atime", pues que con
cada lectura, aunque la tuvieses cacheada, tienes que hacer una escritura a disco para
actualizar el tiempo de acceso. Nos ha jodido.
Esto, en porttiles tiene un impacto muy grande ya que al cabo de X segundos de no utilizar
el disco duro, ste se para. Un tema de ahorro de energa. Qu pasa si queremos hacer una
lectura o escritura? Pues que el disco se tiene que volver a poner a girar con el consiguiente
consumo energtico/tiempo perdido. Pero si intentamos leer un fichero CACHEADO por el
sistema, el disco duro ni se entera. Sigue parado. Por lo que es genial.
Busca tu disco duro principal. Lo mas seguro es que sea una entrada como esta:
UUID=3e9532f9-226c-4f17-ae64-dad42519a1fc / ext4 errors=remount-ro 0 1
y aade simplemente "noatime" en las opciones para que quede tal que as:
UUID=3e9532f9-226c-4f17-ae64-dad42519a1fc / ext4 noatime,errors=remount-ro 0 1
- Servidores ( web-ftp-sambda ) con muchas lecturas. Aqu si que utilizar el sistema de cachs es
algo bsico, y no quitar el atime podra hacer que el rendimiento fuese psimo.
- Equipos con discos duros SSD. Esto es debido a que los SSD tienen un nmero de escrituras
pg. 85
mximas por bloque, y al llegar este nmero se desactiva el bloque y no se utiliza nunca ms. Por
lo que tener el "atime" activado significa que la vida del disco va a ser mucho mas corta.
Swapinees
Para la mayora de los casos, conviene cambiar este valor por uno ms bajo a fin de que el sistema
utilice menos la memoria de intercambio y utilice ms la memoria cache. sta es una clase de
memoria RAM esttica de acceso aleatorio (SRAM o
Static Random Access Memory). Se sita entre la Unidad Central de Procesamiento (CPU) y la
memoria RAM y se presenta de forma temporal y automtica para el usuario proporcionado
acceso rpido a los datos de uso ms frecuente.
sysctl -w vm.swappiness=10
Si se asigna 0 (cero) como valor para vm.swappiness, se estar desactivando el uso de memoria
virtual, lo cual es poco recomendado, salvo que se disponga de una buena cantidad de memoria
fsica. Por lo general, el valor 0 para esta opcin se utiliza solo en porttiles con unidades SSD,
donde, de hecho, se busca realizar cuanto menos escritura como sea posible sobre las unidades
de almacenamiento.
Commit
pg. 86
Esta opcin controla el tiempo que se utilizar entra cada operacin sincronizacin (sync) de datos
y metadatos en una particin. El tiempo predeterminado es de 5 segundos y puede
incrementarse para mejorar el desempeo, tomando en consideracin que si se especfica
demasiado tiempo y ocurre una interrupcin de energa antes de hacer una operacin de
sincronizacin (sync), se perdern los datos ms recientes con los que se haya trabajado. Slo
usarla se recomienda si se dispone de un sistema de respaldo de energa confiable.
Es una utilidad de los sistemas Unix y similares, como Linux, AIX y MAC OS X que se utiliza ante
alguna inconsistencia del sistema de archivos para corregir los posibles errores en el sistema.
fsck se ejecuta automticamente al inicio del sistema ante alguna anomala, pero tambin puede
ser utilizada manualmente por el administrador del sistema para forzar una verificacin.
Para verificar un sistema de archivos es muy aconsejable hacerlo mientras ste est desmontado.
Para detectar, verificar y corregir los errores del sistema de archivos. Es recomendable utilizarlo
solo con sistemas desmontados.
Su sintaxis es de la forma:
fsck [-sAVRTMNP] [-C[fd]] [-t fstype] [filesys..] [fs-specific-options]
Donde:
-C Muestra el progreso en tiempo real de un modo visual.
-A Chequea todos los dispositivos definidos en el fichero /etc/fstab
-M No chequea sistemas montados.
-t Especifica el tipo o tipos de sistema de ficheros a chequear. Si lo acompaamos de la
opcin -A, solo chequearemos los sistemas que coincidan con fstype(una lista
separada por comas).
Filesys
pg. 87
Opciones:
--a repara de manera automtica, no pide confirmacin.
--n reporta los problemas sin repararlos.
--c busca bloques daados y los agrega a la lista de bloques daados.
--f forzar la revisin.
--v verbose, genera ms informacin.
--r modo interactivo. Espera nuestra respuesta.
--y si a todo.
Ejercicio:
Siempre que se incluye la opcin y se asume que se responder que si a todas las preguntas
de confirmacin que mande la ejecucin de los comandos y con la opcin C muestra una barra
de progreso.
# fsck -fyC /dev/sda1
Si aadimos la opcin c realizara la verificacin de solo lectura para realizarla sobre bloques que
pudieran estar daados, y con la opcin k preservara la lista donde aadirn los nuevos bloques
daados.
# fsck -fykc /dev/sda1
pg. 88
Comando que realiza la misma tarea, pero combinando todas la opciones mencionadas
anteriormente.
# fsck -fpkcc /dev/sda1
Con el comando en este formato este se aade al inodo (nodo ndice) de bloques daados.
# fsck -fpDkcc /dev/sda1
Uso de dd
Sintaxis Bsica:
pg. 89
Donde if significa input file=archivo de entrada, es decir, lo que se quiere copiar y of significa
output file=archivo de salida, o sea, el archivo destino (donde se van a copiar los datos); origen
y destino pueden ser dispositivos (lectora de CD o DVD, disco duro, diskettera, pendrive, particin,
etc.), archivo de copia de seguridad o imagen de disco, etc, pero no carpetas o subcarpetas.
Para el uso sin problemas de este comando, lo primero siempre es tener claro como se llaman las
particiones/discos duros en Linux (/dev/sda1 por ejemplo; /dev deriva de device= dispositivo, en
ingls). Para saber el disco/particin de origen y el de destino, algo que averiguamos fcilmente
con el comando sudo fdisk -l o con algn programa grfico de particiones como gparted. Toda la
informacin sobre el comando dd, se puede consultar con el comando man dd e info dd ,
Se debe utilizar este comando con precaucin, y comprobando siempre el orden y nombre de los
discos/particiones, porque lo mismo que se clona un disco, lo borra en un visto y no visto.
Sintaxis con el comando pv: Usar el comando dd con la sintaxis anterior tiene un pequeo
inconveniente, ya que es un comando muy reservado no da informacin , pues al ejecutarlo,
el prompt de la terminal queda inmvil, por lo que no sabemos que es lo que esta pasando y
cuanto tiempo falta para que termine de ejecutarse. Este pequeo inconveniente se puede
solucionar aadiendo el comando pv, ( *) el cual acta como una tubera de terminal que mide
los datos que pasan a travs de ella- a la sintaxis del comando dd , de forma que ahora la sintaxis
seria:
( alf ) ( ~ )
pg. 90
Adems al terminar nos muestra estadsticas de la tasa de transferencia, el total de bytes
transferidos y el tiempo total que tard en transferir todos los datos.
( alf ) - ( ~ )
( alf ) - ( ~ )
(*) Comprobar antes de ejecutar cualquier linea de comandos con esta segunda sintaxis, que
tenemos instalado en el sistema el paquete pv, o instalarlo si no lo tuviramos.
Vamos a ver algunos ejemplos prcticos y opciones de este comando ( en su versin con el truco
explicado anteriormente con el comando pv ) :
pg. 91
A) Sobre discos duros y particiones:
= Clonar un disco duro:
Con esto clonaramos el disco hda en hdb. (discos IDE):
$ sudo dd if=/dev/hda |pv|dd of=/dev/hdb bs=1M
Con esto clonaramos el disco sda en sdb. (discos SATA):
$ sudo dd if=/dev/hda |pv|dd of=/dev/sdb bs=1M
Con la opcin bs=1M , se consigue que tanto la lectura como la escritura se haga en bloques de 1
megabyte, (menos, seria mas lento pero mas seguro, y con mas nos arriesgamos a perder datos
por el camino).
Hay que tener en cuenta que de esta forma se graba el disco tal cual, MBR, tabla de particiones,
espacio vaco, etc, por lo que solo podrs grabar en un disco del mismo o mayor tamao.
= Grabar solo la primera particin (hda1) del disco de origen en el disco (hdb) de destino:
= Grabar el disco completo (hda) en la primera particin (hdb1) del disco de destino:
= Crear una imagen puede ser bin o iso del disco duro (hda) , en el directorio /home:
= Borrar totalmente la informacin de un disco: para ello, llena el disco con caracteres aleatorios,
cinco veces. No va a quedar ni rastro de informacin en el disco:
pg. 92
$ sudo dd if=/dev/zero |pv|dd of=/dev/sdx (borrado del disco completo)
$ sudo dd if=/dev/zero |pv|dd of=/dev/sdxa (borrar una particin)
donde: x es el disco a borrar , a es la particin a borrar
Esta operacin es muy til para borrar completamente cualquier particin, adems los datos que
se borrarn no se pueden recuperar, por lo tanto es un borrado a bajo nivel y muy seguro, muy
til por ejemplo para cuando los pendrives se nos infectan de virus con nuestro querido windows.
B) Sobre un CD/DVD
= Recuperar un DVD rayado (Esto no recupera todo el DVD, en este caso, solo los sectores
legibles). Sirve tambin para discos duros defectuosos:
La opcin noerror, sirve para obviar los errores de lectura en cualquier situacin.
pg. 93
C) Sobre MBR y VBS:
Los primeros 512 bytes del disco duro o unidad de almacenamiento utilizado para el sistema
operativo, corresponde al sector de arranque maestro, donde:
= Limpia el MBR pero no toca la tabla de particiones, ( muy til para borrar el GRUB sin perder
datos en las particiones):
pg. 94
Para restaurar el VBS:
D) Otros:
= Grabar una imagen del disco en nuestro directorio /home saltndonos los errores del disco (muy
til para discos que se estn muriendo):
Si es necesario dar un formato de bajo nivel a fin de eliminar toda la informacin del disco duro,
puede ejecutar lo siguiente, considerando en el ejemplo que se intenta dar formato de bajo nivel
al disco duro /dev/sda, para escribir 0 (ceros) en cada sector de la unidad de almacenamiento.
dd if=/dev/zero of=/dev/sda
Ejecute lo siguiente para dar formato de bajo nivel escribiendo nmeros aleatorios en todos los
sectores de una unidad de almacenamiento que corresponde a /dev/sda:
if=/dev/urandom of=/dev/sda
pg. 95
Unidad 3. -Administracin de Sofware y servicios.
Antiguamente muchos programas Linux eran distribuidos como cdigo fuente, que el usuario
construa en el programa o en la serie de programas en los que era necesario, junto con las pginas
de los manuales que fueran necesarias, los archivos de configuracin, y dems. Hoy en da, la
mayora de los distribuidores de Linux utilizan programas o sets de programas prearmados
denominados paquetes, los cuales son enviados para su distribucin listos para instalar.
Aprender de qu manera las herramientas para administracin de programas lo ayudan a
instalar, actualizar, y eliminar paquetes. Este manual trata particularmente el tema del Red Hat
Package Manager (RPM), desarrollado por by Red Hat, y del Yellowdog Updater Modified (YUM),
originalmente desarrollado para administrar los sistemas Red Hat Linux en el Departamento de
Fsica de la Universidad Duke.
Dado que los desarrolladores de Linux se han esforzado para que el uso de Linux sea ms fcil, las
herramientas bsicas han sido complementadas por otras, incluyendo las herramientas GUI, las
cuales ocultan al usuario algunas de las complejidades de las herramientas bsicas. RPM, YUM, y
APT (para los sistemas Debian) poseen muchas similitudes. Todos ellos pueden instalar y quitar
paquetes. La informacin sobre los paquetes instalados se guarda en una base de datos. Todos
ellos tienen funcionalidad de lnea bsica de comando, adems de herramientas adicionales que
pueden proporcionar al usuario interfaces de uso ms sencillo. Todos ellos pueden recuperar
paquetes de Internet.
Al instalar un sistema Linux, por lo general usted puede instalar una gran variedad de paquetes.
El set puede personalizarse segn el uso que se quiera dar al sistema, como servidor, escritorio,
o terminal de trabajo del desarrollador. Y en algn momento probablemente sea necesario
instalar paquetes nuevos para obtener alguna otra funcionalidad, actualizar el paquete que
posee, o incluso borrar paquetes que ya no se necesitan o son obsoletos debido a la aparicin de
nuevos paquetes. Demos un vistazo a la forma en la que usted realiza estas tareas, y a algunos de
los desafos a los que debe hacer frente, como la bsqueda de algn paquete que contenga algn
comando en particular.
pg. 96
Si no sabemos o tenemos informacin de algn paquete o programa, podremos utilizar
inicialmente el comando info, que es el encargado de mostrar la informacin en forma de manual
del programa si esta instalado con el comando info:
# info yum
En este manual nos ocuparemos de los dos primeros subgrupos de opciones de comandos. Usted
encontrar informacin sobre el tercer subgrupo en las pginas de los manuales para RPM.
Deberamos tener en cuenta tambin que rpm es el nombre de comando para el comando
principal utilizado con RPM, mientras que .rpm es la extensin utilizada en los archivos RPM. Por
lo tanto "un rpm" o "el xxx rpm" se referir generalmente a un archivo RPM, mientras que rpm por
lo general se referir al comando.
Si en algn momento la base de datos que contiene la informacin de los rpms se corrompe por
cualquier tipo de dao, sea software o hardware con el siguiente comando puede reconfigurarla
a su estado original:
# rpm rebuilddb
Si lo que necesita es revisar si tiene instalado algn paquete dentro de su sistema, ejecutando el
siguiente comando puede realizar esta consulta, agregando la opcin q la cual realizara un query
como el bases de datos, es decir una consulta, para el siguiente ejemplo tomaremos como
ejemplo el paquete coreutils, el cual debe estar instalado, dndonos una salida con la informacin
del paquete:
# rpm -q coreutils
Si necesitamos una infomacion mas detallada de dicho paquete usaremos el comando agregando
la opcin i:
Al substituir la i por la opcin l (ele) podramos listar todos los componentes que son afectados
pg. 97
por dicho paquete:
Si nos interesa saber a que paquete pertenece alguna aplicacin ejecutaramos al comando como
sigue
# rpm -qf /bin/kill
Si queremos ver los paquetes en orden de instalacin, es decir los que se instalaron primero hasta
los ltimos, teclearemos el siguiente:
Si queremos verificar todos los componentes del sistema mostrando los modificados ,
ejecutaremos lo siguiente:
# rpm -Va
pg. 98
Instalacin de paquetes.
Lo primero es descargar el rpm que vamos a utilizar lo cual lo haremos en la siguiente liga:
http://get.adobe.com/es/flashplayer/
Una vez descargado el paquete de flash podramos realizar una revisin detallada de lo que
incluye el paquete ejecutando el siguiente comando:
Para realizar la instalacin despus de descargar el rpm que vallamos a utilizar, se instala con el
comando:
Para ver los componentes que esta instalando el paquete ejecutamos el siguiente comando:
Para verificar que el paquete de firmas es el adecuado para el paquete ejecutamos el siguiente
comando:
# rpm -K el nombre del paquete instalado
Nombre del paquete instalado: (sha1) dsa sha1 MD5 GPG NOT OK
Si tuviera alguna complicacin y el paquete no se instalara agregara al comando la opcin --force:
# rpm -ivh --force Nombre del paquete a instalar
Si le interesa saber en algn momento las dependencias del paquete podra ejecutar el siguiente
comando:
# rpm -qp --requires Nombre del paquete a instalar
Si se desea desinstalar cualquier paquete sin importar que otros dependan de este, se puede
utilizar con la opcin --nodeps. Esto es contraindicado y slo debe ser utilizado en situaciones
pg. 99
muy particulares. Evite siempre desinstalar paquetes que sean dependencia de otros en el
sistema a menos que vaya a reinstalar inmediatamente un paquete que cubra las dependencias
que se hayan visto afectadas.
Para instalar:
# rpm -i paquete.rpm
Para desinstalar:
# rpm -e paquete.rpm
Para instalar y ver el progreso:
# rpm -q paquete.rpm
Para forzar la desinstalacion (opcin no recomendada):
YUM es una herramienta libre de gestin de paquetes para sistemas Linux basados en RPM. Fue
desarrollado por Seth Vidal y un grupo de programadores voluntarios, y actualmente se mantiene
como parte del proyectoLinux@DUKE de la Universidad de Duke. A pesar de que yum es una
utilidad para lnea de comandos, otras herramientas proveen a yum de una interfaz grfica de
usuario, como pup, pirut y yumex. Desde que Seth Vidal trabaja en Red Hat, programadores de
pg. 100
dicha compaa estn implicados en el desarrollo de yum.
pg. 101
Ejercicio:
# yum list available | more > Lista todo los paquetes disponibles
# yum list updates | less > Lista los paquetes que pueden ser actualizados
# yum list all | less > Lista todos los paquetes existentes
pg. 102
# yum groupinstall "Nombre del Grupo" > Instala grupos de
paquetes(servidor web)
# yum -y groupinstall "Nombre del Grupo" > Instala con respuesta positiva a
los modulos que instala(servidor web)
# yum -y groupupdate "Nombre del Grupo" > Actualiza grupo con resolucin
de preguntas de instalacin(Base de datos MySQL).
Una tarea importante como administrador de sistemas es tener el sistema actualizado, para eso:
Instalamos el aquete PackageKit-cron con el siguiente comando:
pg. 103
# yum -y install PackageKit-cron
Active el servicio cambiando el valor de ENABLED a yes y habilite MAILTO=root para enviar a root
un reporte de las actualizaciones aplicadas:
# vi /etc/yum/yum-updatesd.conf
pg. 104
do_update = yes
# automatically download updates
do_download = yes
# automatically download deps of updates
do_download_deps = yes
# chkconfig yum-updatesd on
pg. 105
De esta manera estaremos automatizando las actualizaciones del sistema, mandando un registro
de actualizaciones.
Gestor de Servicios
Una vez que el sistema inicia y root a montado el file system, se ejecuta el /sbin/init y el ID que se
asigna al proceso es el 1 o monousuario.
En los sistemas GNU/Linux se especifican hasta 7 niveles de ejecucin (tambin conocidos como
runlevels o niveles de corrida). En las distribuciones Red Hat, as como en la gran mayora de
distribuciones, la especificacin de los niveles de ejecucin son como sigue:
Nivel de ejecucin 0#
Halt. Este nivel de ejecucin se encarga de detener todos los procesos activos en el sistema,
enviando a la placa madre una interrupcin para el completo apagado del equipo.
Nivel de ejecucin 1#
Single. Nivel de ejecucin monousuario, sin acceso a servicios de red. Este nivel es regularmente
utilizado en tareas de mantenimiento del sistema, y el usuario que ejecuta es root.
pg. 106
Nivel de ejecucin 2#
Al igual que el nivel de ejecucin monousuario, pero con funciones de red y comparticin de datos
mediante nfs.
Nivel de ejecucin 3#
Sistema multiusuario, con capacidades plenas de red, sin entorno grfico. Este nivel de ejecucin
es el recomendado para sistemas de servidor, ya que evita la carga innecesaria de aplicaciones
consumidoras de recursos.
Nivel de ejecucin 4#
Nivel especificado como nivel de experimentacion, pero no se utiliza.
Nivel de ejecucin 5#
Al igual que el nivel de ejecucin 3, pero con capacidades grficas. Ideal para entornos de
escritorio.
Nivel de ejecucin 6#
Reboot. Este nivel de ejecucin se encarga de detener todos los procesos activos en el sistema,
enviando a la placa madre una interrupcin para el reinicio del equipo.
5 es el nivel predeterminado de inicio del sistema. Para cambiar el valor del nivel de ejecucin
predeterminado, se edita como root el archivo /etc/inittab:
# vim /etc/inittab
pg. 107
on el siguiete comando podramos ver de forma mas detallada la informacin del nivel de
ejecucin:
who -r
Con el comando init podremos hacer la conmutacin o cambio de nivel de ejecucin:
# init 1
Con el siguiente comando cambiaremos al nivel de ejecucin 3:
# init 3
Con el siguiente cambiaremos al nivel 6 lo cual probocaria que el sistema reiniciara de manera
inmediata:
# init 6
Con el siguiente el sistema se apagara, pues cambiaria al nivel 0 o apagado:
# init 0
Secuencia de arranque
1.- CentOS arranca ejecutando el programa init. El archivo de configuracin de init es /etc/inittab.
La entrada initdefault determina el nivel de ejecucin inicial del sistema.
2.- Edita el fichero /etc/inittab, localiza la entrada initdefault, y determina en que nivel de
ejecucin est trabajando el sistema.
3.- Tambin puedes obtener el nivel de ejecucin actual ejecutando la instruccin runlevel.
4.- Los primeros scripts que se ejecutan a continuacin (indicado en la linea del fichero
/etc/inittab: si::sysinit:/etc/init.d/rcS) son los que se encuentra en el directorio /etc/rcS. Estos
scripts son los encargados de realizar algunas tareas como:
pg. 108
Activa quotas.
Chequea los argumentos pasados al kernel.
Chequea los filesystems
Inicializa los puertos serie.
Puertos USB.
7.- A continuacin se ejecutan los scripts de inicializacin de los servicios del nivel de ejecucin
por defecto. Estos scripts se encuentran en los directorios /etc/rcn donde n es el nivel de
ejecucin.
Ejemplo:
Nivel Script Directorio
0 rc 0 /etc/rc0.d/
1 rc 1 /etc/rc1.d/
2 rc 2 /etc/rc2.d/
3 rc 3 /etc/rc3.d/
Es el script /etc/init.d/rc el que procesa todos los archivos K y S de los directorios /etc/rcn.d
Para ( con el argumento stop ) aquellos procesos que comienzan por K ( kill )
Lanza ( con el argumento start ) los que comienzan por S ( start ).
Despus de la letra S o K hay dos dgitos numricos que indican el orden de ejecucin. El
orden es ASCII.
Todos los ficheros K o S son enlaces simblicos a los scrips de cada servicio que estn en el
directorio /etc/init.d
pg. 109
De modo esquemtico podemos ver:
Un servicio que tenga un enlace simblico denominado S80XXX, significa que el servicio iniciar
despus de todos los dems servicios que tengan un nmero menor.
Es decir, S80XXX iniciar despus de S70YYY.
Un servicio que tenga un enlace simblico denominado K30XXX, significa que el servicio terminar
antes que todos los dems servicios que tengan un nmero mayor.
Es decir, K30XXX terminar primero que K40YYY.
update-rc.d gdm defaults para crear los enlaces simblicos que ejecutan el script de gdm
4) Vuelve a reiniciar el sistema y comprueba que el servidor grfico se vuelve a ejecutar.
pg. 110
5) Pregunta: Para qu podramos utilizar la configuracin de distintos niveles de
ejecucin?
Un enlace simbolico puede apuntar a un archivo aunque este en un file system distinto
# ps -A
En cualquier momento podemos parar o reiniciar cualquier servicio ejecutando los scripts
del directorio /etc/init.d con las siguientes opciones: start, stop, restart, force-reload,...
pg. 111
Envo de seales a los procesos
Es posible el envo de distintas seales a los procesos. La ms usada es matar un proceso, si por
ejemplo se queda inactivo. Para ello utilizamos la siguiente instruccin:
kill -9 PID
El PID es el identificador del proceso, y lo puedes obtener mirando la lista de procesos por
ejemplo con ps -A.
killall nombredelproceso
Del mismo modo puedes ver el nombre del proceso mirando la lista de procesos con ps.
2) Para comprobar que el servidor grfico no funciona puedes hacer varias cosas: lista los
procesos y comprueba que no existe el proceso gdm ni el Xorg. Tambin puedes intentar
entrar en la consola grfica con CTRL+ALT+F7.
4) Del mismo modo puedes matar el demonio del servicio ssh, y volver a reiniciarlo
posteriormente.
Servicios.
La gestin de servicios se hace a travs de dos herramientas: chkconfig y service. Ambas utilizan
como argumentos los nombres de los archivos de inicio de los servicios, los cuales se localizan
dentro del directorio/etc/init.d
pg. 112
Chkconfig
Chkconfig permite configurar que servicios arrancan/detienen en cada nivel de ejecuccin.
Aclaracin: chkconfig no inicia ni detiene servicios al momento (excepto aquellos bajo xinetd), tan
solo crea o elimina precisamente los enlaces de los que se habl en el punto anterior de una
manera mas amigable. Si lo que se quiere es iniciar o detener el servicio en tiempo real o
manualmente hay que usar service o directamente el script con su argumento conveniente tal
como se explic anteriormente.
# chkconfig list
Con el siguiente comando eliminaremos el servicio del sistema, es decir se eliminara el link del
/etc/init.d
# chkconfig --del sshd
Con el siguiente comando agregaremos el servicio al inicio del sistema, es decir arrancara al inicio
del sistema, aadindolo al directorio /etc/init.d
Al ejecutar chkconfig con el nombre del servicio y on como argumentos para activar un servicio
que ha sido previamente aadido al sistema.
# chkconfig crond on
Con el siguiente comando podremos ver en que niveles esta activo y desactivo el servicio:
pg. 113
# chkconfig --list network
Ejecutaremos el siguiente comando para verificar que el servicio de crond esta desactivo en todos
los niveles
Si ejecutamos el comando con la opcin reset los valores que se asignan son los predeterminados.
Este proceso se puede trabajar tambin con una interfaz grafica, esta se denomina ntsysv
pg. 114
Con esta podemos administrar los servicios principales, pudiendo interactuar con ella para la
utilizacin de los servicios.
Service.
Un daemon (demonio) (nomenclatura usada en sistemas UNIX y UNIX
like), service(servicio) (nomenclatura usada en Windows) o programa residente (nomenclatura
usada en MS-DOS) es un tipo especial de proceso informtico no interactivo, es decir, que se
ejecuta en segundo plano en vez de ser controlado directamente por el usuario. Este tipo de
programas continua en el sistema, es decir, que puede ser ejecutado en forma persistente o
reiniciado si se intenta matar el proceso dependiendo de configuracin del demonio y polticas
del sistema. La palabra daemon viene de las siglas en ingls D.A.E.MON (Disk And Execution
Monitor).
Iniciar un servicio
Al ejecutar el siguiente comando, iniciaremos un servicio, si esta detenido:
Para un servicio
Al ejecutar el siguiente comando, detendremos el servicio de ser necesario:
pg. 115
Estado de un servicio
Al ejecutar el siguiente comando, verificaremos el estado del servicio en cuestio:
Reinicio de un servicio
pg. 116
Unidad 4.-Gestin de usuarios, grupos y privilegios.
Linux es un sistema multiusuario, por lo tanto, la tarea de aadir, modificar, eliminar y en general
administrar usuarios se convierte en algo no solo rutinario, sino importante, adems de ser un
elemento de seguridad que mal administrado o tomado a la ligera, puede convertirse en un
enorme hoyo de seguridad. En este manual aprenders todo lo necesario para administrar
completamente tus usuarios en GNU/Linux.
Tipos de usuarios
Los usuarios en Unix/Linux se identifican por un nmero nico de usuario, User ID, UID. Y
pertenecen a un grupo principal de usuario, identificado tambin por un nmero nico de grupo,
Group ID, GID. El usuario puede pertenecer a ms grupos adems del principal.
Aunque sujeto a cierta polmica, es posible identificar tres tipos de usuarios en Linux:
Usuario root
Tambin llamado superusuario o administrador.
Su UID (User ID) es 0 (cero).
Es la nica cuenta de usuario con privilegios sobre todo el sistema.
Acceso total a todos los archivos y directorios con independencia de propietarios y permisos.
Controla la administracin de cuentas de usuarios.
Ejecuta tareas de mantenimiento del sistema.
Puede detener el sistema.
Instala software en el sistema.
Puede modificar o reconfigurar el kernel, controladores, etc.
Usuarios especiales
Ejemplos: bin, adm, lp, sync, shutdown, mail, operator, squid, apache, etc.
Se les llama tambin cuentas del sistema.
No tiene todos los privilegios del usuario root, pero dependiendo de la cuenta asumen
distintos privilegios de root.
Lo anterior para proteger al sistema de posibles formas de vulnerar la seguridad.
No tienen contraseas pues son cuentas que no estn diseadas para iniciar sesiones con
ellas.
Tambin se les conoce como cuentas de "no inicio de sesin" (nologin).
Se crean (generalmente) automticamente al momento de la instalacin de Linux o de la
aplicacin.
Generalmente se les asigna un UID entre 1 y 100 (definifo en /etc/login.defs)
pg. 117
Usuarios normales
Se usan para usuarios individuales.
Cada usuario dispone de un directorio de trabajo, ubicado generalmente en /home.
Cada usuario puede personalizar su entorno de trabajo.
Tienen solo privilegios completos en su directorio de trabajo o HOME.
Por seguridad, es siempre mejor trabajar como un usuario normal en vez del usuario root, y
cuando se requiera hacer uso de comandos solo de root, utilizar el comando su.
En las distros actuales de Linux se les asigna generalmente un UID superior a 500.
etc/passwd
Cualquiera que sea el tipo de usuario, todas las cuentas se encuentran definidas en el archivo de
configuracin 'passwd', ubicado dentro del directorio /etc. Este archivo es de texto tipo ASCII, se
crea al momento de la instalacin con el usuario root y las cuentas especiales, ms las cuentas de
usuarios normales que se hayan indicado al momento de la instalacin.
El nombre que es asignado al grupo que se almacena en /etc/passwd es Primary group
El archivo /etc/passwd contiene una lnea para cada usuario, similar a las siguientes:
root:x:0:0:root:/root:/bin/bash
sergio:x:501:500:Sergio Gonzlez:/home/sergio:/bin/bash
pg. 118
La informacin de cada usuario est dividida en 7 campos delimitados cada uno por ':' dos puntos.
/etc/passwd
Campo 1 Es el nombre del usuario, identificador de inicio de sesin (login). Tiene que ser
nico.
Campo 2 La 'x' indica la contrasea encriptada del usuario, adems tambin indica que se
est haciendo uso del archivo /etc/shadow, si no se hace uso de este archivo,
este campo se vera algo as como: 'ghy675gjuXCc12r5gt78uuu6R'.
Campo 3 Nmero de identificacin del usuario (UID). Tiene que ser nico. 0 para root,
generalmente las cuentas o usuarios especiales se numeran del 1 al 100 y las de
usuario normal del 101 en delante, en las distribuciones mas recientes esta
numeracin comienza a partir del 500.
Campo 4 Numeracin de identificacin del grupo (GID). El que aparece es el nmero de
grupo principal del usuario, pero puede pertenecer a otros, esto se configura
en/etc/groups.
Campo 5 Comentarios o el nombre completo del usuario.
Campo 6 Directorio de trabajo (Home) donde se sita al usuario despus del inicio de
sesin.
Campo 7 Shell que va a utilizar el usuario de forma predeterminada.
Nota: Recuerde usted puede ver las caractersticas de pasword ejecutando el comando passwd
con la opcin S y el nombre del usuario.
/etc/shadow
El archivo /etc/shadow contiene una lnea para cada usuario, similar a las siguientes:
root:ghy675gjuXCc12r5gt78uuu6R:10568:0:99999:7:7:-1::
sergio:rfgf886DG778sDFFDRRu78asd:10568:0:-1:9:-1:-1::
pg. 119
La informacin de cada usuario est dividida en 9 campos delimitados cada uno por ':' dos puntos.
/etc/shadow
Campo 1 Nombre de la cuenta del usuario.
Campo 2 Contrasea cifrada o encriptada, un '*' indica cuenta de 'nologin'.
Campo 3 Das transcurridos desde el 1/ene/1970 hasta la fecha en que la contrasea fue
cambiada por ltima vez.
Campo 4 Nmero de das que deben transcurrir hasta que la contrasea se pueda volver
a cambiar.
Campo 5 Nmero de das tras los cuales hay que cambiar la contrasea. (-1 significa
nunca). A partir de este dato se obtiene la fecha de expiracin de la contrasea.
Campo 6 Nmero de das antes de la expiracin de la contrasea en que se le avisar al
usuario al inicio de la sesin.
Campo 7 Das despus de la expiracin en que la contrasea se inhabilitara, si es que no
se cambio.
Campo 8 Fecha de caducidad de la cuenta. Se expresa en das transcurridos desde el
1/Enero/1970 (epoch).
Campo 9 Reservado.
/etc/group
Este archivo guarda la relacin de los grupos a los que pertenecen los usuarios del sistema,
contiene una lnea para cada usuario con tres o cuatro campos por usuario:
root:x:0:root
ana:x:501:
sergio:x:502:ventas,supervisores,produccion
cristina:x:503:ventas,sergio
pg. 120
/etc/login.defs
En el archivo de configuracin /etc/login.defs estn definidas las variables que controlan los
aspectos de la creacin de usuarios y de los campos de shadow usada por defecto. Algunos de los
aspectos que controlan estas variables son:
Nmero mximo de das que una contrasea es vlida PASS_MAX_DAYS
El nmero mnimo de caracteres en la contrasea PASS_MIN_LEN
Valor mnimo para usuarios normales cuando se usa useradd UID_MIN
El valor umask por defecto UMASK
Si el comando useradd debe crear el directorio home por defecto CREATE_HOME
Basta con leer este archivo para conocer el resto de las variables que son autodescriptivas y
ajustarlas al gusto. Recerdese que se usaran principalmente al momento de crear o
modificar usuarios con los comandos useradd y usermod que en breve se explicaran.
Aadir usuarios con useradd
useradd o adduser es el comando que permite aadir nuevos usuarios al sistema desde la lnea
de comandos. Sus opciones ms comunes o importantes son las siguientes:
-c aade un comentario al momento de crear al usuario, campo 5 de /etc/passwd
-d directorio de trabajo o home del usuario, campo 6 de /etc/passwd
-e fecha de expiracin de la cuenta, formato AAAA-MM-DD, campo 8 de /etc/shadow
-g nmero de grupo principal del usuario (GID), campo 4 de /etc/passwd
-G otros grupos a los que puede pertenecer el usuario, separados por comas.
-r crea una cuenta del sistema o especial, su UID ser menor al definido en/etc/login.defs en
la variable UID_MIN, adems no se crea el directorio de inicio.
-s shell por defecto del usuario cuando ingrese al sistema. Si no se especifica, bash, es el que
queda establecido.
-u UID del usuario, si no se indica esta opcin, automticamente se establece el siguiente
nmero disponible a partir del ltimo usuario creado.
Ahora bien, realmente no hay prcticamente necesidad de indicar ninguna opcin ya que si
hacemos lo siguiente:
Las fechas de expiracin de contrasea, etc. Quedan lo ms amplias posibles asi que no hay
problema que la cuenta caduque, asi que prcticamente lo nico que faltara sera aadir la
contrasea del usuario y algn comentario o identificacin de la cuenta. Como aadir el password
o contrasea se estudiara en un momento y viendo las opciones con '-c' es posible establecer el
pg. 121
comentario, campo 5 de /etc/passwd:
Siempre el nombre del usuario es el ltimo parmetro del comando. Asi por ejemplo, si queremos
salirnos del default, podemos establecer algo como lo siguiente:
pg. 122
Otros cambios o modificaciones en la misma cuenta:
Lo anterior modifica el comentario de la cuenta, su shell por defecto que ahora sera Korn shell y
su grupo principal de usuario qued establecido al GID 505 y todo esto se aplic al usuario 'sego'
que como se observa debe ser el ltimo argumento del comando.
El usuario 'sego' sali de vacaciones y nos aseguramos de que nadie use su cuenta:
Como su nombre lo indica, userdel elimina una cuenta del sistema, userdel puede ser invocado
de tres maneras:
#> userdel sergio
Sin opciones elimina la cuenta del usuario de /etc/passwd y de /etc/shadow, pero no elimina su
directorio de trabajo ni archivos contenidos en el mismo, esta es la mejor opcin, ya que elimina
la cuenta pero no la informacin de la misma.
#> userdel -r sergio
Al igual que lo anterior elimina la cuenta totalmente, pero con la opcin -r adems elimina su
directorio de trabajo y archivos y directorios contenidos en el mismo, asi como su buzn de
correo, si es que estuvieran configuradas las opciones de correo. La cuenta no se podr eliminar
si el usuario esta logueado o en el sistema al momento de ejecutar el comando.
pg. 123
#> passwd sergio
Changing password for user prueba.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
#>
El usuario root es el nico que puede indicar el cambio o asignacin de contraseas de cualquier
usuario. Usuarios normales pueden cambiar su contraea en cualquier momento con tan solo
invocar passwd sin argumentos, y podr de esta manera cambiar la contrasea cuantas veces lo
requiera.
Password tiene integrado validacin de contraseas comunes, cortas, de diccionario, etc. asi que
si por ejemplo intento como usuario normal cambiar mi contrasea a 'qwerty' el sistema me
mostrar lo siguiente:
$> passwd
Changing password for user prueba.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
$>
Ntese que al ingresar 'qwerty' como contrasea se detect que es una secuencia ya conocida
como contrasea y me manda la advertencia: "BAD PASSWORD: it is based on a dictionary word",
sin embargo me permite continuar, al ingresar la verificacin. Es decir, passwd avisa de malas o
dbiles contraseas pero permite establecerlas si realmente se desea.
Resumiendo entonces, se podra decir que todo este tutorial se reduce a dos lneas de comandos
para crear y dejar listo para trabajar a un usuario en Linux:
pg. 124
$> man passwd
Archivos de configuracin
Los usuarios normales y root en sus directorios de inicio tienen varios archivos que comienzan
con "." es decir estn ocultos. Varan mucho dependiendo de la distribucin de Linux que se tenga,
pero seguramente se encontrarn los siguientes o similares:
#> ls -la
drwx------ 2 ana ana 4096 jul 9 09:54 .
drwxr-xr-x 7 root root 4096 jul 9 09:54 ..
-rw-r--r-- 1 ana ana 24 jul 9 09:54 .bash_logout
-rw-r--r-- 1 ana ana 191 jul 9 09:54 .bash_profile
-rw-r--r-- 1 ana ana 124 jul 9 09:54 .bashrc
.bash_profile aqu podremos indicar alias, variables, configuracin del entorno, etc. que
deseamos iniciar al principio de la sesin.
.bash_logout aqu podremos indicar acciones, programas, scripts, etc., que deseemos ejecutar al
salirnos de la sesin.
.bashrc es igual que .bash_profile, se ejecuta al principio de la sesin, tradicionalmente en este
archivo se indican los programas o scripts a ejecutar, a diferencia de .bash_profile que configura
el entorno.
Lo anterior aplica para terminales de texto 100%.
Si deseamos configurar archivos de inicio o de salida de la sesin grfica entonces, en este caso,
hay que buscar en el men del ambiente grfico algn programa grfico que permita manipular
que programas se deben arrancar al iniciar la sesin en modo grfico. En la mayora de las
distribuciones existe un programa llamado "sesiones" o "sessions", generalmente esta ubicado
dentro del men de preferencias. En este programa es posible establecer programas o scripts que
arranquen junto con el ambiente grfico, sera equivalente a manipular 'bashrc'.
Adems Linux permite que el usuario decida que tipo de entorno Xwindow a utilizar, ya sea algn
entorno de escritorio como KDE o Gnome o algn manejador de ventanas como Xfce o Twm.
Dentro del Home del usuario, se crear un directorio o archivo escondido "." , por ejemplo
'.gnome' o '.kde' donde vendr la configuracin personalizada del usuario para ese entorno.
Dentro de este directorio suele haber varios directorios y archivos de configuracin. Estos son
sumamente variados dependiendo de la distribucin y del entorno. No es recomendable
modificar manualmente (aunque es perfectamente posible) estos archivos, es mucho mas sencillo
modificar va las interfases grficas que permiten cambiar el fondo, protector de pantalla, estilos
de ventanas, tamaos de letras, etc.
pg. 125
Resumen de comandos y archivos de administracin de usuarios
Existen varios comandos ms que se usan muy poco en la administracin de usuarios, que sin
embargo permiten administrar aun ms a detalle a tus usuarios de Linux. Algunos de estos
comandos permiten hacer lo mismo que los comandos previamente vistos, solo que de otra
manera, y otros como 'chpasswd' y 'newusers' resultan muy tiles y prcticos cuando de dar de
alta a mltiples usuarios se trata.
pg. 126
/etc/shadow Contraseas encriptadas y control de fechas de usuarios del sistema.
Creacin de grupos
El comando groupadd permite aadir un grupo indicando como parmetro el nombre del grupo.
Ejemplo, si deseamos crear un grupo llamado 'alumnos' ejecutaremos:
// Aadir un grupo
$ sudo groupadd alumnos
Modificacin de grupos
El comando groupmod permite modificar el nombre de un grupo o el gid del mismo. La sintaxis
es: sudo groupmod [-g nuevo-gid] [-n nuevo-nombre] nombre-grupo, ejemplo:
// Cambiar el gid del grupo profesores
$ sudo groupmod -g 2000 profesores
Eliminacin de grupos
Se realiza con el comando groupdel seguido del nombre del grupo, ejemplo:
// Eliminacin de un grupo
$ sudo groupdel profesores
Eliminara el grupo profesores. Si algn usuario tuviera dicho grupo como grupo primario, el
comando groupdel no eliminar el grupo.
Aadir usuarios a un grupo
Se utiliza el comando adduser seguido del nombre del usuario y del nombre del grupo al que
queremos aadirle, ejemplo:
// Aadir a 'juan' al grupo 'profesores'
$ sudo adduser juan profesores
Quitar usuarios de un grupo
Se utiliza el comando deluser seguido del nombre del usuario y del nombre del grupo del que
queremos quitarle, ejemplo:
pg. 127
SUDO
El programa sudo (del ingls substitute user do) es una utilidad de los sistemas
operativos tipo Unix, como Linux, BSD, o Mac OS X, que permite a los usuarios ejecutar programas
con los privilegios de seguridad de otro usuario (normalmente el usuario root) de manera segura.
Se instala por defecto en /usr/bin.
Sudo fue escrito originalmente por Bob Coggeshall y Cliff Spencer en 1980, en el departamento
de ciencias de la computacin de la Universidad estatal de Nueva York. La versin actual la
mantiene el desarrollador de OpenBSD Todd C. Miller y se distribuye bajo una licencia BSD.
En 1985 se public en el grupo de noticias net.sources una versin mejorada acreditada a Phil
Betchel, Cliff Spencer, Gretchen Phillips, John LoVerso y Don Gworek. Garth Snyder public otra
versin mejorada en el verano de 1986 y durante los siguientes cinco aos fue mantenido con la
colaboracin de muchas personas, incluyendo Bob Coggeshall, Bob Manchek, y Trent Hein.
En 1991 Dave Hieb y Jeff Nieusma escribieron una nueva versin con un formato mejorado para
el fichero /etc/sudoers bajo contrato con la firma consultora The Root Group, versin que
posteriormente fue publicada bajo los trminos de la Licencia Pblica General
de GNU (GNU/GPL).
Desde 1996 el proyecto es mantenido por Todd Miller con la colaboracin de Chris Jepeway y
Aaron Spangler.
Seguro que todo el mundo ha utilizado o como mnimo ha odo hablar de sudo, el comando que
permite ejecutar sentencias con los privilegios de cualquier usuario -incluidos los privilegios de
superusuario- y que es una medida muy interesante para evitar tener que entrar directamente
como estos usuarios con el ms tradicional su.
pg. 128
Ilustracin 8 La famosa tira cmica de XKCD deja claro qu es lo que permite hacer sudo
En Linux.com han publicado una fantstica introduccin a sudo, que significa substitute user do
o super user do (segn como lo usemos), y que como indican en ese artculo realiza una tarea
importante y crucial en muchas distribuciones Linux. Hay cierta polmica en si el uso de sudo es
bueno o malo para la seguridad, pero sea como fuere, seguro que hay un buen montn de
ocasiones en las que os vendr bien usar el sudo.
En el artculo nos cuentan la historia de sudo, que comenz a utilizarse en 1.980 y que poco a
poco se fue popularizando hasta llegar a las distribuciones gracias al trabajo de Todd Miller, que
sigue siendo su desarrollador principal.
Las diferencias entre sudo y su son claras, ya que su permite loguearnos como cualquier otro
usuario o como superusuario, mientras que sudo slo permite ejecutar comandos con los
privilegios de otros usuarios -incluido el superusuario, como ya hemos comentado-. Los riesgos
para la seguridad son menores -aunque podemos seguir cagndola con sudo, por supuesto- y por
eso es bueno que sepis cmo configurar y utilizar sudo.
pg. 129
La configuracin es clave, y para ello es necesario editar -con mimo y cuidado- el
fichero/etc/sudoers. Precaucin, amigo conductor, porque un error en este fichero puede tener
consecuencias graves para el sistema. En el artculo explican cmo aadir nuevos perfiles y
usuarios a la lista de los que pueden realizar sudo y con qu privilegios pueden hacerlo, as que
os recomiendo este artculo (en ingls, pero que puedes leer en un espaol aceptable gracias a la
magia de servicios como Google Translate) para conocer detalles importantes de esa
configuracin y uso del famoso comando sudo.
Visudo
Permite la edicin del archivo de configuracin de sudo sudoers. Invoca al editor que se tenga por
defecto que generalemente es 'vi'. visudo cuando es usado, bloquea el archivo /etc/sudoers de
tal manera que nadie ms lo puede utilizar, esto por razones obvias de seguridad que evitarn
que dos o ms usuarios administradores modifiquen accidentalmente los cambios que el otro
realiz.
Otra caracterstica importande de visudo es que al cerrar el archivo, verifica que el archivo este
bien configurado, es decir, detectar si hay errores de sintaxis principalmente en sus mltiples
opciones o reglas de acceso que se tengan. Por esta razn no debe editarse /etc/sudoers
directamente (perfectamente posible ya que es un archivo de texto como cualquier otro) sino
siempre usar visudo.
Si al cerrar visudo detecta un error nos mostrar la lnea donde se encuentra, y la pregunta "What
now?":
>>> sudoers file: syntax error, line 15 <<<
What now?
Se tienen tres opciones para esta pregunta:
e - edita de nuevo el archivo, colocando el cursor en la lnea del error (si el editor soporta
esta funcin.)
x - salir sin guardar los cambios.
Q - salir y guarda los cambios.
pg. 130
Por defecto el archivo de configuracin es /etc/sudoers pero se pueden editar otros archivos que
no sean ese y que se aplique la sintaxis de sudo, y esto se logra con la opcin -f(visudo -f
/otro/archivo).
Si tan solo se desea comprobar que /etc/sudoers esta bien configurado se usa la opcin -c, toma
por el archivo de configuracin por defecto o si no se indica algn otro.
#> visudo -c
/etc/sudoers file parsed OK
La opcin -s activa el modo 'estricto' del uso de visudo, es decir no solo se comprobar lo
sintctico sino tambin el orden correcto de las reglas, por ejemplo si se define el alias para un
grupo de comandos y este se usa antes de su definicin, con esta opcin se detectar este tipo de
errores.
Sudoers
Archivo de configuracin de sudo, generalmente ubicado bajo /etc y se modifica a travs del uso
de visudo. En este archivo se establece quien (usuarios) puede ejecutar que (comandos) y de que
modo (opciones), generando efectivamente una lista de control de acceso que puede ser tan
detallada como se desee.
Es ms fcil entender sudo si dividimos en tres partes su posible configuracin, ests son:
Alias
Opciones (Defaults)
Reglas de acceso
Por extrao que parezca ninguna de las secciones es obligatoria, o tienen que estar en algn orden
especfico, pero la que al menos debe de existir es la tercera, que es la defincin de los controles
o reglas de acceso. Se detallar cada uno de estos en un momento. Para los que les gusta saber
ms la cuestin tcnica es interesante saber que la construccin de un archivo sudoers esta
basado en la forma BNF (Backus-Naur Form), concretamente en versin extendida (EBNF), si
estudiaste algn curso de informtica universitario seguramente sabes de lo que hablo. EBNF
describe de una forma precisa y exacta la gramtica de un lenguaje, esta se va creando a travs
de reglas de produccin que a la vez son la base para ser referenciadas por otras reglas.
Afortunadamente no necesitas saber nada de esto, solo entender como se aplican estas reglas.
Alias
Un alias se refiere a un usuario, un comando o a un equipo. El alias engloba bajo un solo nombre
(nombre del alias) una serie de elementos que despus en la parte de definicin de reglas sern
refiridos aplicados bajos cierto criterio. Es decir, regresando a EBNF estamos creando las reglas
de produccin inicial. La forma para crear un alias es la siguiente:
pg. 131
tipo_alias NOMBRE_DEL_ALIAS = elemento1, elemento2, elemento3, ... elementoN
tipo_alias NOMBRE1 = elemento1, elemento2 : NOMBRE2 = elemento1, elemento2
En el segundo caso, separado por ":" es posible indicar ms de un alias en una misma defincin.
El tipo_alias define los elementos, es decir, dependiendo del tipo de alias sern sus elementos.
Los tipo de alias son cuatro y son los siguientes:
El NOMBRE_DEL_ALIAS puede llevar letras, nmeros o guin bajo ( _ ) y DEBE de comenzar con
una letra mayscula, se acostumbra a usarlos siempre en maysculas.
Los elementos del alias varian dependiendo del tipo de alias, asi que vemoslos por partes asi
como varios ejemplos para que comience a quedar claro todo esto.
Comando Cmnd_Alias
Definen uno o ms comandos y otros alias de comandos que podrn ser utilizados despus en
alias de usuarios. Ejemplos:
pg. 132
NOTA IMPORTANTE: este tipo de alias con un permiso muy amplios menos '!' algo, generalmente
no son una buena idea, ya que comandos nuevos que se aadan despus a ese directorio tambin
podrn ser ejecutados, es mejor siempre definir especficamente lo que se requiera.
User_Alias
Definen a uno o ms usuarios, grupos del sistema (indicados con %), grupos de red (netgroups
indicados con +) u otros alias de usuarios. Ejemplos:
User_Alias MYSQL_USERS = andy, marce, juan, %mysql
Indica que al alias MYSQL_USERS pertenecen los usuarios indicados individualmente ms los
usuarios que formen parte del grupo 'mysql'.
User_Alias ADMIN = sergio, ana
'sergio' y 'ana' pertenecen al alias ADMIN.
NOTA IMPORTANTE: este tipo de alias con un permiso muy amplios menos '!' algo, generalmente
no son una buena idea, ya que usuarios nuevos que se aadan despus al sistema tambin sern
considerados como ALL, es mejor siempre definir especficamente a los usuarios que se requieran.
ALL es vlido en todos los tipos de alias.
Runas_Alias
Funciona exactamente igual que User_Alias, la nica diferencia es que es posible usar el ID del
usario UID con el caracter '#'.
Runas_Alias OPERADORES = #501, fabian
Al alias OPERADORES pertenecen el usuario con UID 501 y el usuario 'fabian'
Host_Alias
Definen uno o ms equipos u otros alias de host. Los equipos pueden indicarse por su nombre (si
se encuentra en /etc/hosts) por nombre de dominio, si existe un resolvedor de dominios, por
direccin IP, por direccin IP con mscara de red.
pg. 133
Ejemplos:
Host_Alias LANS = 192.168.0.0/24, 192.168.0.1/255.255.255.0
El alias LANS define todos los equipos de las redes locales.
Se define dos alias en el mismo rengln: WEBSERVERS y DBSERVERS con sus respectivas listas de
elementos, el separador ':' es vlido en cualquier definicin de tipo de alias.
Opciones (defaults)
Las opciones o defaults permiten definir ciertas caractersticas de comportamiento para los alias
previamente creados, para usuarios, usuarios privilegiados, para equipos o de manera global para
todos. No es necesario definir opciones o defaults, sudo ya tiene establecidas el valor de cada
uno, y es posible conocerlas a travs de sudo -V (ver en la seccin sudo de este tutorial).
Sin embargo, la potencia de sudo est en su alta granularidad de configuracin, asi que es
importante conocer como establecer opciones espcificas.
Las opciones o defaults es posible establecerlos en cuatro niveles de uso:
Se usa la palabra reservada 'Defaults' para establecer las opciones y dependiendo del nivel que
deseamos afectar su sintaxis es la siguiente:
Global: Defaults opcion1, opcion2 ...
Usuario: Defaults:usuario opcion1, opcion2 ...
Usuario Privilegiado: Defaults>usuario opcion1, opcion2 ...
Equipo: Defaults@equipo opcion1, opcion2 ...
La lista de opciones es algo extensa, pueden consultarse en las pginas del manual (man sudoers)
o en el excelente manual sobre sudo del sitio web de www.rpublica.net,
http://www.rpublica.net/sudo/indice.html#defaults, est en espaol y define muy claramente lo
que significa cada opcin. En este tutorial de LinuxTotal.com.mx me concretar a ejemplificar
varios ejemplos del uso de establecer opciones.
Los defaults los divide el manual (man sudoers) en cuatro: flags o booleanos, enteros, cadenas y
listas. Veamos entonces algunos ejemplos de uso para cada uno de ellos:
pg. 134
Listas
Permite establecer/eliminar variables de entorno propias de sudo. Los 'Defaults' para variables es
de los menos usados en las configuraciones de sudo y ciertamente de los ms confusos. Para
entender como se aplican es ms fcil si primero ejecutas como 'root' el comando sudo -V, y al
final del listado encontrars en maysculas las posibles variables de entorno que se pueden
establecer o quitar y que vienen del shell.
Solo existen tres opciones de listas: env_check, env_delete y env_keep, las listas pueden ser
remplazadas con '=', aadidas con '+=', eliminadas con '-=' o deshabilitadas con '!'. Con un par de
ejemplos quedar ms claro.
Defaults env_reset
Defaults env_check += DISPLAY, PS1
La primera opcin 'env_reset' reinicializa las variables de entorno que sudo utilizar o tendr
disponibles, y solo quedan disponibles LOGNAME, SHELL, USER y USERNAME. La siguiente lnea
indica que agregue (+=) a lo anterior, tambin la variable de entorno DISPLAY a su valor
establecido antes del reset.
Reglas de acceso
Aunque no es obligatorio declarar alias, ni opciones (defaults), y de hecho tampoco reglas de
acceso, pues el archivo /etc/sudoers no tendra ninguna razn de ser si no se crean reglas de
acceso. De hecho podramos concretarnos a crear solamente reglas de acceso, sin opciones ni
alias y podra funcionar todo muy bien.
Las reglas de acceso definen que usuarios ejecutan que comandos bajo que usuario y en que
equipos. La mejor y (segn yo, nica manera) de entender y aprender a configurar sudoers es con
ejemplos, asi que directo al grano:
usuario host = comando1, comando2, ... comandoN
Sintaxis bsica, 'usuario' puede ser un usuario, un alias de usuario o un grupo (indicado por %),
'host' puede ser ALL cualquier equipo, un solo equipo, un alias de equipo, una direccin IP o una
definicin de red IP/mscara, 'comandox' es cualquier comando indicado con su ruta completa.
Si se termina en '/' como en /etc/http/ entonces indica todos los archivos dentro de ese directorio.
daniela ALL = /sbin/iptables
Usuario 'daniela' en cualquier host o equipo puede utiliar iptables.
pg. 135
Los usuarios definifos en el alias 'ADMIN' desde cualquier host pueden ejecutar cualquier
comando.
%gerentes dbserver = (director) /usr/facturacion, (root) /var/log/*
Un ejemplo ms detallado. Los usuarios que pertenezcan al grupo del sistema llamado 'gerentes'
pueden en el equipo llamado 'dbserver' ejecutar como si fueran el usuario 'director' la aplicacin
llamada 'facturacion', adems como usuarios 'root' pueden ver el contendido de los archivos que
contenga el directorio /var/log.
Lo anterior intoduce algo nuevo, que en la lista de comandos es posible indicar bajo que usuario
se debe ejecutar el permiso. Por defecto es el usuario 'root', pero no siempre tener que asi.
Adems la lista 'hereda' la primera definicin de usuario que se indica entre parntesis ( ), por eso
si se tiene ms de alguno hay que cambiar de usuario en el comando conveniente, el ejemplo
anterior tambin sera vlido de la siguiente manera:
%gerentes dbserver = /var/log/*, (director) /usr/facturacion
No es necesario indicar (root) ya que es el usuario bajo el cual se ejecutan los comandos por
defecto. Tambin es vlido usar (ALL) para indicar bajo cualquier usuario. El ejemplo siguiente da
permisos absolutos.
sergio ALL = (ALL) ALL
Se establece permiso para el usuario 'sergio' en cualquier host, ejecutar cualquier comando de
cualquier usuario, por supuesto incluyendo los de root.
Una regala formada solo por alias. En el alias de usuario SUPERVISORES los usuarios que esten
indicado en ese alias, tendrn permiso en los equipos definidos en el alias de host
'PRODUCCION', de ejecutar los comandos definidos o listados en el alias de comandos
'OPERACION'.
En este ltimo ejemplo se aprecia lo ltil que pueden ser los alias, ya que una vez definida la
regla, solo debemos agregar o eliminar elementos de las listas de alias definidos previamente. Es
decir, se agrega un equipo ms a la red, se aade al alias 'PRODUCCION', un usuario renuncia a
la empresa, alteramos el alias 'SUPERVISORES' eliminndolo de la lista, etc.
checo ALL = /usr/bin/passwd *, !/usr/bin/passwd root
pg. 136
En el segundo caso '!/usr/bin/passwd root', si indica un argumento especfico 'root', y la '!' como
ya se sabe indica negacin, negando entonces el permiso a cambiar la contrasea de root.
Cuando se indica el comando sin argumentos: /sbin/iptables sudo lo interpreta como 'puede usar
iptables con cualquiera de sus argumentos'.
NOPASSWD Y PASSWD
Por defecto sudo requiere que cualquier usuario se identifique o autntifique con su contrasea.
Aprendimos en la seccin de 'Opciones' o 'Defaults' que es posible indicar que un usuario o alias
de usuario no requiera de autentificacin. Pero el control granular propio desudo, permite ir aun
ms lejos al indicar a nivel de comandos, cules requieren contrasea para su uso y cules no.
gerardo webserver = NOPASSWD: /bin/kill, /usr/bin/lprm, /etc/httpd/conf/
Usuario 'gerardo' en el equipo 'webserver' no requerira contrasea para los comandos listados.
El tag se hereda, es decir no solo el primer elemento de la lista de comandos, sino los
subsiguientes. Suponiendo que el ltimo '/etc/httpd/conf/' elemento, que permite modificar
cualquier archivo contenido en el directorio, si deseamos que use contrasea, lo siguiente lo
conseguir:
gerardo webserver = NOPASSWD: /bin/kill, /usr/bin/lprm, PASSWD: /etc/httpd/conf/
pg. 137
Unidad 5. Permisos y Atributos del Sistema de Archivos.
Tipos de ficheros:
a. Regular: Son meros almacenes de informacin. Algunos contiene cdigo
ejecutable.
b. Directorios: Son una tabla con nmeros de inodos y nombres de ficheros.
c. Ficheros especiales: Pueden ser dispositivo tipo carcter o dispositivo
de bloques. El manejo de estos ficheros depende del dispositivo en particular.
d. Fifo: son pipes con nombre. Son propios de System V y en BSD no
existen pero en Linux si estn disponibles.
e. Enlaces simblicos (symbolic links): Son ficheros que contiene un puntero a otro
fichero que podra perfectamente estar en un sistema de ficheros distinto.
f. El Soket: es un fichero especial de 4.3 BSD y se utiliza para comunicar
procesos que pueden estar en mquinas distintas.
g. Enlaces rgidos (hard links): Realmente es un nico fichero que puede ser
visto con distintos nombres dentro de un mismo sistema
de ficheros. Es decir se pueden observar como si fueran ficheros
pg. 138
idnticos con el mismo inodo. La informacin reside en un mismo lugar y lo que
ocurra aparentemente en un sitio ocurrir instantneamente en el otro lugar.
Los enlaces de este tipo no pueden ocurrir entre sistemas de ficheros distintos.
No todos los visto sistemas de ficheros soportan hard links ya que es un concepto
muy ligado a los SO tipo Unix
Generalmente los diferentes tipos de ficheros son capaces de aceptar operaciones de
apertura, cierre, lectura y escritura de forma similar. Por ello
se puede redirigir una entrada y una salida a diferentes tipos deficheros. Parte de la enorm
e potencia y flexibilidad de los SO tipo Unix
residen en este hecho. Gracias a esto la combinacin de entradas salidas entre procesos,
ficheros, dispositivos, etc... resulta muy sencilla y flexible.
Existe una salvedad importante. Los directorios en este sentido son totalmente
especiales y un intento de escribir en un directorio dar siempre un error siempre
aunque sea realizado por 'root'. No tiene sentido permitirlo. Los directorios
se crean, borran, y modifican con comandos especficos para ellos.
Las fechas de modificacin asociadas a los directorios cambian con las altas o bajas de los
elementos dentro del directorio. Esto es debido a que dichas operaciones se consideran
pg. 139
como si fueran escrituras en el ficheroespecial de tipo directorio. Un directorio es al fin y alcabo
una simple tabla. Esto lo recordaremos cuando hablemos de permisos asociados a directorios.
Permisos de ficheros
Usaremos el trmino fichero en su sentido ms amplio. Es decir que el
tema de permisos e aplicable a distintos tipos de ficheros con algunas
matizaciones que explicaremos ms adelante. Los ficheros tienen muchos
atributos adems de su nombre.
l Enlace simblico
p Fifo con nombre
b Dispositivo de bloques
c Dispositivo de caracteres
d Directorio
pg. 140
Los permisos tambin pueden representarse como una secuencia de bits.
Un bit es un valor que solo puede valer 0 o 1. En el caso anterior,
podramos representarlo de la forma 111 010 101 donde 1 indica que si hay
permiso 0 que no lo hay y la posicin de cada 0 y cada 1 representa a cada uno
de los permisos.
Umask
Es un comando interno del bash. Se utiliza cuando se crean ficheros.
No podemos profundizar mucho en temas de matemtica binaria porquenos saldramos del te
ma pero la umask se aplica mediante una operacin llamada AND NOT.
Por ejemplo si queremos abrir un fichero con permisos 664 y tenemos una
umask de 022 obtendremos un fichero 644.
664 110 110 100
022 000 010 010
-----------------
644 110 100 100
pg. 141
Para ello establecer una 'umask = 023'. Es decir una umask que elimina los permisos
---.-w-.-wx
Para un script que genere ficheros que solo deban ser accesibles para el usuario que los ha
generado usaramos. 'umask = 077'
Comando chmod
Este comando sirve para alterar una serie de atributos del fichero.
Existen dos formas de usarlo. Una indicando el tipo de acceso y a quien lo
queremos conceder o eliminar. Existen una serie de atributos que se
pueden modificar usando este comando.
pg. 142
$ ##################################
$ chmod 777 chmod.txt
$ ls -l kk
-rwxrwxrwx .... .... ......
$ ##################################
$ chmod 707 chmod.txt
$ ls -l kk
-rwx---rwx .... .... ......
$ ##################################
$ chmod 421 chmod.txt
$ ls -l kk
-r---w---x .... .... ......
$ ##################################
$ chmod 124 chmod.txt
$ ls -l kk
---x-w-r-- .... .... ......
$ ##################################
$ # 'chmod 0 chmod.txt ' equivale a 'chmod 000 chmod.txt '
$ chmod 0 chmod.txt
$ ls -l kk
---------- .... .... ......
$ ##################################
$ chmod +r chmod.txt
$ ls -l kk
-r--r--r-- .... .... ......
$ ##################################
$ chmod +x chmod.txt
$ ls -l chmod.txt
-r-xr-xr-x .... .... ......
$ ##################################
$ chmod -r chmod.txt
$ ls -l chmod.txt
---x--x--x .... .... ......
$ ##################################
pg. 143
$ chmod u+r chmod.txt
$ ls -l chmod.txt
-r-x--x--x .... .... ......
$ ##################################
$ ##################################
$ chmod o+x chmod.txt
$ ls -l chmod.txt
-r----x--x .... .... ......
$ ##################################
Opciones de chmod.
-R
Cambia permisos de forma descendente en un directorio dado. Es la nica opcin de los
estndares POSIX.
-c
Muestra cules archivos han cambiado recientemente en una ubicacin dada
-f
Omite mostrar errores de archivos o directorios que haya sido imposible cambiar
-v
Descripcin detallada de los mensajes generados por el proceso
Para obtener una descripcin completa del uso de chmod, ejecute:
pg. 144
man 1 chmod
Comando chown
El comando 'chown' sirve para cambiar el UID y el GID de un fichero. Esto solo se puede
hacer si tenemos los permisos para ello.
Normalmente su uso est reservado a 'root' y por ello no diremos nada ms. Es muy
posible que si usted usa Linux en un ordenador personal necesite algunos de estos
conocimientos pero se sale de los propsitos de este curso. Le basta con saber que existe
y para que sirve.
2. Si el EUID del proceso es igual al UID del owner (propietario del fichero) se concede el
acceso si los permisos de usuario rwx son los adecuados.
3. Si el EUID del proceso es distinto al UID del owner, y si el EGID del proceso es igual al
GID del owner, se concede el acceso si los permisos de grupo rwx son los adecuados.
NOTA IMPORTANTE : El comando rm permite borrar cualquier fichero sea cual sean los permisos
cuando el proceso tiene un EUID coincidente con el propietario el fichero. nicamente ocurre
que si el fichero esta protegido contra escritura suele pedir (dependiendo de la
pg. 145
configuracin) confirmacin antes de borrarlo. El permiso para borrar un fichero no se guarda
como atributo del fichero. Esto se hace a nivel de directorio y pasamos a explicarlo
inmediatamente.
$ cd /tmp
$ mkdir otromas
$ cd otromas
$ echo > k1
$ echo > k2
$ cd /tmp
$ chmod 777 otromas
$ ls otromas
Si un directorio no tiene permiso de lectura, resultara imposible para
cualquier comando incluido ls averiguar cual es su contenido.
$ chmod -r otromas
$ ls -ld otromas
pg. 146
Esto nos podra mandar un mensaje como este ls: otromas: Permiso denegado
En este intante podemos entrar dentro del directorio
Incluso podemos crear un nuevo fichero pero ya no podemos saber cual es el contenido del
directorio.
$ cd otromas
$pwd
$ ls -l
Hemos podido meternos dentro del directorio otromas porque aun tenemos permiso para ello
pero seguimos sin poder saber cual es su contenido.
$ cd /tmp
Esto imposibilita todas las operaciones que utilicen ese directorio como parte del camino.
Sin abandonar la sesin anterior continuamos el ejercicio
Ahora eliminamos permiso de ejecucin
$ chmod -x otromas
$ ls -ld otromas
pg. 147
Ahora intentamos entrar
$ cd otromas
Y nos mandara un mensaje parecido al siguiente;
bash: cd: otromas: Permiso denegado
Nos damos cuenta que no hemos podido entrar
$ rm kk/k2
bash: cd: otromas: Permiso denegado
$ cd otromas
$ ls
rm: borrar `k1'? (s/n) s
rm: k1: Permiso denegado
$ echo > k3
bash: k3: Permiso denegado
pg. 148
$ touch k3
touch: k3: Permiso denegado
Sin permiso de escritura en el directorio no se pueden crear ficheros nuevos dentro de el ni borrar
ficheros pero los ficheros son perfectamente accesibles
Vamos a limpiar
pg. 149
Unidad 6.- Herramientas bsicas del Sistema Operativo.
# useradd usuarioconsola
# passwd usuarioconsola
Le asignaremos un password
# Exit
Ejercicio;
Nos loguearemos con nuestro usuario usuarioconsola en una terminal para la realizacin del
ejercicio:Cambiar de usuario a super-usuario.
$ su
pg. 150
Con el siguiente comando visualizaremos lo que se conoce como variables de entorno:
# echo $USER; echo $LOGNAME; echo $SHELL; echo $PATH; echo $HOME
Observe que aunque se tienen privilegios de root, se carece de las variables de entorno de ste,
por lo cual algunos mandatos slo se podrn ejecutar si se especfica la ruta exacta de stos
(ejemplos: /sbin/service, /sbin/chkconfig, /sbin/fsck y /sbin/fdisk).
su l
Ejecutamos ahora el comando y podremos ver las variables de entorno:
echo $USER; echo $LOGNAME; echo $SHELL; echo $PATH; echo $HOME
Observe que adems de los privilegios de root, se tienen tambin de las variables de entorno
de ste, pues en realidad se ha realizado un ingreso (login) como root.
Nos volvemos a salir con el siguiente comando para regresar como usuario regular
usuarioconsola
Exit
Ejecutando el siguiente comando nos mostrara la informacion del sistema:
$ uname a
$ hdparm en suse y el centos con parmetros.
Lo anterior nos mostrar el nombre del ncleo, nombre de anfitrin, nmero de lanzamiento del
ncleo, versin del ncleo de Linux, tipo de microprocesador, plataforma del sistema y nombre
del sistema operativo, algo parecido a lo siguiente:
pg. 151
$ whoami
Con el siguiente comando nos mostrara los usuarios que estn conectados en el sistema y dnde
lo estn haciendo:
$ who
Con el siguiente nos mostrara cules usuarios estn conectados en el sistema, en qu tipo de
terminal lo estn haciendo y qu estn haciendo o ejecutando:
$w
Con el siguiente nos mostrara el grupo al que pertenece en caso de pertenecer a alguno:
$ id
Con el siguiente comando podr visualizar cules usuarios estn conectados en el sistema, en qu
tipo de terminal lo estn haciendo y mostrar la informacin de usuario definida en el archivo
/etc/passwd:
$ finger
Ejecutando el siguiente podr ver bitcora de acceso de los ms recientes ingresos a sistema de
todos los usuarios existentes en el sistema;
$ lastlog
Con el siguiente podremos visualizar la bitcora, con los ultimos accesos hacia el sistema;
$ last
Con el siguiente podremos ver los privilegios de root de la bitcora de intentos fallidos de acceso
al sistema;
$ su -l root -c "lastb"
Ejecute lo siguiete, esto devolver que /etc/hosts es un archivo de texto:
$ file /etc/hosts
Ejecutando lo siguiente, podremos ver que /boot/grub/e2fs_stage1_5 es un archivo que carga el
boot y sus propiedades:
$ file /boot/grub/e2fs_stage1_5
Ejecutando el siguiente, nos mostrara el directorio en el cual estamos ubicados:
$ pwd
Para poder cambiarnos de directorio utilizaremos el comando cd, de la guiente forma:
pg. 152
$ cd /usr/local
Ahora ejecutaremos de nuevo el siguiente comando y podremos ver que el directorio a cambiado:
$ pwd
Si utilizamos el comando cd sin argumentos, nos devolver al hogar el usuario que estemos
usando:
$ cd
Ejecute nuevamente el mandato pwd para verificar que se encuentra en su directorio de inicio.
Ahora ejecutamos el comando, el cual listara los archivos contenidos en la ruta que describamos,
sin necesidad de cambiarnos de directorio:
$ ls /usr/local
Ejecutando el comando siguiente listara los archivos directos del directorio donde estemos
ubicados, en este caso no debe mostrar ninguno pues nos encontramos en el home de nuestro
usuario:
$ ls
Ahora si ejecutamos el siguiente, podremos ver los archivos ocultos
$ ls a
Ejecutando el siguiente nos mostrara los mismos archivos per de manera ordenada por nombre,
los atributos y permisos:
$ ls la
Ejecutando el siguiente, nos mostrara los archivos en orden inverso:
$ ls -lar
Ejecutando el siguiente nos los mostrara por nombre, en orden inverso y el tamao de los
archivos:
$ ls -hlar
Ejecutando el siguiente, mostrara los permisos, los atributos adems de que los ordenara por
tamao:
$ ls -Sla
Ejecutando el siguiente mostrara lo mismo que el comando anterior pero en orden inverso:
$ ls Slar
Ejecutando el siguiente, mostrara los permisos y atributos, pero el orden lo realizara por fecha de
modificacion:
pg. 153
$ ls tla
pg. 154
El comando touch crea archivos, pero se pueden generar tambin en cadenas, es decir generar
varios archivos con un comando, ejecuaremos el siguiente para generar archivos vacios:
pg. 155
Ejecutando el siguiente nos listara todos los archivos que contengan la cadena texto, pero solo
aquellos que cualquier carcter distindo de c minscula o C mayuscula:
$ ls texto*[!cC]
Ejecutando el siguiente comando, listar todos lo archivos con la cadena texto pero solo los
archivos qe incluyan la letra a, A o el nmero 1 despues de dicha cadena:
$ ls texto[!aA1]*
Con el siguiente comando crearemos un directorio nuevo llamado ejercicios1:
$ mkdir ejercicios1
$ cd ejercicios1
$ mkdir UNO
Nos salimos de la carpeta para realizar este proceso pero desde el directorio original es decir crear
un directorio fuera del directorio con el siguiente comando:
$ mkdir ejercicios1/DOS
Ahora ejecutamos lo siguiente para intentar generar otro directorio denominado UNO, pero
dentro del directorio ejercicios2 (el cual es inexistente).
$ mkdir ejercicios2/UNO/
pg. 156
Lo anterior devolver un mensaje de error como el siguiente:
mkdir: no se puede crear el directorio ejemplos2/uno: No existe el archivo
o el directorio
A fin de poder crear el directorio UNO, dentro del directorio ejercicios2, es necesario crear
primero ejercicios2. Sin embargo puede indicarle a mkdir que genere toda la ruta aadiendo la
opcin -p (path):
$ mkdir -p ejercicios2/uno
Para verificar que esta creada podemos ejecutar lo siguiente:
$ ls
Y ver que existe ya el directorio ejercicios2, y despus ejecutar;
$ ls ejercicios2
El comando cp sirve para copiar archivos, con el siguiente comando copiaremos un archivo dentro
del directorio ejercicios2
$ cp /etc/fstab ~/ejercicios1/
Vuelva a utilizar el mandato cp de este modo:
$ cp /etc/passwd ~/ejercicios1/
Con estos dos procedimientos, se habrn copiado dos distintos archivos (/etc/fstab y
/etc/passwd) dentro del directorio ejericicios1
Intente copiar el directorio ~/ejemplos1/ como el nuevo directorio ~/copia1, ejecutando lo
siguiente:
$ cp ~/ejercicios1/ ~/copia1
Lo anterior devolver un error porque ~/ejemplos1 es un directorio:
$ cp: se omite el directorio ejercicios1/
Para poder llevar acabo la tarea de la copia de un directorio con su contenido hay que utilizar la
opcin -r por la recuisividad. Ejecute la tarea de la siguiente forma:
$ cp -r ~/ejercicios1/ ~/copia1/
Podremos ver el contenido de ambos directorios utilizando el mandato ls con la opcin -l:
$ ls -l ejercicios1/ copia1/
El comando rm sirve para eliminar archivos y directorios, ahora lo usaremos de la siguiente forma,
elimine el directorio copia1, ejecutando lo siguiente:
pg. 157
$ rm -fr ~/copia1/
Se puede lograr una copia de un directorio, conservando todos los atributos y permisos del
contenido del directorio original, utilizando el mandato cp# con la opcin -a:
$ cp -a ~/ejercicios1/ ~/copia1/
Podremos realizar una copia de un directorio, conservando todos los atributos y permisos del
contenido del directorio original, pero slo copiando los archivos que cambiaron respecto de el
directorio de origen y viendo una salida descriptiva, utilice el mandato cp con las opciones -auv:
$ cp -auv ~/ejercicios1/ ~/copia1/
Visualice de nuevo el contenido de ambos directorios utilizando el mandato ls con la opcin -l:
$ ls -l ~/ejercicios1/ ~/copia1/
Utilice el mandato touch para cambiar la fecha de modificacin del archivo ~/ejericios1/fstab:
$ touch ~/ejercicios1/fstab
Con el comando cp y la opcin -a se realiza una copia exacta del directorio de origen con todo
y sus contenidos, -u para realizar solo la copia de los contenidos nuevos y v para visualizar la
salida de una manera mas detallada:
$ cp -auv ~/ejercicios1/* ~/copia1/
Ejecutamos nuevamente el comando mkdir y generamos un directorio con el nombre nuevo
dentro del directorio de ejercicios1;
$ mkdir ~/ejercicios1/nuevo
Ingresamos al directorio de ejercicios1para continuar y ejecutamos lo siguiente:
$ cd ~/ejercicios1/
Listamos el contenido de este directorio, ejecutando lo siguiente:
$ ls
Nos mostrara los archivos fstab y passwd y el directorio nuevo:
$ adicional fstab passwd
Con el comando mv moveremos los archivos de lugar, mostrando su funcionamiento con el
siguiente coamando:
$ mv fstab nuevo/
Examine el contenido del directorio ejercicios1utilizando de nuevo el mandato ls;
$ ls
Ingresamos al directorio nuevocon el comando siguiente;
pg. 158
$ cd nuevo
Visualizamos nuevamente el contenido del directorio de trabajo actual ejecutando el siguiente
comando;
$ ls
Regresamos al directorio ejercicios1que se encuentra un nivel arriba utilizando el coamando;
$ cd ../
pg. 159
listado como la siguiente:
$ Directorio
Nuevo
Nuevo Directorio
La diagonal inversa funciona como carcter de escape para indicar que espacio entre Nuevo y
Directorio es parte del nombre el directorio que vamos crear.
Una vez que hemor realizado esta tarea borraremos el directorio con todo su contenido desde el
home con un comando, pero regresando al home
$ cd
$ ls
$ rm r ejercicios1
En Linux hay diversas herramientas para empaquetar y comprimir archivos, tomando en cuenta
que empaquetar es juntar dos o ms archivos en un solo archivo (paquete) y comprimir es
tomar este archivo-paquete y comprimirlo a continuacin te muestro un resumen de las ms
comunes, de acuerdo a la extensin que comunmente se acostumbra ponerles.
Ficheros gz
Para comprimir ficheros en formato .gz, se utiliza el siguiente comando:
gzip -9 fichero
-9 : le indica a gz que utilice el mayor factor de compresin posible.
Para descomprimir ficheros .gz, se utilizara el siguiente comando:
gzip -d fichero.gz
-d : indica descompresin
pg. 160
Ficheros bz2
Para comprimir ficheros en formato bz2, se utiliza el siguiente comando:
bzip fichero
Para descomprimir ficheros .bz2, se usa el comando siguiente:
bzip2 -d fichero.bz2
-d : indica descompresin.
Nota: Tanto el compresor gzip como bzip2, solo comprimen ficheros, no directorios, para comprimir
directorios (carpetas), se debe de usar en combinacin con tar.
Ficheros tar.gz
Para comprimir ficheros en formato tar.gz, se utiliza el siguiente comando:
tar -czfv archivo.tar.gz ficheros
-c : indica a tar que cree un archivo.
-z : indica que use el compresor gzip
-f : indica a tar que el siguiente argumento es el nombre del fichero.tar
-v : indica a tar que muestre lo que va empaquetando
Para descomprimir ficheros con extensin tar.gz, se usa el siguiente comando:
tar -xzvf archivo.tar.gz
-x : le dice a tar que extraiga el contenido del fichero tar.gz
-z : le indica a tar que esta comprimido con gzip
-v : va mostrando el contenido del fichero
-f : le dice a tar que el siguiente argumento es el fichero a descomprimir.
Para poder ver el contenido de un fichero comprimido en tar.gz, se usa el siguiente comando:
tar -tzf archivo.tar.gz
Ficheros tar.bz2
Para comprimir en tar.bz2, se hace uso del parmetro pipeline ( | ), que consiste en que filtra
la salida de un comando a la entrada de otro, como es en este ejemplo: tar empaqueta los
distintos ficheros o directorios y su salida lo pasa al comando bzip2 para que este lo comprima
y el resultado de este, lo redirecciona ( > ) al fichero final tar.bz2
Para realizar una compresin de tipo gzip ejecutaramos el comando de la forma que sigue;
pg. 161
$ tar zxvf comprimido.tar.gz -C ~/archivosgz/
Para realizar una extraccin de los archivos de manera selectiva, ejecutaramos lo siguiente:
Para poder ver los archivos que estn contenidos dentro del archivo, ser necesario ejecutar lo
siguiente:
$ tar jtvf comprimido.tar.bz2
Para extraer el contenido del archivo comprimido es necesario ejecutar el comando de extraccin
de la siguiente manera:
$ tar jxvf comprimido.tar.bz2 -C ~/archivosbz2/
Ficheros zip
Para poder comprimir en formato zip, se usara el comando siguiente:
zip archivo.zip ficheros a comprimir
pg. 162
$ zip -r comprimido.zip pixmaps/
El siguiente mostrara el contenido del archivo comprimido.zip:
$ unzip -l comprimido.zip
Para extraer el contenido del archivo comprimido.zip dentro del directorio ~/archivos/,
ejecutando lo siguiente:
$ unzip comprimido.zip -d ~/archivos/
Si la salida le pregunta si desea sobre-escribir los archivos existentes, responda que si a todo
pulsando la letra A y enter.
Para extraer una seleccin de archivos que estn dentro el comprimido, realizaramos la tarea de
la siguiente forma;
$ unzip comprimido.zip -d ~/archivos/ *.png
Si necesita ayuda con el comando con respecto a sus opciones o el uso, puede hacer la consulta
de ambos, tanto de zip, como de unzip con los siguientes comandos;
$ man 1 zip
$ man 1 unzip
Fichero XZ
Para realizar una compresin de tipo XZ necesitaramos ejecutarlo de la siguiente forma:
$ tar Jcf comprimido.tar.xz pixmaps/
Para poder visualizar el contenido del archivo comprimido es necesario ejecutar el comando de
la siguiente forma:
$ tar Jtvf comprimido.tar.xz
Para extraer el contenido del archivo necesitaramos realizar la ejecucin del comando de la
siguiente forma:
$ tar Jxvf comprimido.tar.xz -C ~/archivosXZ/
pg. 163
Para extraer los archivos de manera selectiva, tendramos que ejecutarlo de la siguiente manera:
$ tar Jxvf comprimido.tar.xz -C ~/archivosXZ/ --wildcards '*.png'
Ficheros rar
Para comprimir en formato rar, se usara el siguiente comando:
rar -a archivo.rar ficheros
Para descomprimir ficheros en formato rar, se utiliza el siguiente comando:
unrar -x archivo.rar
Para ver el contenido de un fichero rar, se usa el siguiente comando:
unrar -v archivo.rar
unrar -l archivo.rar
Tengo que decir que todos estos comandos, es para hacerlo desde terminal una terminal, como
ejemplo os vendra de maravilla si os quedarais sin entorno grfico y tuvieseis que descomprimir
algn archivo.
Pero para los que no quieran usar la terminal, pueden estar tranquilos, que existen muy buenas
interfaces grficas. Como lo es File Roller.
Ejercicio;
Lo primero que haremos para llevar acabo esta prctica, ser verificar o realizar la instalacin de
los paquetes necesarios para llevar acabo la practica, como la instalacin que se hizo fue minima,
lo primero que haremos ser instalar dichos paquetes que en este caso son los compresores:
Iniciamos la secion como root, para poder ejecutar el siguiente comando el cual realizara la
instalacin
Una vez que estn instalados los paquete nos salimos para realizar las tareas con un usuario
ordinario, podemos utilizar cualquiera de los usuarios que ya hemos creado o podremos crear
uno nuevo con el siguiente comando;
# useradd compresor
Y le asignamos un password
# passwd compresor
pg. 164
Para poder llevar a cabo el ejercicio necesitamos realizar la compresin de alguna carpeta o
algn archivo, para esto realizaremos la copia de una carpeta del mismo sistema, para fines
ilustrativos utilizaremos la carpeta llamada pixmaps, que se encuentra en la ubicacin
/usr/shae/pixmaps, para lo cual la copiaremos integra al home del usuario que estemos usando
con el siguiente comando;
$ cp a /usr/share/pixmaps .
Ficheros tar
Para poder empaquetar ficheros, utilizamos el siguiente comando:
tar -cvf archivo.tar /dir/a/comprimir/
-c : indica a tar que cree un archivo.
-v : indica a tar que muestre lo que va empaquetando.
-f : indica a tar que el siguiente argumento es el nombre del fichero.tar.
Para poder desempaquetar los ficheros .tar, utilizamos el siguiente comando:
tar -xvf archivo.tar
-x : indica a tar que descomprima el fichero.tar.
-v : indica a tar que muestre lo que va desempaquetando.
-f : indica a tar que el siguiente argumento es el nombre del fichero a desempaquetar.
Si se quiere ver el contenido de un fichero .tar, se utiliza el siguiente comando:
tar -tf archivo.tar
-t : Lista el contenido del fichero .tar
-f : indica a tar que el siguiente argumento es el nombre del fichero a ver.
pg. 165
Respaldos de archivos en Linux
Una de las tareas mas comunes de los administradores de sistemas es el respaldo de archivos
o informacin generada o acumulada dentro de nuestros servidores, partiendo del tipo de
utilidad que tenga el server podra ser vital, realizar el respaldo de informacin contenido
dentro de nuestra infraestructura, para tal motivo existen varios tipos de respaldos, los cuales
se describen a continuacion.
Completos
Se consideran de nivel 0 y es condierado el comprende los respaldos integros de inicio a fin, es
decir del primer archivo al ultimo.
Diferenciales:
Se consideran de nivel 1. Consisten en respaldos que dependen de un respaldo completo o
de nivel 0 para poder restaurar todos los datos, slo archivando los archivos nuevos o que
cambiaron respecto del ltimo respaldo completo. Es decir, para restaurar los datos se requiere
el ltimo respaldo completo y el respaldo diferencial. Hoy en da se utilizan muy poco, salvo que
el administrador del sistema sea poco experimentado o bien porque as es como lo prefiere,
pues consumen mucho ms espacio en el sistema de archivos que los respaldos incrementales.
Incrementales:
Se considera respaldo diferencial cuando hay un solo respaldo completo antes de ste, de nivel
2 cuando hay un respaldo completo y un respaldo incremental antes de ste, de nivel 3 cuando
hay un respaldo completo y dos incrementales antes de ste y as sucesivamente. Son similares
al respaldo diferencial, pero stos pueden hacerse a partir de un respaldo completo y/o un
diferencial y/o otros incrementales, restaurando los datos en secuencia, por lo cual permiten
ahorrar el espacio disponible en el sistema de archivos. Es decir, para restaurar los datos, se
requiere el ltimo respaldo completo y uno o ms respaldos incrementales.
Un respaldo completo se puede realizar con tar, con las opciones cpf, el nombre del archivo
*.tar a crear, la opcin -g (definir crear un archivo incremental en el nuevo formato de GNU)
y el nombre del archivo con extensin *.snar. ste ltimo es utilizado por el compresor tar
para almacenar la informacin respecto de qu fue lo que se respald. La opcin p es
importante para crear y restaurar los respaldos, pues permite preservar los permisos y atributos
originales de los datos. Si se omite esta opcin, todo el contenido almacenado y restaurado sera
propiedad del usuario root.
Recuerde que puede lograr sincornizaciones de archivos tambin incluyendo archivos ocultos con
el comando rsync, ejemplo:
pg. 166
Para realizar el ejercicio es necesario loguaerse como root:
# su -l
Con el siguiente comando crearemos el primer respaldo, que es considerado un repaldo completo
o de nivel 0 /usr/share/pixmaps, guardando los archivos de datos y un incremental dentro
de /var/respaldos.
Para generar el respaldo de manera incremental, se define el nombre el archivo utilizado el mismo
archivo con extencion .snar
pg. 167
# tar xpf /var/respaldos/incremental-1.tar \
-g /var/respaldos/registro.snar -C /
Si se dispone de poco espacio estos pueden hacerse tambin de volmenes distintos, y asi
distribuir el espacio que ocupan los respaldos o moviendo a otros volmenes las fracciones del
respaldo si el espacio asi nos lo permite.
Para realizar un respaldo de esta forma tendramos que usar la opcin -M lo cual configura el
respaldo para ubicarlo en distintos volmenes y la opcin -L para indicar el tamao que le
asignaremos al la fraccin a generar, este se define en bytes.
El ejemplo generara el respaldo de la misma carpeta usada hasta este momento,
/usr/share/pixmaps en una unidad de almacenamiento externa que podra ser una usb o un disco
duro, en cuatro partes de 4 GiB cada una, asumiendo que /usr/share/pixmaps ocupa menos de
16 GiB de espacio en el sistema de archivos y que la unidad de almacenamiento externo est
montada en el directorio /media/DISCO/:
pg. 168
# tar xpf /media/DISCO/respaldo01.tar -g /media/DISCO/registro.snar -M -C
/
Una vez terminado el ejercicio tendremos la recuperacin del archivo o archivos originales de
manera incremental.
Linux, como se sabe, es un sistema operativo multitarea y multiusuario. Esto quiere decir que
mltiples procesos pueden operar simultneamente sin interferirse unos con los otros. Cada
proceso tiene la "ilusin" que es el nico proceso en el sistema y que tiene acceso exclusivo a
todos los servicios del sistema operativo.
pg. 169
Comando Ps
El comando ps es el que permite informar sobre el estado de los procesos. ps esta basado en el
sistema de archivos /proc, es decir, lee directamente la informacin de los archivos que se
encuentran en este directorio. Tiene una gran cantidad de opciones, incluso estas opciones varan
dependiendo del estilo en que se use el comando. Estas variaciones sobre el uso de ps son las
siguientes:
Estilo UNIX, donde las opciones van precedidas por un guin -
Estilo BSD, donde las opciones no llevan guin
Estilo GNU, donde se utilizan nombres de opciones largas y van precedidas por doble guin
--
Sea cual sea el estilo utilizado, dependiendo de las opciones indicadas, varias columnas se
mostrarn en el listado de procesos que resulte, estas columnas pueden ser entre muchas otras,
las siguientes (y principales):
Las opciones completas de ps las encuentras en las pginas del manual (man ps), o escribiendo
en la terminal ps L, y para ver un resumen de sus opciones ms comunes usaps --help:
#> ps --help
********* simple selection ********* ********* selection by list *********
-A all processes -C by command name
-N negate selection -G by real group ID (supports names)
-a all w/ tty except session leaders -U by real user ID (supports names)
-d all except session leaders -g by session OR by effective group name
-e all processes -p by process ID
T all processes on this terminal -s processes in the sessions given
a all w/ tty, including other users -t by tty
g OBSOLETE -- DO NOT USE -u by effective user ID (supports names)
r only running processes U processes for specified users
x processes w/o controlling ttys t by tty
*********** output format ********** *********** long options ***********
-o,o user-defined -f full --Group --User --pid --cols --ppid
-j,j job control s signal --group --user --sid --rows --info
-O,O preloaded -o v virtual memory --cumulative --format --deselect
-l,l long u user-oriented --sort --tty --forest --version
-F extra full X registers --heading --no-heading --context
********* misc options *********
-V,V show version L list format codes f ASCII art forest
-m,m,-L,-T,H threads S children in sum -y change -l format
-M,Z security data c true command name -c scheduling class
pg. 170
-w,w wide output n numeric WCHAN,UID -H process hierarchy
Pstree
Muestra los procesos en forma de rbol, pstree --help te da las opciones ms comunes.
Recomiendo uses lo uses con la opcin -A y -G para que te un rbol con lneas con lneas estilo
ASCII y de terminal VT100 respectivamente, puedes aadir tambin -u para mostrar entre
parntesis al usuario propietario del proceso:
# pstree
pg. 171
Qu es cron?
Cron es el nombre del programa que permite a usuarios Linux/Unix ejecutar automticamente
comandos o scripts (grupos de comandos) a una hora o fecha especfica. Es usado normalmente
para comandos de tareas administrativas, como respaldos, pero puede ser usado para ejecutar
cualquier cosa. Como se define en las pginas del manual de cron (#> man cron) es un demonio
que ejecuta programas agendados.
Recuerde que si no tiene lo que busca dentro del manual de cron, podra encontrar mas
informacin utilizando los comandos:
# whatis crontab
# man kcrontab
Dependiendo de la distribucin que este utilizando.
En prcticamente todas las distribuciones de Linux se usa la versin Vixie Cron, por la persona que
la desarroll, que es Paul Vixie, uno de los grandes gurs de Unix, tambin creador, entre otros
sistemas, de BIND que es uno de los servidores DNS ms populares del mundo.
Iniciar cron
Cron es un demonio (servicio), lo que significa que solo requiere ser iniciado una vez,
generalmente con el mismo arranque del sistema. El servicio de cron se llama crond. En la mayora
de las distribuciones el servicio se instala automticamente y queda iniciado desde el arranque
del sistema, se puede comprobar de varias maneras:
Si el servicio no estuviera configurado para arrancar desde un principio, bastara con agregarlo
con el comando chkconfig:
pg. 172
#> chkconfig --level 35 crond on
Con esto lo estaras agregando al nivel de ejecucin 3 y 5, para que inicie al momento del arranque
del sistema.
Usando cron
Hay al menos dos maneras distintas de usar cron:
La primera es en el directorio etc, donde muy seguramente encontrars los siguientes directorios:
cron.hourly
cron.daily
cron.weekly
cron.monthly
#!/bin/sh
#script que genera un respaldo
cd /usr/documentos
tar czf * respaldo
cp respaldo /otra_directorio/.
Ntese que la primera lnea empieza con #!, que indica que se trata de un script shell de bash, las
dems lneas son los comandos que deseamos ejecute el script. Este script podra nombrarse por
ejemplo respaldo.sh y tambin debemos cambiarle los permisos correspondientes para que
pueda ser ejecutado, por ejemplo:
La "x" en el grupo de permisos del propietario (rwx) indica que puede ser ejecutado.
Si este script lo dejamos en cron.hourly, entonces se ejecutar cada hora con un minuto de
todos los das, en un momento se entender el porque.
pg. 173
#> cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
HOME es el directorio raz o principal del comando cron, si no se indica entonces, la raz ser la
que se indique en el archivo /etc/passwd correspondiente al usuario que ejecuta cron.
Los comentarios se indican con # al inicio de la lnea.
Despus de lo anterior vienen las lneas que ejecutan las tareas programadas propiamente. No
hay lmites de cuantas tareas pueda haber, una por rengln. Los campos (son 7) que forman estas
lneas estn formados de la siguiente manera:
Campo Descripcin
Minuto Controla el minuto de la hora en que el comando ser ejecutado, este valor
debe de estar entre 0 y 59.
Hora Controla la hora en que el comando ser ejecutado, se especifica en un
formato de 24 horas, los valores deben estar entre 0 y 23, 0 es medianoche.
Da del Da del mes en que se quiere ejecutar el comando. Por ejemplo se indicara
Mes 20, para ejecutar el comando el da 20 del mes.
pg. 174
Mes Mes en que el comando se ejecutar, puede ser indicado numricamente
(1-12), o por el nombre del mes en ingls, solo las tres primeras letras.
Da de la Da en la semana en que se ejecutar el comando, puede ser numrico (0-
semana 7) o por el nombre del da en ingls, solo las tres primeras letras. (0 y 7 =
domingo)
Usuario Usuario que ejecuta el comando.
Comando Comando, script o programa que se desea ejecutar. Este campo puede
contener mltiples palabras y espacios.
Un asterisco * como valor en los primeros cinco campos, indicar inicio-fin del campo, es decir
todo. Un * en el campo de minuto indicar todos los minutos.
Para entender bien esto de los primeros 5 campos y el asterisco usar mejor varios ejemplos:
Ejemplo Descripcin
01 * * * * Se ejecuta al minuto 1 de cada hora de todos los das
15 8 * * * A las 8:15 a.m. de cada da
15 20 * * * A las 8:15 p.m. de cada da
00 5 * * 0 A las 5 a.m. todos los domingos
* 5 * * Sun Cada minuto de 5:00a.m. a 5:59a.m. todos los domingos
45 19 1 * * A las 7:45 p.m. del primero de cada mes
01 * 20 7 * Al minuto 1 de cada hora del 20 de julio
10 1 * 12 1 A la 1:10 a.m. todos los lunes de diciembre
00 12 16 * Al medioda de los das 16 de cada mes y que sea Mircoles
Wen
30 9 20 7 4 A las 9:30 a.m. del dia 20 de julio y que sea jueves
30 9 20 7 * A las 9:30 a.m. del dia 20 de julio sin importar el da de la semana
20 * * * 6 Al minuto 20 de cada hora de los sbados
20 * * 1 6 Al minuto 20 de cada hora de los sbados de enero
pg. 175
En el directorio /var/spool/cron (puede variar segn la distribucin), se genera un archivo cron
para cada usuario, este archivo aunque es de texto, no debe editarse directamente.
Se tiene entonces, dos situaciones, generar directamente el archivo crontab con el comando:
$> crontab -e
Con lo cual se abrira el editor por default (generalemente vi) con el archivo llamado crontab vacio
y donde el usuario ingresar su tabla de tareas y que se guardar automticamente como
/var/spool/cron/usuario.
El otro caso es que el usuario edite un archivo de texto normal con las entradas de las tareas y
como ejemplo lo nombre 'mi_cron', despus el comando $> crontab mi_cron se encargar de
establecerlo como su archivo cron del usuario en /var/spool/cron/usuario:
$> vi mi_cron
# borra archivos de carpeta compartida
0 20 * * * rm -f /home/sergio/compartidos/*
# ejecuta un script que realiza un respaldo de la carpeta documentos el primer da de cada mes
0 22 1 * * /home/sergio/respaldomensual.sh
# cada 5 horas de lun a vie, se asegura que los permisos sean los correctos en mi home
1 *5 * * * 1-5 chmod -R 640 /home/sergio/*
:wq (se guarda el archivo)
$> ls
mi_cron
$>
mi_cron
(se establece en /var/spool/cron/usuario)
pg. 176
Controlando el acceso a cron
Cron permite controlar que usuarios pueden o no pueden usar los servicios de cron. Esto se logra
de una manera muy sencilla a travs de los siguientes archivos:
/etc/cron.allow
/etc/cron.deny
Para impedir que un usuario utilice cron o mejor dicho el comando crontab, basta con agregar su
nombre de usuario al archivo /etc/cron.deny, para permitirle su uso entonces sera agregar su
nombre de usuario en /etc/cron.allow, si por alguna razn se desea negar el uso de cron a todos
los usuarios, entonces se puede escribir la palabra ALL al inicio de cron.deny y con eso bastara.
#> echo ALL >>/etc/cron.deny
o para agregar un usuario mas a cron.allow
#> echo juan >>/etc/cron.allow
Si no existe el archivo cron.allow ni el archivo cron.deny, en teora el uso de cron esta entonces
sin restricciones de usuario. Si se aaden nombres de usuarios en cron.allow, sin crear un archivo
cron.deny, tendr el mismo efecto que haberlo creado con la palabra ALL. Esto quiere decir que
una vez creado cron.allow con un solo usuario, siempre se tendrn que especificar los dems
usuarios que se quiere usen cron, en este archivo.
pg. 177
Ejercicio:
Para iniciar comenzaremos instalando el paquete necesarios;
# yum y install cronie
# yum y install anacron
Cualquier usuario que sea definido para ejecutar un programa en el archivo /etc/crontab, podr
ejecutar todo aquello para lo cual tenga privilegios, siempre y cuando se defina un intrprete de
mandatos vlido (por ejemplo /bin/bash o /bin/sh) en la variable de entorno SHELL, as como las
rutas de binarios ejecutables que sean necesarias, sin importar lo que est definido en el archivo
/etc/passwd o las variables de entorno definidas en el archivo ~/.bashrc del usuario a utilizar.
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
El archivo /etc/crontab permite adems definir a cul usuario enviar un mensaje de correo
electrnico con los resultados de las salidas de los programas que las generen y el intrprete de
mandatos a utilizar.
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=alguien@gmail.com
pg. 178
1 14 * * * hector /home/hector/bin/tarea.sh > /dev/null 2>&1
pg. 179
En vez de usar day[s], week[s], tambien podemos usar minute[s], hour[s]. El now indica "AHORA".
Fecha u hora se pueden especificar con los siguientes formatos: HH:MM (hora:minutos),
MMDDYY o MM/DD/YY o DD.MM.YY (mes dia anio).
Los diferentes comandos que hacen al paquete AT son:
atd - El AT Daemon - Como cron, se debe cargar desde un script de /etc/rc.d
at - El at propiamente dicho. Ver los ejemplos.
atq - Ver la lista de trabajos ('jobs') pendientes.
atrm - Para eliminar un trabajo pendiente de la cola (queue).
batch - Como at, pero ejecutara el script cuando el nivel de carga del sistema haya bajado lo
suficiente. (default, 0.8).
El atq es el at con el parametro '-l', y el atrm es el at, pero con el parametro '-d'.
El at tambien admite el parametro '-m', que enviara un eMail al usuario una vez realizado el
trabajo.
Para permitir o denegar el uso de at podemos hacer lo mismo que con cron, y los archivos Allow
y Deny se encuentran en /etc/at.allow y /etc/at.deny, y se respeta el mismo esquema que en
Cron.
Kill
El comando kill, que literalmente quiere decir matar, sirve no solo para matar o terminar procesos
sino principalmente para enviar seales (signals) a los procesos. La seal por default (cuando no
se indica ninguna es terminar o matar el proceso), y la sintaxis es kill PID, siendo PID el nmero
de ID del proceso. Asi por ejemplo, es posible enviar una seal de STOP al proceso y se detendr
su ejecucin, despus cuando se quiera mandar una seal de CONTinuar y el proceso continuara
desde donde se quedo.
El siguiente comando muestra todas las posibles seales que puedan enviarse a un proceso;
# kill l
Es decir todos los procesos que estn en un nivel Start.
La lista previa presenta una lista de todas las posibles seales que pueden mandarse a un proceso
y estas pueden ser invocadas a travs del nmero de la seal o de su cdigo, por ejemplo:
pg. 180
Killall
El comando killall, que funciona de manera similar a kill, pero con la diferencia de en vez de indicar
un PID se indica el nombre del programa, lo que afectar a todos los procesos que tengan ese
nombre. Asi por ejemplo si se tienen varias instancias ejecutndose del proxy server squid,
con killall squid eliminar todos los procesos que se esten ejecutando con el nombre 'squid'
#> killall -l (lista de posibles seales)
#> killall -HUP httpd (manda una seal de "colgar", detenerse releer sus archivos de
configuracin y reiniciar)
#> killall -KILL -i squid (manda seal de matar a todos los procesos squid pero pide confirmacin
en cada uno)
Nice
Permite cambiar la prioridad de un proceso. Por defecto, todos los procesos tienen una prioridad
igual ante el CPU que es de 0. Con nice es posible iniciar un programa (proceso) con la prioridad
modificada, ms alta o ms baja segn se requiera. Las prioridades van de -20 (la ms alta) a 19
la ms baja. Solo root o el superusuario puede establecer prioridades negativas que son ms altas.
Con la opcin -l de ps es posible observar la columna NI que muestra este valor.
renice
Asi como nice establece la prioridad de un proceso cuando se incia su ejecucin, renicepermite
alterarla en tiempo real, sin necesidad de detener el proceso.
#> nice -n -5 yes (se ejecuta el programa 'yes' con prioridad -5)
(dejar ejecutando 'yes' y en otra terminal se analiza con 'ps')
#> ps -el
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 12826 12208 4 75 -5 - 708 write_ pts/2 00:00:00 yes
#> renice 7 12826
12826: prioridad antigua -5, nueva prioridad 7
#> ps -el
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 12826 12208 4 87 7 - 708 write_ pts/2 00:00:15 yes
(obsrvese el campo NI en el primer caso en -5, y en el segundo con renice qued en 7, en tiempo
pg. 181
real)
nohup y &
Cuando se trata ejecutar procesos en background (segundo plano) se utiliza el comandonohup o
el operador & . Aunque realizan una funcin similar, no son lo mismo.
Si se desea liberar la terminal de un programa que se espera durar un tiempo considerable
ejecutndose, entonces se usa. Esto funciona mejor cuando el resultado del proceso no es
necesario mandarlo a la salida estndar (stdin), como por ejemplo cuando se ejecuta un respaldo
o se abre un programa Xwindow desde la consola o terminal. Para lograr esto basta con escribir
el comando en cuestin y agregar al final el smbolo & (ampersand).
$> yes > /dev/null &
$> tar czf respaldo /documentos/* > /dev/null/ &
$> konqueror & (con estos ejemplos se ejecuta el comando y se libera la terminal regresando el
prompt)
Sin embargo lo anterior produce que el padre del proceso PPID que se invoc sea el proceso de
la terminal en si, por lo que si cerramos la terminal o salimos de la sesin tambin se terminaran
los procesos hijos que dependan de la terminal, no muy conveniente si se desea que el proceso
continu en ejecucin.
Para solucionar lo anterior, entonces se usa el comando nohup que permite al igual que '&'
mandar el proceso y background y que este quede inmune a los hangups (de ah su nombre
nohup) que es cuando se cuelga o termina la terminal o consola de la cual se ejecut el proceso.
$> nohup yes > /dev/null &
$> nohup czf respaldo /documentos/* > /dev/null/
$> nohup konqueror
Jobs
Si por ejemplo, se tiene acceso a una nica consola o terminal, y se tienen que ejecutar varios
comandos que se ejecutarn por largo tiempo, se pueden entonces como ya se vi previamente
con nohup y el operador '&' mandarlos a segundo plano o background con el objeto de liberar la
terminal y continuar trabajando.
Pero si solo se est en una terminal esto puede ser difcil de controlar, y para eos tenemos el
comando jobs que lista los procesos actuales en ejecucin:
#> yes > /dev/null &
[1] 26837
#> ls -laR > archivos.txt &
[2] 26854
pg. 182
#> jobs
[1]- Running yes >/dev/null &
[2]+ Running ls --color=tty -laR / >archivos.txt &
En el ejemplo previo, se ejecut el comando yes y se envi a background (&) y el sistema devolvi
[1] 26837, indicando asi que se trata del trabajo o de la tarea [1] y su PID, lo mismo con la segunda
tarea que es un listado recursivo desde la raz y enviado a un archivo, esta es la segunda tarea.
Con los comandos fg (foreground) y bg background es posible manipular procesos que esten
suspendidos temporalmente, ya sea porque se les envi una seal de suspensin como STOP (20)
o porque al estarlos ejecutando se presion ctrl-Z. Entonces para reanudar su ejecucin en primer
plano usaramos fg:
#> jobs
[1]- Stopped yes >/dev/null &
[2]+ Stopped ls --color=tty -laR / >archivos.txt &
#> fg %1
#> jobs
[1]+ Running yes >/dev/null &
[2]- Stopped ls --color=tty -laR / >archivos.txt &
Obsrvese como al traer en primer plano al 'job' o proceso 1, este adquiri el smbolo [+] que
indica que esta al frente. Lo mismo sera con bg que volvera a reinicar el proceso pero en segundo
plano. Y tambin es posible matar los procesos con kill indicando el nmero que
devuelve jobs: kill %1, terminara con el proceso en jobs nmero 1.
Top
Una utilera muy usada y muy til para el monitoreo en tiempo real del estado de los procesos y
de otras variantes del sistema es el programa llamado top, se ejecuta desde la lnea de comandos,
es interactivo y por defecto se actualiza cada 3 segundos.
$> top
top - 13:07:30 up 8 days, 6:44, 4 users, load average: 0.11, 0.08, 0.08
Tasks: 133 total, 1 running, 131 sleeping, 0 stopped, 1 zombie
Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.2%si, 0.0%st
Mem: 497356k total, 472352k used, 25004k free, 21500k buffers
Swap: 1156640k total, 257088k used, 899552k free, 60420k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
26156 sergon 15 0 2160 1016 784 R 1 0.2 0:00.93 top
1 root 15 0 2012 616 584 S 0 0.1 0:00.98 init
2 root RT 0 0 0 0 S 0 0.0 0:00.29 migration/0
pg. 183
3 root 34 19 0 0 0 S 0 0.0 0:00.00 ksoftirqd/0
4 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/0
5 root RT 0 0 0 0 S 0 0.0 0:00.38 migration/1
...
Estando adentro de la apliacin, presionando 'h' muestra una ayuda de los posibles comandos
que permiten configurar top, por ejemplo, al presionar 's' pregunta por el tiempo en segundos
de actualizacin, etc.
Estas son algunas de las herramientas, las ms importantes y usadas, para adminsitrar procesos,
hay varios programas en ambientes grficos que en una sola pantalla permiten todo lo anterior y
ms, y en lnea de comandos te recomiendo htop, que es como un toppero en esteroides.
pg. 184
Ejercicio;
Para desarrollar el ejercicio, primero hay que realizar un par de instalaciones de algunos paquetes
que van a ser necesarios para lo cual nos loguearemos como root y realizarlas con el siguiente
comando:
# yum -y install procps top util-linux-ng
Una vez realizadala instalacin, nos salimos de la secion o nos logueamos en otra terminal, con
cualquiera de los usuarios antes creados para poder llevar acabo el ejercicio.
Ejecutamos un proceso sleep con un tiempo estimado de 700 segundos, esto lo lograremos con
el siguiente comando;
$ sleep 700
Pulsaremos las teclas CTRL+Z, lo cual pondr el proceso en segundo plano:
Ejecutamos el comando jobs o trabajos, para visualizar el trabajo detenido:
$ jobs
Ejecutando el comando bg reactivaremos el trabajo 1 que esta en backgroud o en segundo plano:
$ bg 1
Ejecute nuevamente sleep con el valor 900 y un signo & al final, para generar otro proceso mas:
$ sleep 900 &
Con esto lo que haremos ser enviar el trabajo a segundo plano.
Ejecutamos nuevamente el comando de Jobs para poder ver los trabajos que hemos ejecutado:
$ jobs
[1]- Ejecutando sleep 600 &
[2]+ Ejecutando sleep 700 &
Ejecutando el comando fg con 1 como argumento podremos enviar al primer plano el primer
trabajo:
$ fg 1
Realizando esto, har que el proceso o trabajo sleep 700 regrese a primer plano.
Para terminar este ltimo trabajo, pulse CTRL+C.
Acontinuacion ejecutaremos el comando ps aux, que en la parte de ps, dice que mostrara todas
las terminales, incluyendo los procesos, pero a diferencia del otro agregaremos una pipa, y un
atributo llamado less el cual nos mostrara toda la informacin de manera pausada segn se
requiera;
$ ps aux |less
Si realizamos la conbinacion de la pipa junto con grep, nos realizara una bsqueda selectiva de los
pg. 185
procesos que incluyan el nombre de sleep;
$ ps aux |grep sleep
En este caso deberemos de ver aun uno de los procesos sleep que declaramos anteriormente.
Ahora de lo que estamos viendo el proceso sleep debe de mostrar un numero de proceso, si
ejecutamos el comando kill seguido del proceso se terminara con esta tarea;
$ kill No.de proceso
Si ejecutamos de nuevo el comando sleep, pero ahora con un tiempo de 300, como argumento,
con un signo & al final, se generar otro trabajo en segundo plano;
$ sleep 300 &
Como sabemos que el trabajo es el nico y esta en proceso 1, podramos terminarlo con el
siguiente comando:
$ kill %1
Generaremos otro proceso pero ahora con un tiempo de 500 segundo pasndolo a segundo plano
tambin;
$ sleep 500 &
Si ejecutamos el ps con la pipa y el argumento sleep podremos ver el proceso que acabamos de
generar.
$ ps aux |grep sleep
Observaremos cual el numero de PID o numero de indentidad, y lo terminaremos con el comando
kill, pero en esta ocacion agregaremos el argumento -9
$ kill -9 No.de Proceso
Para poder ver mejor el funcionamiendo de jobs agregaremos dos tareas al mismo tiempo de
la siguiente forma:
$ sleep 500 & sleep 900 &
Correremos de nuevo el comando para poder visualizar los trabajos que estn corriendo:
$ Jobs
Si ejecutamos nuevamente ps, pero con la opcin -j, podremos visualizar los nmeros de
proceso o de ID de estos:
$ ps -j
Ejecutaremos el comando killall con la cadena sleep como argumento, a fin de terminar de
manera normal de todos los procesos denominados sleep.
$ killall sleep
Repetimos el proceso de dar de alta dos tareas al mismo tiempo, las visualizamos con ps, pero
pg. 186
ahora los terminaremos con un comando killall, agregando la opcin s y el valos 9, con la misma
cadena como argumento y veremos que termina todos los procesos
$ killall -s 9 sleep
Realizaremos la compresin de los archivos que estn en la carpeta /lib/modules, en espaol los
modulos de las libreras en un archivo tar llamado comprimidonice
Al terminar utilice time para cuantificar la ejecucin del compresor con las opciones jxf, para
descomprimir el archivo comprimidonice.tar.bz2. Esto con la finalidad de cuantificar la
descompresin con la prioridad de planificacin 0 (valor predeterminado del sistema), la cual
permite utilizar los recursos que regularmente permite utilizar el sistema al usuario.
Los resultados debern ser ligeramente mayores, en cuanto a tiempo de ejecucin pues la
prioridad fue aumentada.
El usuario ordinario solo puede definir valores de prioridad de planificacin del 0 al 19,
prioridad de planificacin predeterminada a prioridad de planificacin menos favorable. Los
valores negativos, del -1 al -20, que son los ms favorables, slo los pude utilizar root.
Para verificar lo descrito anteriormente podramos ejecutar su con la opcin -c, con la cual se
indicar entre comillas cualquier cosa para ser ejecutada como root, de la siguiente forma.
pg. 187
$ su -c "time nice -n -20 tar jxf cmprimidonice.tar.bz2"
Los resultados debern ser sensiblemente inferiores que la ejecucin con el valor predeterminado
de prioridad de planificacin (0).
La ejecucin del comando anterior, creara un directorio denominado lib dentro del directorio de
inicio del usuario, pero ste le pertenece de root, por lo cual el usuario regular ser incapaz de
borrarlo. Borrelo para evitar tener que realizar nuevamente el procedimiento, para esto es
recoemndable tener 2 terminales abiertas y poder realizar las tareas de manera mas fluida.
$ ps alx |less
Con el siguiente cambiaremos la prioridad de planificacin a -10 a todos los procesos del usuario
con el que estemos trabajando:
El siguiente ejemplo cambia la prioridad de planificacin a -10 a todos los procesos del grupo
desarrollo:
$ su -c "renice -n -10 -g desarrollo"
Top.
Top es una herramienta que proporciona una visualizacin continua y en tiempo real de los
procesos activos en un sistema, como una lista que de modo predeterminado lo hace de acuerdo
al uso del CPU. Puede ordenar la lista por uso de memoria y tiempo de ejecucin.
pg. 188
Para ordenar la lista de procesos por orden de uso de memoria, pulse SHIFT+M. Para ordena la
lista de procesos por orden de tiempo de ejecucin, pulse SHIFT+T. Para invertir el orden de la
lista, pulse SHIFT+R. Para activar o bien desactivar, la visualizacin por hilos, pulse SHIFT+H. Para
ordenar de nuevo la lista de procesos por orden de uso de CPU, pulse SHIFT+P.
Para mostrar los procesos de un usuario en especfico, pulse la tecla u y defina a continuacin el
nombre del usuario.
Para terminar o aniquilar cualquier proceso, pulse la tecla k y defina a continuacin el nmero de
identidad de proceso que corresponda y luego la seal a utilizar (9 o 15).
Para cambiar la prioridad de planificacin de cualquier proceso, pulse la tecla r y a continuacin
defina el nmero de identidad de proceso que corresponda y luego el valor de prioridad de
planificacin deseado.
Pulse la tecla h para ver el la ayuda completa de top.
La ejecucin es;
$ top
lsof.
Lsof significa listar archivos abiertos (list open files). Es utilizado ampliamente en sistemas
operativos tipo POSIX para hacer reportes de archivos y los procesos que estn utilizando a stos.
Se puede utilizar para revisar que procesos estn haciendo uso de directorios, archivos
ordinarios, tuberas (pipes), zcalos de red (sockets) y dispositivos. Uno de los principales usos de
determinar que procesos estn haciendo uso de archivos en una particin cuando esta no se
puede desmontar. Lsof fue desarrollado por Vic Abell, quien alguna vez fue director del Centro de
Cmputo de la Universidad de Purdue.
Lo primero que tenemos que hacer s instalar el paquete, para instalar lsof, ejecute lo siguiente:
Ejercicio;
Utilizando lsof podremos ver todos los procesos que utilizan el sistema de archivos en general,
ejecute lsof:
pg. 189
# lsof
# lsof | more
Usted podra especificar que se muestren todos los procesos desde un directorio en particular, de
la siguiente manera podramos solicitar, que se muestren los procesos que estn conpartiendo o
haciendo uso de /var.
# lsof /var
Si se necesita mostrar solamente el archivo utilizado por un proceso en particular, podra usar con
la opcin -p seguida del nmero del proceso en el cual tuviramos interes:
# lsof -p PID
Con la opcin -i podr mostrar todos los archivos de red utilizados por procesos de red. Si deseara
mostrar los archivos de red en uso por algn proceso de red en particular, se utilizan las opciones
-i seguido de la opcion grep y el nombre de algn servicio. En el siguiente ejemplo se pide a lsof
mostrar solamente los archivos de red utilizados por los procesos de red derivados de named:
Si tiene dudas y desea consultar el manual de lsof puede consultarse ejecutando lo siguiente:
# man 8 lsof
Sistemas Linux con gran cantidad de usuarios, como servidores de correo, servidores samba, etc.,
tarde o temprano tienen el problema de usuarios que almacenan demasiada informacin en sus
directorios de trabajo, pudiendo incluso en casos extremos llenar completamente discos duros
haciendo el sistema inservible. Con el uso de cuotas de disco (disk quotas) es posible limitar la
pg. 190
cantidad de espacio disponible para cada usuario o de manera global para todos. En este manual
de LinuxTotal.com.mx conocers a fondo como implementar y administrar cuotas de disco para
control de los usuarios.
Tipos de cuota
Por Bloques (blocks): Un bloque corresponde a 1 kb y una cuota por bloques correspondera al
total de bloques que un usuario puede utilizar en el sistema. Recuerda que los archivos se guardan
en bloques de disco. Asi un archivo de 100 bytes, ocupar un un bloque de 1kb en el disco duro.
Por Inodos (inodes): Un inodo o inode en ingls (Index Node) es un nmero que actua como
apuntador para el sistema de archivos de Linux y le indica en que bloques especficos del disco
duro se encuentran los datos de un archivo. Tambin el inodo en su referencia guarda informacin
sobre permisos, propietario, atributos, etc. Se podra ver en una analoga simple que un inodo es
como un nmero de serie nico para cada archivo del sistema y a travs de este nmero el sistema
recupera sus datos (bloques) y sus atributos (permisos, propietario, fechas, etc.).
En el caso de las cutoas, una cuota por inodos indicara el total de indos a los que el usuario tiene
derecho, casi representara el total de archivos que el usuario puede crear y digo "casi" porque
los usuarios podemos crear enlaces simblicos (ln -s) sobre archivos ya existentes que no
aumentan las cantidad de inodos. Pero por simplicidad puedes verlo como un 1 inodo = 1 archivo.
Lmites
Tanto las cuotas por bloques o por inodos, tienen lmites de uso y son de dos tipos:
b) SOFT: (Suave) Este lmite (para bloques o inodos) que es siempre menor al HARD,
puede ser excedido por el usuario, pero ser constantemente advertido que el lmite
de uso para bloques o inodos ya ha sido excedido. Podra verse como un lmite de
advertencia que le estar indicando al usuario que su lmite ya se excedi y tome
medidas.
Cuando se usa el lmite SOFT, dos situaciones pueden ocurrir. La primera es que NO se tenga
establecido un tiempo de gracia, y entonces el usuario podr seguir usando bloques o inodos
hasta llegar al lmite HARD que ser su lmite absoluto de uso.
pg. 191
La segunda situacin es que SI se tenga establecido el tiempo de gracia, que puede ser en das,
horas, minutos o segundos. En este caso, el usuario podr seguir usando bloques o inodos hasta
que termine el tiempo de graca o llegue al lmite HARD, cualquiera que ocurra primero.
El tiempo de gracias se puede establecer por usuario o globalmente y ms adelante veremos como
establecerlo.
Donde se implementan?
Las cuotas se establecen por filesystem o sistema de archivos, es decir, debes de decidir en donde
es ms conveniente instalar un sistema de cuotas, pero no hay ningn problema si se instala en
todos. Las cuotas pueden establecerse por usuario, por grupos o ambos.
En el siguiente ejemplo:
#> mount
/dev/sda1 on /boot type ext3 (rw,noatime)
/dev/sda2 on / type ext3 (rw,noatime)
/dev/sda3 on /home type ext3 (rw,noatime)
none on /proc type proc (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
Lo anterior es un ejemplo tpico de un equipo Linux con varios sistemas de archivos (/boot, / y
/home). Como se sabe en /home es donde los usuarios tienen sus directorios de trabajo (HOME),
asi que solo en este sistema de archivos crearemos cuotas, en los otros dos no tiene caso.
Configuracin
Todo debe hacerse como root, y lo primero que haremos es editar el archivo "/etc/fstab" y
aadiremos "usrquota" o "grpquota", dependiendo si se desea cuotas por usuario o grupos, o
incluso ambas.
#> vi /etc/fstab
/dev/sda2 / ext3 noatime 1 1
/dev/sda1 /boot ext3 noatime 1 2
/dev/sda3 /home ext3 noatime 1 2
....
pg. 192
/dev/sda2 / ext3 noatime 1 1
/dev/sda1 /boot ext3 noatime 1 2
/dev/sda3 /home ext3 noatime,usrquota,grpquota 1 2
...
Algo similar a lo anterior deber tener tu archivo de configuracin, y como ya se indic solo
agregamos el soporte para cuotas en el sistema de archivos que nos interese. Lo anterior por si
solo, es obvio que no hace nada, habra que reiniciar el sistema para que se apliquen los cambios
pero realmente no es necesario, lo siguiente re-monta el sistema de archivos "/home":
El sistema de archivos "/home" esta listo ahora para soportar cuotas de disco. El siguiente paso
es verificar con el comando quotacheck por sistemas de archivos que soporten cuotas. Este
comando crea, verifica o repara el control de cuotas en los sistemas que lo soporten, en este caso
creara el soporte:
Los errores que enva es precisamente porque no exista un sistema de cuotas previo, es normal
que los enve. Cuando las cuotas esten en pleno uso, es conveniente ejecutar
quotacheck peridicamente para que verifique inconsistencias y se corrijan a tiempo. En cuanto
a las opciones estas indican lo siguiente:
pg. 193
a - all, es decir verifica todos los sistemas de archivos por cuotas.
u - user, verifica por soporte de cuotas para usuarios.
g - group, verifica por soporte de cuotas para grupos.
m - no-remount, evita que el sistema se remonte como de solo lectura.
v - verboso, reporta lo que hace conforme progresa, son los mensajes que salen a la
terminal.
Como ves, la opcin -a en este caso no era necesario puesto que solo tenemos "/home" con
cuotas, asi que el comando anterior tambin pudiera ser invocado de esta manera:
Pues el sistema esta listo para manipular cuotas de usuario, esto lo podemos comprobar porque
en la raz del sistema de archivos soportado con cuotas deben existir los archivos "aquota.user" y
"aquota.group" que son binarios, no trates de modificarlos o manipularlos:
#> cd /home
#> ls -l
total 72
-rw------- 1 root root 8192 2008-05-17 21:38 aquota.group
-rw------- 1 root root 8192 2008-05-17 21:38 aquota.user
drwx--x--x 4 user1 user1 4096 2008-05-12 16:13 user1/
drwx--x--x 4 user2 user2 4096 2008-05-12 16:13 user2/
drwx--x--x 3 user3 user3 4096 2008-05-05 12:01 user3/
drwx--x--x 3 user4 user4 4096 2008-05-05 12:01 user4/
Si se tuvieran ms sistemas de archivos con soporte para cuotas en la raz de cada uno estaran
estos archivos, o solo uno dependiendo lo que se pidi, usuarios, grupos o ambos. Por cierto, en
sistemas con kernel 2.2 o anterior se usaba la versin 1 de cuotas y sus archivos de control se
nombraban "quota.user" y "quota.group", del kernel 2.4 y posteriores con la versin 2 y 3, se
utiliza los mostrados anteriormente.
Ahora bien, lo anterior deja listo el sistema para el soporte de cuotas pero ests siguen sin ser
activadas se requiere activar el soporte de cuotas, para lo cual invocamos el comandoquotaon:
pg. 194
/dev/sda3 [/home]: group quotas turned on
/dev/sda3 [/home]: user quotas turned on
Activamos para "/home" cuotas de usuario y grupos. Cuando por alguna razn sea necesario
desactivar las cuotas, entonces utiliza la contraparte, que es el comando quotaoff:
Muy bien, hasta aqui ya tienes el sistema de archivos "/home" o el que hayas elegido (o todos)
para trabajar con soporte de cuotas para los usuarios y grupos, ahora veremos como aplicar estas
cuotas con los usuarios.
Las columnas "blocks" e "inodes" son informativas, es decir nos indican la cantidad de bloques o
inodos utilizados actualmente por el usuario, y las que podemos editar son las columnas "soft" y
"hard" de cada caso. Como ya se explic en la primera parte de este artculo, se puede indicar
libremente cualquiera de los cuatro valores, es perfectamente posible establecer valores por
bloques, por inodos o ambos, solo recuerda que el lmite soft debe ser menor al hard.
Si se establece solo el hard, no habr advertencias previas y el usuario ya no podr guardar
archivos cuando se llegue al valor. Si se establece soft y hard, avisar cuando se rebase el lmite
soft y entrar en juego el periodo de gracia. Si se acaba el tiempo de gracias o se llega al har (lo
que sea primero) ya no se podrn crear ms archivos hasta que no se eliminen algunos de los que
se tengan actualmente.
pg. 195
Para modificar cuotas a nivel grupo, se usa el mismo comando pero con la opcin -g(edquota -g
ventas).En el ejemplo previo se modifica la cuota del usuario "user1" en el sistema de archivos
"/home" que es el que se ha usado de ejemplo en este artculo de LinuxTotal.com.mx, el
comportamiento por default es modificar cuotas para ese usuario en todos los sistemas de
archivos que tengan activo el control de cuotas (quotaon). Si se desea control de cuotas para un
filesystem en especfico entonces se agrega la opcin -f:
#> edquota -u user1 -f /home
(solo aplica la cuota en el sistema de archivos indicado)
Con usuarios que manejan cantidades muy grandes de cuota, es un poco dificil calcular en
trminos de megas o gigas el espacio usuado y los lmites de cuotas:
Como usuario individual del sistema, puedes observar tus cuotas con el mismo comandoquota,
sin argumentos.
pg. 196
Ahora bien, si se desea un reporte global de las cuotas de todos los usuarios o por grupos, siendo
"root" utiliza el comando repquota:
#> repquota /home
*** Report for user quotas on device /dev/sda3
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 184280 0 0 11 0 0
sergio -- 42579852 0 50000000 34902 0 0
user1 -- 56 70 100 14 0 0
user2 -- 52 0 0 13 0 0
user3 -- 28 0 0 7 0 0
user4 -- 28 0 0 7 0 0
Con repquota es tambin posible utilizar la opcin -s para observar los tamaos en formato
legible. Si se usa la opcin -a (all) en vez del sistema de archivos "/home", el reporte ser para
todos los sistemas de archivos en el equipo que soporten cuotas. Asi mismo este reporte por
defecto es por usuarios, si se requiere que repquota reporte por grupos, aade entonces la
opcin -g.
Obsrvese en la segunda lnea del reporte el tiempo de gracia (grace time), que es de 7 das tanto
para cuotas por bloque como para cuotas por archivos o inodos. Esto aplica para todos los
usuarios en global, como se aprecia en el listado que ninguno tiene establecido un tiempo de
gracia diferente al global.
#> edquota -t
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/sda3 7days 7days
7 das es el periodo por defecto, si lo cambias a digamos 12 horas, sera "12hours". El tiempo de
gracia puede ser distinto para el lmite soft por bloques o por inodos.
pg. 197
Por usuario especfico se realiza con la opcin -T del mismo comando e indicando el usuario:
Lo nico que hay que considerar es que los tiempos de gracias por usuario deben ser menores al
global. Y que este empieza a correr una vez que se ha llegado al lmite soft. Cuando esto suceda,
si entras a editar de nuevo el tiempo de gracia del usuario (edquota -u user -T) se reflejara en
segundos el tiempo que le queda, pudindolo aumentar de nuevo si eres "root". O dejarlo en cero
y entonces el global ser el que se utilice.
Realmente no existe una manera "oficial" de establecer cuotas masivamente, sin embargo, no
hay problema, usaremos un pequeo script que te permitira realizarlo.
pg. 198
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
user1 -- 68 300 400 17 0 0
user2 -- 352 0 0 13 0 0
user3 -- 28 0 0 7 0 0
user4 -- 28 0 0 7 0 0
Solo el usuario "user1" tiene cuotas, las columnas de "grace" tendrn valores una vez que se
llegue al lmite soft o suave. Usaremos entonces la opcin -p (protptype) para hacer duplicados a
partir del ya establecido.
#> edquota -p user1 user2
Con lo anterior "copias" la informacin de lmites de cuotas del "user1" al "user2", no hay lmite
de cuantos usuarios puedes colocar como argumentos asi que lo siguiente es vlido:
#> edquota -p user1 user2 user3 user4
Prctico para unos cuantos usuarios pero intil si necesitamos duplicarlo en cientos de usuarios,
asi que hagamos un comando compuesto que nos extraiga los nombres de los usuarios, se puede
usar por ejemplo gawk para realizar lo anterior:
Usamos el separador ":" de campos (-F), e indicamos como accin que en el campo 3 ($3)
busquemos todos los UID mayores a 499 y que los imprima ({print $1}). Ahora solo tenemos que
usar este comando junto con edquota -p:
#> edquota -p user1 `gawk -F: '$3 > 499 {print $1}' /etc/passwd`
NOTA IMPORTANTE: el uso de acento grave que abarca al comando gawk, esto para que el
shell lo ejecute primero y el resultado sern los argumentos, uno o cientos de usuarios cuyo
UID es mayor a 499)
pg. 199
Haciendo uso de repquota de nuevo veamos que pas:
#> repquota /home
*** Report for user quotas on device /dev/sda3
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
user1 -- 68 300 400 17 0 0
user2 -- 352 300 400 7days 13 0 0
user3 -- 28 300 400 7 0 0
user4 -- 28 300 400 7 0 0
Primero, todos los usuarios tienen las mismas cuotas que el "user1" que fue el prototipo para los
dems y segundo se observa que el "usuario" que tiene 352 bloques utilizados al pasar el lmite
suave entro al periodo de gracia automticamente que el global es de 7 das. A partir del instante
que el lmite cambi de 0 a 300, comenz el periodo de gracia. Ahora solo podr crear ms
archivos durante 7 das o cuando llegue a 400, lo primero que ocurra, claro, asumiendo que no
borre archivos primeros para recuperar espacio.
Le asignamos un password;
# passwd usuarioquota
Ahora a este usuario le asignaremos una cuota de gracias de 50Mb(51200) y una cuota definitiva
de 100Mb(102400).
$ cp -r /usr/lib ~/prueba-cuotas
Notar que llegar un momento en el que el sistema indicar que ya es imposible continuar
copiando contenido dentro de ~/prueba-cuotas debido a que se agot el espacio disponible para
el usuario en el sistema de archivos.
pg. 200
Ejecute de nuevo quota y observe con detenimiento la salida. En sta aparecer un asterisco junto
a la cantidad mostrada en las columnas de bloques o bien inodos en los casos donde se hayan
excedido las cuotas.
Verificamos con el comando quota
$ quota
Para solucionar el problema, borramos la carpeta y despus verificamos de nuevo.
pg. 201
UNIDAD 7.- Redes
Configuracin de red.
Primero nos tenemos que identificar como root para ejecutar los comandos. Para esto colocamos
en la lnea de comandos:
# su -
Para ver cuales son las interfaces de red que tienes disponibles ejecutamos:
# ifconfig | less
La opcin de less te permite ver pagina por pgina las interfaces (en caso de que tengas muchas
o una ventana de comandos pequea), este comando slo te muestra las interfaces que estn
arriba (up). Te debe aparecer algo como eth0, eth1 y lo (esta interfaz es la de loopback y es la del
propio servidor).
Si queremos mostrar todas las interfaces esten arriba (o levantadas) ejecutamos el siguiente
comando:
# ifconfig a
pg. 202
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:19
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1901 errors:0 dropped:0 overruns:0 frame:0
TX packets:1901 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3804398 (3.6 MiB) TX bytes:3804398 (3.6 MiB)
En este caso tenemos dos interfaces eth0 y eth1, y slo eth0 esta arriba, ya que como
podemos ver eth1 no tiene ninguna direccin IP asignada y no tiene ninguna configuracin.Por
ltimo tenemos la interfaz lo, que es la interfaz de loopback es decir nuestra propia mquina y
que podemos acceder a travs de la direccin 127.0.0.1 (o cualquier rango de 127.0.0.X), y sirve
para comprobar que por lo menos nos responde nuestro propio ordenador o computadora.
Ahora que ya sabemos identificar nuestras tarjetas de red pasemos a lo que podemos hacer con
ellas.
Para asignar direcciones IP manualmente esto ejecutamos el siguiente comando:
Con broadcast
Cambiando eth0 por el nombre de la interfaz que necesitamos. Si queremos deshabilitar una
interfaz ejecutamos:
pg. 203
Recuerde que si agrega direcciones con rutas lo hara de la siguiente manera:
/etc/sysconfig/network/routes
Adems hay un programa interactivo de consola que nos deja configurar la red mucho ms fcil,
incluyendo dhcp, direcciones estticas puerta de enlace (gateway) ejecutamos el siguiente
comando:
Red Hat:
# redhat-config-network
CentOS y Fedora:
#system-config-network
Te aparecer un dilogo donde tendras que escoger la interfaz de red que quieres configurar y
luego de seleccionarla vers las distintas opciones.
Una vez que cambies los parmetros de tu interfaz de red siempre es bueno reiniciar el servicio de
red para que se reflejen los cambios:
# service network restart
Archivos de configuracin
Si quieres manualmente cambiar los archivos de configuracin de tus interfaces de red debes
editar los archivos dentro de /etc/sysconfig/network-scripts/ por ejemplo para la interfaz eth0
pg. 204
sera:
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
NOTA IMPORTANTE: No olvides hacer un backup del archivo en caso de falla antes de hacer
cualquier cambio con:
# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /root/ifcfg-eth0.backup
Puedes utilizar el editor que quieras (nano, emac, etc) Debes ver una configuracin como la
siguiente:
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.1.255
HWADDR=00:0C:29:97:XX:XX
IPADDR=192.168.1.100
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
TYPE=Ethernet
Puedes cambiar los parmetros segn lo que necesites, por ejemplo si necesitas se configure por
DHCP deberas tener algo como:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
HWADDR=00:0c:29:97:24:e3
pg. 205
TYPE=Ethernet
Configurando DNS
Para hacer que tu computadora u ordenador busque en un servidor DNS especfico tienes que
modificar el archivo /etc/resolv.conf ejecuntado
# vim /etc/resolv.conf
Nameserver 10.50.50.130
nameserver 10.50.50.131
Cuando se configura la biblioteca de resolucin para utilizar los servicios de BIND, tiene que
indicarse tambin qu servidores utilizar. El fichero resolv.conf contiene una lista de servidores,
que si est vaca har considerar al sistema que el servidor est en su mquina.
Si ejecuta un servidor de nombres en su mquina local, tendr que configurarlo por separado,
como se explicar despus. Si se encuentra en una red local y puede usar un servidor de nombres
existente, mejor. Si estamos conectados a Internet por mdem, lo habitual es especificar
en resolv.conf el servidor de nombres que nos diga nuestro proveedor de servicios.
La opcin ms importante del fichero resolv.conf es nameserver, que tiene la direccin IP del
servidor de nombres a usar. Si especifican varios servidores poniendo varias lneas nameserver,
se intentarn usar en el orden dado; por lo que debera poner en primer lugar el servidor de
pg. 206
nombres ms rpido o cercano. Actualmente, puede ponerse un mximo de tres servidores
distintos. Si no se pone ninguno, intentar buscar un servidor de nombres en la mquina local.
Otras dos opciones, domain y search, nos permiten usar nombres cortos (sin dominio) para
mquinas que estn en nuestro dominio. Normalmente, para conectarnos a una mquina de la
misma red, no queremos poner el dominio completo, sino su nombre. Por ejemplo, gauss en lugar
de gauss.mathematics.groucho.edu.
Para esto sirve la palabra domain. Nos permite especificar un dominio predeterminado que se
aade a las peticiones cuando su bsqueda inicial falla. Por ejemplo, al buscar gauss y fallar el
servidor de nombres buscndolo en Internet, le aade automticamente su dominio
predeterminado y ya s puede resolverlo.
Esto est bien, pensaremos, pero tan pronto como nos refiramos a una mquina que est fuera
del Departamento de Matemticas, tendremos que volver a teclear el dominio completo. A lo
mejor queremos teclear solo quark.physics para referirnos a una mquina del Departamento de
Fsicas.
Para esto podemos usar la lista de bsqueda, que puede especificarse con la opcin search. En
esta lista se especifica una lista de dominios donde resolver nombres cortos. Los elementos de la
lista deben especificarse separndolos por espacios o tabuladores.
Las opciones search y domain son mutuamente excluyentes y no pueden aparecer ms de una
vez. Si ninguna de las dos se pone, el sistema intentar asignar a los nombres cortos el dominio
de la mquina local, que averiguar usando la llamada al sistema getdomainname (2). Si el nodo
local no tiene dominio, se asumir que el dominio predeterminado es la raz.
Si decidimos poner una opcin search en el fichero resolv.conf, habr que ser cuidadosos con los
dominios que aadimos a la lista. Las bibliotecas de resolucin anteriores a BIND 4.9 solan
construir una lista de bsqueda predeterminada para el dominio cuando no se proporciona otra
lista. Esta lista predeterminada se haca con el dominio del nodo, ms todos los dominios padre
hasta llegar a la raz. Esto daba lugar a bsquedas innecesarias a los servidores de nombres
externos.
pg. 207
Asumamos que estamos en la Cervecera Virtual y queremos conectarnos al
sistema foot.groucho.edu. Por un error tecleamos el nombre foo, que no existe. El servidor de la
universidad nos responder que no existe el nodo. Con la bsqueda antigua, intentar buscar ese
nombre en los dominios vbrew.com y com. Este ltimo es problemtico porque causa una
bsqueda innecesaria y adems podra existir. Al final nos habremos intentado conectar a una
mquina totalmente ajena.
En algunos casos, esto es un potencial problema de seguridad. De hecho las listas de bsqueda
deben limitarse a dominios de la organizacin local o algo similar. La lista en el Departamento de
Matemticas debe limitarse a los dominios maths.groucho.edu y groucho.edu.
Como lo anterior puede resultar confuso, sea el siguiente ejemplo de fichero resolv.conf para la
Cervecera Virtual:
# /etc/resolv.conf
# Nuestro dominio
domain vbrew.com
#
# Nuestro servidor principal va a ser vlager:
name server 172.16.1.1
Cuando se trate de traducir el nombre vale, el sistema empezar por buscar directamente vale y
si falla, probar con vale.vbrew.com.
Iptables
Red Hat Enterprise Linux contiene herramientas avanzadas para el filtrado de paquetes de red
el proceso dentro del kernel de controlar los paquetes de red al entrar, mientras se mueven y
cuando salen de la red. Los kernels anteriores al 2.4 confiaban en ipchains para el filtrado de
paquetes y usaban listas de reglas aplicadas a los paquetes en cada paso del proceso de filtrado.
La introduccin de kernel 2.4 trajo consigo iptables (tambin llamado netfilter), lo cual es similar
a ipchains pero expande enormemente el mbito y el control disponible para el filtrado de
paquetes de red.
Este captulo se centra en las bases del filtrado esencial de paquetes, define las diferencias
entre ipchains e iptables, explica las diferentes opciones disponibles con comandos iptables y
pg. 208
muestra cmo se pueden preservar las reglas de filtrado durante reinicios del sistema.
Filtrado de paquetes
El kernel de Linux tiene incorporado la caracterstica interna de filtrar paquetes, permitiendo
aceptar algunos de ellos en el sistema mientras que intercepta y para a otros. El netfilter del kernel
tiene tres tablas o listas de reglas incorporadas. Son las siguientes:
filter La tabla por defecto para el manejo de paquetes de red.
nat Usada para alterar paquetes que crean una nueva conexin y utilizada para
la Traduccin de direcciones de red (Network Address Translation, NAT).
mangle Usada por tipos especficos de alteracin de paquetes.
Cada una de estas tablas tiene un grupo de cadenas incorporadas que corresponden a las acciones
llevadas a cabo por el filtro de la red.
Las cadenas internas para la tabla filtro son las siguientes:
INPUT Aplica a los paquetes recibidos a travs de una interfaz de red.
OUTPUT Esta cadena sirve para paquetes enviados por medio de la misma interfaz de red
que recibi los paquetes.
FORWARD Esta cadena sirve para paquetes recibidos en una interfaz de red y enviados
en otra.
Las cadenas internas para la tabla nat son las siguientes:
PREROUTING Altera los paquetes de red cuando estos llegan.
POSTROUTING Esta cadena altera paquetes antes de que sean enviados por medio de una
interfaz de red.
POSTROUTING Altera los paquetes de red cuando estos son enviados.
PREROUTING Esta cadena altera paquetes recibidos por medio de una interfaz de red
cuando llegan.
OUTPUT Esta cadena altera paquetes generados localmente antes de que sean dirigidos
por medio de una interfaz de red.
POSTROUTING Esta cadena altera paquetes antes de que sean enviados por medio de una
interfaz de red.
Las cadenas internas para la tabla mangle son las siguientes:
PREROUTING Esta cadena altera paquetes recibidos por medio de una interfaz de red
antes de que sean dirigidos.
pg. 209
POSTROUTING Altera los paquetes de red cuando estos son enviados.
Cada paquete de red recibido o enviado desde un sistema Linux est sujeto a al menos una tabla.
Sin embargo, un paquete puede estar sometido a mltiples reglas dentro de cada tabla antes de
emerger al final de la cadena. La estructura y propsito de estas reglas puede variar, pero
normalmente buscan identificar un paquete que viene de o se dirige hacia una direccin IP en
particular, o un conjunto de direcciones, cuando utiliza un determinado protocolo y servicio de
red.
pg. 210
Bajo iptables, cada paquete filtrado se procesa nicamente usando las reglas de una cadena
solamente, en lugar de hacerse con mltiples. Por ejemplo, un paquete FORWARD que llega
al sistema usando ipchains tendr que pasar por las cadenas INPUT, FORWARD, y OUTPUT
para llegar a su destino. Sin embargo, iptables slo enva paquetes a la cadena INPUT si su
destino es el sistema local y tan slo los enva a la cadena OUTPUT si el sistema local es quien
genera los paquetes. Por esta razn, es importante que coloque la regla designada para
capturar un paquete particular dentro de la regla que en verdad maneja el paquete.
El objetivo DENY ha sido cambiado a DROP. En ipchains, los paquetes que coincidan una
regla en una cadena podran ser dirigidos al objetivo DENY. Este objetivo debe ser cambiado
a DROP bajo iptables.
El orden es importante cuando se estn colocando opciones en una regla. Anteriormente,
con ipchains, el orden de las opciones de una regla no importaba. El comando iptables usa
una sintaxis ms estricta. En comandos iptables, el protocol (ICMP, TCP o UDP) debe ser
especificado antes del puerto fuente o destino.
Cuando especificamos las interfaces de red que vamos a usar en una regla, deberemos
utilizar slo interfaces de entrada (opcin -i) con cadenas INPUT o FORWARD y las de salida
(opcin -o) con cadenas FORWARD o OUTPUT. Esto es necesario debido al hecho de que las
cadenas OUTPUT no se utilizan ms con las interfaces de entrada, y las cadenas INPUT no
son vistas por los paquetes que se mueven hacia las interfaces de salida.
Opciones usadas en comandos iptables
Las reglas para el filtrado de paquetes se ponen en funcionamiento ejecutando el
comando iptables. Con frecuencia se utilizan los aspectos siguientes del paquete como el criterio:
Tipo de paquete Dicta qu tipo de paquetes filtra el comando.
Fuente/Destino del paquete Especifica cules paquetes filtra el comando basndose en el
origen o destino del paquete.
Objetivo Indica qu accin es tomada en paquetes que cumplen los criterios mencionados
anteriormente.
Las opciones usadas con las reglas iptables dadas deben estar agrupadas lgicamente, basndose
en el propsito y en las condiciones de la regla general, para que la regla sea vlida. El resto de
esta seccin explica las opciones usadas comnmente para el comando iptables.
pg. 211
iptables [-t <table-name>] <command> <chain-name> <parameter-1> \
<option-1> <parameter-n> <option-n>
Escriba iptables -h para ver una lista detallada de la estructura de los comandos iptables.
Opciones de comandos
Las opciones de comandos le dicen a iptables que realice una accin especfica. Solamente una
opcin de comando se permite por comando iptables. Excepto el comando de ayuda, todos los
comandos se escriben en maysculas.
Los comandos de iptables son los siguientes:
-A Aade la regla iptables al final de la cadena especificada. Este es el comando utilizado
para simplemente aadir una regla cuando el orden de las reglas en la cadena no importa.
-C Verifica una regla en particular antes de aadirla en la cadena especificada por el
usuario. Este comando puede ser de ayuda para construir reglas iptables complejas
pidindole que introduzca parmetros y opciones adicionales.
pg. 212
-D Borra una regla de una cadena en particular por nmero (como el 5 para la quinta regla
de una cadena). Puede tambin teclear la regla entera e iptables borrar la regla en la
cadena que corresponda.
-E Renombra una cadena definida por el usuario. Esto no afecta la estructura de la tabla.
-F Libera la cadena seleccionada, que borra cada regla de la cadena. Si no se especifica
ninguna cadena, este comando libera cada regla de cada cadena.
-h Proporciona una lista de estructuras de comandos, as como tambin un resumen
rpido de parmetros de comandos y opciones.
-I Inserta una regla en una cadena en un punto especificado por un valor entero definido
por el usuario. Si no se especifica ningn nmero, iptables colocar el comando en el tope
de la cadena.
-L Lista todas las reglas de la cadena especificada tras el comando. Para ver una lista de
todas las reglas en todas las cadenas en la tabla por defecto filter, no especifique ninguna
cadena o tabla. De lo contrario, la sintaxis siguiente deber utilizarse para listar las reglas en
una cadena especfica en una tabla en particular:
pg. 213
-c Resetea los contadores de una regla en particular. Este parmetro acepta las
opciones PKTS y BYTES para especificar qu contador hay que resetear.
-d Configura el nombre de la mquina destino, direccin IP o red de un paquete que
coincide con la regla. Cuando se coincida una red, se soportan los siguientes formatos de
direcciones IP o mscaras de red:
N.N.N.N/M.M.M.M Donde N.N.N.N es el rango de direcciones IP y M.M.M.M es la
mscara de la red.
N.N.N.N/M Donde N.N.N.N es el rango de direcciones IP y M es la mscara de bit.
-f Aplica esta regla slo a los paquetes fragmentados.
Usando la opcin ! despus de este parmetro, nicamente se harn coincidir los paquetes
no fragmentados.
-i Configura la interfaz de red entrante, tal como eth0 o ppp0. Con iptables, este
parmetro opcional puede ser usado solamente con las cadenas INPUT y FORWARD cuando
es usado con la tabla filter y la cadena PREROUTING con las tablas nat y mangle.
Este parmetro tambin soporta las siguientes opciones especiales:
El carcter de exclamacin ! Invierte la directriz, es decir, se excluye de esta regla
cualquier interfaz especificada.
El carter de suma + Un caracter tipo comodn utilizado para coincidir todas las interfaces
con una cadena de caracteres especificada. Por ejemplo, el parmetro -i eth+aplicar esta
regla a cualquier interfaz Ethernet pero excluir cualquier otra interfaz, tal como, ppp0.
Si el parmetro -i se utiliza sin especificar ninguna interfaz, todas las interfaces estarn afectadas
por la regla.
-j Salta a un objetivo particular cuando un paquete coincide con una regla particular. Los
objetivos vlidos a usar despus de la opcin -j incluyen las opciones estndar
(ACCEPT, DROP, QUEUE y RETURN) as como tambin las opciones extendidas que estn
disponibles a travs de los mdulos cargados por defecto con el paquete RPM de Red Hat
Enterprise Linux iptables, como LOG, MARK y REJECT, entre otros. Consulte la pgina del
manual de iptables para ms informacin sobre esto y otros objetivos.
Puede tambin dirigir un paquete coincidiendo esta regla a una cadena definida por el
usuario fuera de la cadena actual, para aplicar otras reglas al paquete.
Si no especifica ningn objetivo, el paquete pasa la regla sin llevar a cabo ninguna accin.
A pesar de todo, el contador para esta regla se sigue incrementando en uno.
-o Configura la interfaz de red de salida para una regla y puede ser usada solamente con
las cadenas OUTPUT y FORWARD en la tabla de filtro y la cadena POSTROUTING en las
pg. 214
tablas nat y mangle. Estos parmetros de opciones son los mismos que aquellos de la
interfaz de entrada (-i).
-p Configura el protocolo IP para la regla, el cual puede ser icmp, tcp, udp, o all, para
coincidir todos los protocolos soportados. Adems, se puede usar cualquier protocolo
listado en /etc/protocols. Si esta opcin es omitida cuando se est creando una regla, la
opcin all es la opcin por defecto.
-s Configura la fuente para un paquete particular usando la misma sintaxis que el
parmetro (-d).
Opciones de coincidencia para iptables
Diferentes protocolos de red proporcionan opciones especializadas las cuales se pueden
configurar para coincidir un paquete particular usando ese protocolo. Sin embargo, primero se
debe especificar el protocolo en el comando iptables. Por ejemplo, -p tcp <protocol-
name> (donde <protocol-name> es el protocolo objetivo), hace disponibles las opciones para ese
protocolo especificado.
Protocolo TCP
Estas opciones de identificacin estn disponibles en el protocolo TCP (opcin -p tcp):
--dport Configura el puerto de destino para el paquete. Use bien sea un nombre de
servicio (tal como www o smtp), nmero de puerto, o el rango de nmeros de puertos para
configurar esta opcin. Para hojear los nombres y alias de los servicios de red y los nmeros
que ellos usan, visualice el archivo /etc/services. La opcin --destination-portes sinnimo
con --dport.
Para especificar un rango de nmeros de puertos, separe los dos nmeros con dos puntos
(:), tal como -p tcp --dport 3000:3200. El rango ms grande aceptable es0:65535.
Use un caracter de exclamacin (!) despus de la opcin --dport para coincidir todos los
paquetes que no utilizan el servicio de red o puerto.
--sport Configura el puerto fuente del paquete usando las mismas opciones que --dport.
La opcin --source-port es sinnimo con --sport.
--syn Provoca que todos los paquetes designados de TCP, comnmente
llamados paquetes SYN, cumplan esta regla. Cualquier paquete que est llevando un
payload de datos no ser tocado. Si se sita un punto de exclamacin (!) como bandera tras
la opcin --syn se provoca que todos los paquetes no-SYN sean seleccionados.
--tcp-flags Permite a los paquetes TCP con bits especficos o banderas, ser coincididos con
una regla. La opcin --tcp-flags acepta dos parmetros. El primer parmetro es la mscara,
pg. 215
la cual configura banderas a ser examinadas en el paquete. El segundo parmetro se refiere
a la bandera que se debe configurar para poder coincidir.
Las banderas posibles son:
ACK
FIN
PSH
RST
SYN
URG
ALL
NONE
Por ejemplo, una regla iptables que contenga -p tcp --tcp-flags ACK,FIN,SYN SYN tan slo
seleccionar los paquetes TCP que tengan la bandera SYN activo y las banderas ACK y FIN sin
activar.
Usando el caracter de exclamacin (!) despus de --tcp-flags reversa el efecto de la opcin de
coincidencia.
--tcp-option Intenta seleccionar con opciones especficas de TCP que pueden estar activas
en un paquete en particular. Esta opcin se puede revertir con el punto de exclamacin (!).
Protocolo UDP
Estas opciones de seleccin estn disponibles para el protocolo UDP (-p udp):
--dport Especifica el puerto destino del paquete UDP, usando el nombre del servicio,
nmero de puerto, o rango de nmeros de puertos. La opcin de coincidencia --destination-
port es sinnimo con --dport.
--sport Configura el puerto fuente del paquete UDP, usando el nombre de puerto, nmero
de puerto o rango de nmeros de puertos. La opcin --source-port es sinnimo con --sport.
Protocolo ICMP
Las siguientes opciones de coincidencia estn disponibles para el Protocolo de mensajes de
Internet (ICMP) (-p icmp):
--icmp-type Selecciona el nombre o el nmero del tipo ICMP que concuerde con la regla.
Se puede obtener una lista de nombres vlidos ICMP tecleando el comandoiptables -p icmp
-h.
Mdulos con opciones de coincidencias adicionales
pg. 216
Opciones adicionales de coincidencia estn disponibles a travs de los mdulos por el
comando iptables. Para usar un mdulo de opciones de coincidencia, cargue el mdulo por
nombre usando la opcin -m, tal como -m <module-name> (reemplazando <module-name> con
el nombre del mdulo).
Un gran nmero de mdulos estn disponibles por defecto. Hasta es posible crear sus mdulos
para proporcionar funcionalidades de opciones de coincidencia adicionales.
Lo siguiente, es una lista parcial de los mdulos usados ms comnmente:
limit module Permite colocar un lmite en cuntos paquetes son coincididos a una regla
particular. Esto es especialmente beneficioso cuando se usa en conjunto con el
objetivo LOG, pues puede prevenir que una inundacin de paquetes coincidentes
sobrecarguen el registro del sistema con mensajes repetitivos o usen los recursos del
sistema.
El mdulo limit habilita las opciones siguientes:
--limit Configura el nmero de coincidencias en un intervalo de tiempo, especificado con
un nmero y un modificador de tiempo ordenados en el formato<nmero>/<tiempo>. Por
ejemplo, si usamos --limit 5/hour slo dejaremos que una regla sea efectiva cinco veces a la
hora.
Si no se utiliza ningn nmero ni modificador de tiempo, se asume el siguiente valor por
defecto: 3/hour.
--limit-burst Configura un lmite en el nmero de paquetes capaces de cumplir una regla
en un determinado tiempo. Esta opcin deber ser usada junto con la opcin--limit, y acepta
un nmero para configurar el intervalo de tiempo (threshold).
Si no se especifica ningn nmero, tan slo cinco paquetes sern capaces inicialmente de
cumplir la regla.
mdulo state Habilita la coincidencia de estado.
El mdulo state tiene las siguientes opciones:
--state coincide un paquete con los siguientes estados de conexin:
ESTABLISHED El paquete seleccionado se asocia con otros paquetes en una conexin
establecida.
INVALID El paquete seleccionado no puede ser asociado a una conexin conocida.
NEW El paquete seleccionado o bien est creando una nueva conexin o bien forma parte
de una conexin de dos caminos que antes no haba sido vista.
RELATED El paquete seleccionado est iniciando una nueva conexin en algn punto de la
conexin existente.
pg. 217
Estos estados de conexin se pueden utilizar en combinacin con otros separndolos mediante
comas como en -m state --state INVALID, NEW.
mdulo mac Habilita la coincidencia de direcciones MAC de hardware.
El mdulo mac activa las opciones siguientes:
--mac-source Coincide una direccin MAC a la tarjeta de red que envi el paquete. Para
excluir una direccin MAC de la regla, coloque un smbolo de exclamacin (!) despus de la
opcin --mac-source.
Para visualizar otras opciones disponibles a travs de los mdulos, consulte la pgina del manual
de iptables.
pg. 218
Existen varios mdulos extendidos de objetivos, la mayora de los cuales tan slo se aplican a
tablas o situaciones especficas. Un par de estos mdulos, de los ms populares e incluidos por
defecto en Linux son:
LOG Registra todos los paquetes que coinciden esta regla. Puesto que los paquetes son
registrados por el kernel, el archivo /etc/syslog.conf determina dnde estas entradas de
registro sern escritas. Por defecto, son colocadas en el archivo /var/log/messages.
Se pueden usar varias opciones adicionales tras el objetivo LOG para especificar la manera
en la que tendr lugar el registro:
--log-level Configura el nivel de prioridad del registro de eventos. Una lista de los niveles
de prioridad se puede encontrar en la pgina del manual de syslog.conf.
--log-ip-options Cualquier opcin en la cabecera de un paquete IP se guarda en el registro.
--log-prefix Coloca una cadena de hasta 29 caracteres antes de la lnea de registro cuando
es escrita. Esto es muy til para la escritura de filtros de syslog para usarlos en conjunto con
el registro de paquetes.
--log-tcp-options Cualquier opcin colocada en la cabecera de un paquete TCP es
registrada.
--log-tcp-sequence Escribe el nmero de secuencia TCP del paquete en el registro del
sistema.
Recuerde que la administracin de Logs es vital en este tipo de administracin, por esta razn se
encuentra el archivo logrotate, que sirve para hacer una rotacin de logs, el arhivo de
configuracin se encuentra en /etc/logrotate.conf .
Los logs o ficheros de registro estn pensados para guardar la informacin de las actividades del
sistema. Estos ficheros pueden crecer hasta llenar la particin donde se encuentran y bloquear el
sistema, pero tienen muchsimos usos y son algo imprescindible, ya que con la experiencia nos
aportan una inmensa cantidad de informacin.
Opciones de listado
El comando predeterminado para listar, iptables -L, proporciona una vista muy bsica de los filtros
por defecto de las cadenas actuales de la tabla. Las opciones adicionales proporcionan ms
informacin:
-v Muestra la salida por pantalla con detalles, como el nmero de paquetes y bytes que
cada cadena ha visto, el nmero de paquetes y bytes que cada regla ha encontrado y qu
interfaces se aplican a una regla en particular.
pg. 219
-x Expande los nmeros en sus valores exactos. En un sistema ocupado, el nmero de
paquetes y bytes vistos por una cadena en concreto o por una regla puede estar abreviado
usando K (miles), M (millones), y G (billones) detrs del nmero. Esta opcin fuerza a que se
muestre el nmero completo.
-n Muestra las direcciones IP y los nmeros de puertos en formato numrico, en lugar de
utilizar el nombre del servidor y la red tal y como se hace por defecto.
--line-numbers Proporciona una lista de cada cadena junto con su orden numrico en la
cadena. Esta opcin puede ser til cuando est intentando borrar una regla especfica en
una cadena o localizar dnde insertar una regla en una cadena.
-t Especifica un nombre de tabla.
Guardar reglas iptables
Las reglas creadas con el comando iptables son almacenadas en memoria. Si el sistema es
reiniciado antes de guardar el conjunto de reglas iptables, se perdern todas las reglas. Para que
las reglas de filtrado de red persistan luego de un reinicio del sistema, estas necesitan ser
guardadas. Para hacerlo, conctese como root y escriba:
Esto ejecuta el script de inicio iptables, el cual ejecuta el programa /sbin/iptables-save y escribe
la configuracin actual de iptables a /etc/sysconfig/iptables. El a rchivo /etc/sysconfig/iptables
existente es guardado como /etc/sysconfig/iptables.save.
La prxima vez que se inicie el sistema, el script de inicio de iptables volver a aplicar las reglas
guardadas en /etc/sysconfig/iptables usando el comando /sbin/iptables-restore.
Aun cuando siempre es una buena idea probar una regla de iptables antes de confirmar los
cambios al archivo /etc/sysconfig/iptables, es posible copiar reglas iptables en este archivo
desde otra versin del sistema de este archivo. Esto proporciona una forma rpida de distribuir
conjuntos de reglas iptables a muchas mquinas.
pg. 220
Herramienta de configuracin de nivel de seguridad (system-config-securitylevel) Una
interfaz grfica para crear, activar y guardar reglas bsicas de cortafuegos.
/sbin/service iptables <opcion> Un comando ejecutado por el usuario root capaz de
activar, desactivar y llevar a cabo otras funciones de iptables a travs de su script de inicio.
Reemplace <opcion> en el comando con alguna de las directivas siguientes:
start Si se tiene un cortafuegos o firewall (es decir, /etc/sysconfig/iptables existe), todos
los iptables en ejecucin son detenidos completamente y luego arrancados usando el
comando /sbin/iptables-restore. La directriz start slo funcionar si no se carga el mdulo
del kernel ipchains.
stop Si el cortafuegos est en ejecucin, se descartan las reglas del cortafuegos que se
encuentran en memoria y todos los mdulos iptables y ayudantes son descargados.
Si se cambia la directiva IPTABLES_SAVE_ON_STOP dentro del archivo de
configuracin /etc/sysconfig/iptables-config de su valor por defecto a yes, se guardan las
reglas actuales a /etc/sysconfig/iptables y cualquier regla existente se mover al
archivo /etc/sysconfig/iptables.save.
restart Si el cortafuegos est en ejecucin, las reglas del mismo que se encuentran en
memoria se descartan y se vuelva a iniciar el cortafuegos si est configurado
en/etc/sysconfig/iptables. La directriz restart slo funcionar si no est cargado el mdulo
del kernel ipchains.
Una lista de las reglas activas, conteniendo direcciones IP dentro de listas de reglas a menos
que el valor por defecto para IPTABLES_STATUS_NUMERIC sea cambiado ano dentro del
archivo de configuracin /etc/sysconfig/iptables-config.
panic Descarta todas las reglas del cortafuegos. La poltica de todas las tablas
configuradas est establecida a DROP.
save Guarda las reglas del cortafuegos a /etc/sysconfig/iptables usando iptables-save.
pg. 221
Archivo de configuracin de scripts de control de iptables
El comportamiento de los scripts de inicio de iptables es controlado por el archivo de
configuracin /etc/sysconfig/iptables-config. A continuacin se presenta una lista de las
directivas contenidas dentro de este archivo:
IPTABLES_MODULES Especifica una lista separada por espacios de
mdulos iptables adicionales a cargar cuando se activa un cortafuegos. Esto puede incluir
seguimiento de conexiones y ayudantes NAT.
pg. 222
Protocolo SSH
SSH (o Secure SHell) es un protocolo que facilita las comunicaciones seguras entre dos sistemas
usando una arquitectura cliente/servidor y que permite a los usuarios conectarse a un host
remotamente. A diferencia de otros protocolos de comunicacin remota tales como FTP o Telnet,
SSH encripta la sesin de conexin, haciendo imposible que alguien pueda obtener contraseas
no encriptadas.
SSH est diseado para reemplazar los mtodos ms viejos y menos seguros para registrarse
remotamente en otro sistema a travs de la shell de comando, tales como telnet o rsh. Un
programa relacionado, el scp, reemplaza otros programas diseados para copiar archivos entre
hosts como rcp. Ya que estas aplicaciones antiguas no encriptan contraseas entre el cliente y el
servidor, evite usarlas mientras le sea posible. El uso de mtodos seguros para registrarse
remotamente a otros sistemas reduce los riesgos de seguridad tanto para el sistema cliente como
para el sistema remoto.
pg. 223
Versiones de SSH
Existen 2 versiones de SSH, la versin 1 de SSH hace uso de muchos algoritmos de cifrado
patentados (sin embargo, algunas de estas patentes han expirado) y es vulnerable a un agujero
de seguridad que potencialmente permite a un intruso insertar datos en la corriente de
comunicacin. La suite OpenSSH bajo Red Hat Enterprise Linux utiliza por defecto la versin 2 de
SSH, la cual tiene un algoritmo de intercambio de claves mejorado que no es vulnerable al agujero
de seguridad en la versin 1. Sin embargo, la suite OpenSSH tambin soporta las conexiones de la
versin 1.
Caractersticas de SSH
El protocolo SSH proporciona los siguientes tipos de proteccin:
Despus de la conexin inicial, el cliente puede verificar que se est conectando al mismo
servidor al que se conect anteriormente.
El cliente transmite su informacin de autenticacin al servidor usando una encriptacin
robusta de 128 bits.
Todos los datos enviados y recibidos durante la sesin se transfieren por medio de
encriptacin de 128 bits, lo cual los hacen extremamente difcil de descifrar y leer.
El cliente tiene la posibilidad de reenviar aplicaciones X11 desde el servidor. Esta tcnica,
llamada reenvo por X11, proporciona un medio seguro para usar aplicaciones grficas sobre
una red.
Ya que el protocolo SSH encripta todo lo que enva y recibe, se puede usar para asegurar
protocolos inseguros. El servidor SSH puede convertirse en un conducto para convertir en seguros
los protocolos inseguros mediante el uso de una tcnica llamada reenvo por puerto, como por
ejemplo POP, incrementando la seguridad del sistema en general y de los datos.
Red Hat Enterprise Linux contiene el paquete general de OpenSSH (openssh) as como tambin
los paquetes del servidor OpenSSH (openssh-server) y del cliente (openssh-clients). Observe que
los paquetes OpenSSH requieren el paquete OpenSSL (openssl). OpenSSL instala varias bibliotecas
criptogrficas importantes, permitiendo que OpenSSH pueda proporcionar comunicaciones
encriptadas.
Instalacin y Configuracion:
pg. 224
# yum y install openssh-server openssh-client
Terminara una vez que nos mande la pantalla con el mensaje de instalacin complete
Una vez realizado esto realizaremos una conexin de prueba, para esto necesitaremos descargar
un cliente de ssh de Windows, para lo cual nos dirigiremos a google y descargaremos la aplicacin
llamada putty
pg. 225
Pondremos la ip de nuestro servidor:
Le daremos en open y cuando la conexin sea por primera vez nos mandara una alerta de
seguridad, y le daremos que Si
pg. 226
Validaremos con un usuario y un password valido, dentro del server:
Una vez realizado esto, estaremos en la consola como si estuviramos en la terminal fsica,
pudiendo realizar cualquier tarea desde el cliente.
pg. 227
Por qu usar SSH?
Los usuario nefarios tienen a su disposicin una variedad de herramientas que les permiten
interceptar y redirigir el trfico de la red para ganar acceso al sistema. En trminos generales,
estas amenazas se pueden catalogar del siguiente modo:
Intercepcin de la comunicacin entre dos sistemas En este escenario, existe un tercero
en algn lugar de la red entre entidades en comunicacin que hace una copia de la
informacin que pasa entre ellas. La parte interceptora puede interceptar y conservar la
informacin, o puede modificar la informacin y luego enviarla al recipiente al cual estaba
destinada.
Este ataque se puede montar a travs del uso de un paquete sniffer una utilidad de red
muy comn.
Personificacin de un determinado host Con esta estrategia, un sistema interceptor finge ser
el recipiente a quien est destinado un mensaje. Si funciona la estrategia, el sistema del usuario
no se da cuenta del engao y contina la comunicacin con el host incorrecto.
Esto se produce con tcnicas como el envenenamiento del DNS o spoofing de IP (engao de
direcciones IP).
Ambas tcnicas interceptan informacin potencialmente confidencial y si esta intercepcin se
realiza con propsitos hostiles, el resultado puede ser catastrfico.
Si se utiliza SSH para inicios de sesin de shell remota y para copiar archivos, se pueden disminuir
estas amenazas a la seguridad notablemente. Esto es porque el cliente SSH y el servidor usan
firmas digitales para verificar su identidad. Adicionalmente, toda la comunicacin entre los
sistemas cliente y servidor es encriptada. No servirn de nada los intentos de falsificar la identidad
de cualquiera de los dos lados de la comunicacin ya que cada paquete est cifrado por medio de
una llave conocida slo por el sistema local y el remoto.
pg. 228
La capa de transporte de la conexin entre el cliente y la mquina remota es encriptada
mediante un cdigo simtrico.
El cliente se autentica ante el servidor.
El cliente remoto interacta con la mquina remota sobre la conexin encriptada.
SSH-Agent permite recordar mientras dure la sesin, cada una de las claves privadas del usuario,
de modo que l se encargue de realizar la autenticacin.
En cualquier ambiente informtico, donde se requiera trabajar con mltiples servidores, es
necesario contar con una comunicacin segura como SSH. Para conectarse a un servidor remoto,
basta con teclear el comando seguido del usuario y host destino, y de la contrasea del usuario
remoto en cuestin. Este proceso de login en mquinas remotas puede ser molesto en los casos
en que sea necesario realizar conexiones cada poco perodo de tiempo, debido a que hay que
ingresar la contrasea cada vez.
De igual manera, cuando se desean utilizar discos remotos, puede ser beneficioso (sobre todo
para los usuarios) que dichos discos sean montados automticamente al momento de login, y que
puedan ser utilizados transparentemente por los usuarios. Con este fin fue creado el ssh-agent.
Capa de transporte
El papel principal de la capa de transporte es facilitar una comunicacin segura entre los dos hosts
durante la autenticacin yla subsecuente comunicacin. La capa de transporte lleva esto a cabo
manejando la encriptacin y decodificacin de datos y proporcionando proteccin de integridad
de los paquetes de datos mientras son enviados y recibidos. Adems, la capa de transporte
proporciona compresin de datos, lo que acelera la transmisin de informacin.
Al contactar un cliente a un servidor por medio del protocolo SSH, se negocian varios puntos
importantes para que ambos sistemas puedan construir la capa de transporte correctamente.
pg. 229
Durante la primera fase, el cliente y el servidor negocian qu algoritmos criptogrficos se van a
usar. Las implementaciones actuales proporcionan las siguientes opciones:
Para criptografa de clave pblica: RSA, Diffie-Hellman, DSA (Digital Signature Algorithm)
o Fortezza.
Para cifrado simtrico: RC2, RC4, IDEA (International Data Encryption Algorithm), DES (Data
Encryption Standard), Triple DES y AES (Advanced Encryption Standard).
Para este cifrado se utiliza la misma llave para encriptar y para desencriptar.
Con funciones hash: MD5 o de la familia SHA.
El servidor se identifica ante el cliente con una llave de host nica durante el intercambio de
llaves. Obviamente si este cliente nunca se haba comunicado antes con este determinado
servidor, la llave del servidor le resultar desconocida al cliente y no lo conectar. OpenSSH evita
este problema permitiendo que el cliente acepte la llave del host del servidor despus que el
usuario es notificado y verifica la aceptacin de la nueva llave del host. Para las conexiones
posteriores, la llave del host del servidor se puede verificar con la versin guardada en el cliente,
proporcionando la confianza de que el cliente se est realmente comunicando con el servidor
deseado. Si en el futuro, la llave del host ya no coincide, el usuario debe eliminar la versin
guardada antes de que una conexin pueda ocurrir.
SSH fue ideado para funcionar con casi cualquier tipo de algoritmo de clave pblica o formato de
codificacin. Despus del intercambio de claves inicial se crea un valor hash usado para el
intercambio y un valor compartido secreto, los dos sistemas empiezan inmediatamente a calcular
claves y algoritmos nuevos para proteger la autenticacin y los datos que se enviarn a travs de
la conexin en el futuro.
Despus que una cierta cantidad de datos haya sido transmitida con un determinado algoritmo y
clave (la cantidad exacta depende de la implementacin de SSH), ocurre otro intercambio de
claves, el cual genera otro conjunto de valores de hash y un nuevo valor secreto compartido. De
esta manera aunque un agresor lograse determinar los valores de hash y de secreto compartido,
esta informacin slo ser vlida por un perodo de tiempo limitado.
Autenticacin en SSH
pg. 230
Cuando la capa de transporte haya construido un tnel seguro para transmitir informacin entre
los dos sistemas, el servidor le dir al cliente de los diferentes mtodos de autenticacin
soportados, tales como el uso de firmas privadas codificadas con claves o la insercin de una
contrasea. El cliente entonces intentar autenticarse ante el servidor mediante el uso de
cualquiera de los mtodos soportados.
Los servidores y clientes SSH se pueden configurar para que permitan varios tipos de
autenticacin, lo cual le concede a cada lado la cantidad ptima de control. Luego el servidor
podr decidir qu mtodos de encriptacin soportar basado en su pauta de seguridad, y el
cliente puede elegir el orden en que intentar utilizar los mtodos de autenticacin entre las
opciones a disposicin. Gracias a la naturaleza segura de la capa de transporte de SSH, hasta
mtodos de autenticacin que parecen inseguros, como la autenticacin basada en contraseas,
son en realidad seguros para usar.
Cuando se conecta a un servidor ssh con su cliente ssh , se compara la clave pblica del servidor
a las claves almacenadas en un archivo en el equipo cliente , esta conexin se logra mediante el
archivo known_hosts.
Canales en SSH
Luego de una autenticacin exitosa sobre la capa de transporte SSH, se abren mltiples canales a
travs de la tcnica llamada multiplexar. Cada uno de estos canales manejan la conexin para
diferentes sesiones de terminal y para sesiones de reenvi X11.
Ambos clientes y servidores pueden crear un canal nuevo. Luego se le asigna un nmero diferente
a cada canal en cada punta de la conexin. Cuando el cliente intenta abrir un nuevo canal, los
clientes envan el nmero del canal junto con la peticin. Esta informacin es almacenada por el
servidor y usada para dirigir la comunicacin a ese canal. Esto es hecho para que diferentes tipos
de sesin no afecten una a la otra y as cuando una sesin termine, su canal pueda ser cerrado sin
interrumpir la conexin SSH primaria.
Los canales tambin soportan el control de flujo, el cual les permite enviar y recibir datos
ordenadamente. De esta manera, los datos no se envan a travs del canal sino hasta que el host
haya recibido un mensaje avisando que el canal est abierto y puede recibirlos.
pg. 231
otorga una gran flexibilidad en el manejo de diferentes tipos de conexiones remotas sin tener que
cambiar la infraestructura bsica del protocolo.
Servidores FTP
Red Hat Enterprise Linux se entrega con dos servidores FTP diferentes:
Acelerador de Contenidos Red Hat Un servidor Web basado en el kernel que ofrece un
servidor web y servicios FTP de alto rendimiento. Puesto que la velocidad es su objetivo
principal de diseo, su funcionalidad es limitada y solamente se ejecuta como FTP annimo.
vsftpd un demonio FTP rpido y seguro, preferido para Red Hat Enterprise Linux. El resto
de este captulo se enfoca en vsftpd.
Vsftpd
El demonio FTP vsftpd (o Very Secure FTP Daemon) est diseado desde la base para ser rpido,
estable y lo ms importante, seguro. Su habilidad para manejar grandes nmeros de conexiones
de forma eficiente y segura es lo que hace que vsftpd sea el nico FTP independiente distribuido
con Red Hat Enterprise Linux.
El modelo de seguridad utilizado por vsftpd tiene tres aspectos principales:
Clara separacin de procesos privilegiados y sin privilegios Procesos separados manejan
tareas diferentes y cada uno de estos procesos se ejecuta con los privilegios mnimos
requeridos para la tarea.
Las tareas que requieren altos privilegios son manejadas por procesos con los mnimos
privilegios necesarios Influenciando las compatibilidades encontradas en la biblioteca
libcap, las tareas que usualmente requieren privilegios de sper usuario se pueden ejecutar
de forma ms segura desde un proceso menos privilegiado.
La mayora de los procesos se ejecutan enjaulados en un ambiente chroot Siempre que
sea posible, se cambia la raz de los procesos al directorio compartido; este directorio se
considera luego como la jaula chroot. Por ejemplo, si el directorio /var/ftp/ es el directorio
compartido principal, vsftpd reasigna /var/ftp/ al nuevo directorio raz, conocido como /.
Esto previene actividades maliciosas de cualquier hacker potencial en algn directorio que
no estn por debajo del nuevo directorio root.
El uso de estas prcticas de seguridad tiene el efecto siguiente en cmo vsftpd trata con las
peticiones:
pg. 232
El proceso padre se ejecuta con el mnimo de privilegios requerido El proceso padre
calcula dinmicamente el nivel de privilegios requerido para minimizar el nivel de riesgos.
Los procesos hijo manejan la interaccin directa con los clientes FTP y se ejecutan casi sin
ningn privilegio.
Todas las operaciones que requieren altos privilegios son manejadas por un pequeo
proceso padre Similar a Servidor Apache HTTP, vsftpd lanza procesos hijos sin privilegios
para manejar las conexiones entrantes. Esto permite al proceso padre privilegiado, ser tan
pequeo como sea posible y manejar relativamente pocas tareas.
El proceso padre no confa en ninguna de las peticiones desde procesos hijos sin
privilegios Las comunicaciones con procesos hijos se reciben sobre un socket y la validez
de cualquier informacin desde un proceso hijo es verificada antes de proceder.
La mayor parte de la interaccin con clientes FTP la manejan procesos hijo sin privilegios en
una jaula chroot. Debido a que estos procesos hijo no tienen privilegios y solamente
tienen acceso al directorio que est siendo compartido, cualquier proceso fallido solamente
permitir al atacante acceder a los archivos compartidos.
Archivos instalados con vsftpd
El RPM vsftpd instala el demonio (/usr/sbin/vsftpd), su archivo de configuracin y otros archivos
relacionados, as como tambin directorios FTP en el sistema. La siguiente es una lista de los
archivos y directorios considerados ms a menudo cuando se configura vsftpd:
/etc/rc.d/init.d/vsftpd El script de inicializacin (initscript) utilizado por el
comando /sbin/service para iniciar, detener o volver a cargar vsftpd.
/etc/pam.d/vsftpd El archivo de configuracin de los Pluggable Authentication Modules
(PAM) para vsftpd. Este archivo define los requerimientos que debe cumplir un usuario para
conectarse a un servidor FTP.
/etc/vsftpd/vsftpd.conf El archivo de configuracin para vsftpd.
/etc/vsftpd.ftpusers Una lista de los usuarios que no tienen permitido conectarse
a vsftpd. Por defecto esta lista incluye a los usuarios root, bin y daemon, entre otros.
/etc/vsftpd.user_list Este archivo se puede configurar para negar o permitir el acceso a
los usuarios listados, dependiendo de si la directriz userlist_deny est configurada a YES (por
defecto) o a NO en /etc/vsftpd/vsftpd.conf. Si se utiliza /etc/vsftpd.user_list para permitir
acceso a los usuarios, los nombres de usuarios listados no deben aparecer
en /etc/vsftpd.ftpusers.
pg. 233
El directorio /var/ftp/ El directorio que contiene los archivos servidos por vsftpd. Tambin
contiene el directorio /var/ftp/pub/ para los usuarios annimos. Ambos directorios estn
disponibles para la lectura de todos, pero slo el superusuario o root puede escribir en el.
pg. 234
Iniciar y detener vsftpd
La opcin restart es un atajo para detener y volver a iniciar vsftpd. Esta es la forma ms efectiva
para que los cambios de configuracin tomen efecto luego de modificar el archivo de
configuracin para vsftpd.
Para reiniciar el servidor, escriba como root:
La opcin condrestart (reinicio condicional) solamente arranca vsftpd si est ejecutndose en ese
momento. Esta opcin es muy til para scripts, puesto que no arranca el demonio si este no se
est ejecutando.
Para reiniciar el servidor de forma condicional, escriba como usuario root:
Por defecto, el servicio vsftpd no se inicia automticamente al momento del arranque. Para
configurar el servicio vsftpd para que se inicie al momento del arranque, utilice una utilidad
initscript, tal como /sbin/chkconfig, /sbin/ntsysv o el programa Herramienta de configuracin de
servicios.
pg. 235
Intalacion y Configuracion de FTP.
Posterior a esto, nos dirigimos al archivo de configuracin de ftp que est en la ruta
# vi /etc/vsftpd/vsftpd.conf
Verificaremos en el archivo que este activa la regla de permitir usuarios annimos
anonymous_enable=YES
Para activarlo solo le quitamos el smbolo # para activarlo
Y la regla de enjaulamiento de usuarios locales:
chroot_local_user=YES
De igual manera lo activamos de ser necesario
Despus, la regla de habilitar usuarios locales:
Local_enable=YES
Y por ltimo la regla de escritura en server usando FTP:
write_enable=YES
Y guardamos los cambios.
pg. 236
Despues reiniciamos el servidor de Ftp:
# service vsftpd restart
Ahora nos cambiamos a la carpeta de ftp que da por defecto para los usuarios annimos
# cd /var/ftp
Y Creamos una carpeta
# mkdir /var/ftp/ejemplo
Si se tiene un firewall instalado se deshabilita
# system-config-firewall
Ahora deshabilitamos SELINUX, para que los clientes puedan utilizar el servicio
# vi /etc/sysconfig/selinux
pg. 237
Una vez realizado esto modificaremos el archivo de host para indicar la direccin de nuestro
servidor ftp
# vi /etc/hosts
pg. 238
ftp, por tal la activaremos con el siguiente comando:
# setsebool P ftp_home_dir on
Esto podr tardar algunos minutos, una vez realizado esto podremos verificar con el comando
anterior y nos deber mostrar algo parecido a esto:
pg. 239
Y despus tendremos acceso a este:
Y si listamos el contenido podremos ver la carpeta antes creada, lo que indica que estamos dentro
del server:
pg. 240
Otra manera de verificar que hemos conseguido el acceso es hacerlo desde el navegador de
nuestro equipo de la siguiente forma:
pg. 241
Ahora que ya hemos logrado la conexin con un usuario annimos, realizaremos la configuracin
para realizar una conexin ms segura con un usuario asignado y que pida autenticacin, para
esto procedemos a realizar lo siguiente:
# cd /etc/vsftpd
# adduser adminftp
# passwd adminftp
Despus podremos realizar una prueba con autenticacin de la misma manera que el el caso
anterior por lnea de comando
pg. 242
Ponemos el password asignado
pg. 243
Para verificar la conexin por ftp con autenticacin podremos realizarlo de manera grfica
tambin de la siguiente forma:
En la Url ahora podremos validarnos pero de la siguiente manera
pg. 244
Lo cual nos dar acceso y veremos que esta vaco pues en esta no tenemos archivo alguno.
De esta manera ya podramos utilizar clientes ftp para poder subir o descargar archivos al
servidor, como FileZilla y muchos otros que estn en el mercado.
Para subir o descargar archivos del servidor podramos realizar una conexin desde el explorador
de Windows:
pg. 245
pg. 246
Y de esta forma esta implementado un servidor FTP.
Modo activo
El modo activo es el mtodo original utilizado por el protocolo FTP para la transferencia de datos
a la aplicacin cliente. Cuando el cliente FTP inicia una transferencia de datos, el servidor abre
una conexin desde el puerto 20 en el servidor para la direccin IP y un puerto aleatorio sin
privilegios (mayor que 1024) especificado por el cliente. Este arreglo implica que la mquina
cliente debe poder aceptar conexiones en cualquier puerto superior al 1024. Con el crecimiento
de las redes inseguras, tales como Internet, es muy comn el uso de cortafuegos para proteger
pg. 247
las mquinas cliente. Debido a que estos cortafuegos en el lado del cliente normalmente rechazan
las conexiones entrantes desde servidores FTP en modo activo, se cre el modo pasivo.
Modo pasivo
La aplicacin FTP cliente es la que inicia el modo pasivo, de la misma forma que el modo activo.
El cliente FTP indica que desea acceder a los datos en modo pasivo y el servidor proporciona la
direccin IP y el puerto aleatorio, sin privilegios (mayor que 1024) en el servidor. Luego, el cliente
se conecta al puerto en el servidor y descarga la informacin requerida.
Mientras que el modo pasivo resuelve el problema de la interferencia del cortafuegos en el lado
del cliente con las conexiones de datos, tambin puede complicar la administracin del
cortafuegos del lado del servidor. Una de las formas de limitar el nmero de puertos abiertos en
el servidor y de simplificar la tarea de crear reglas para el cortafuegos del lado del servidor, es
limitando el rango de puertos sin privilegios ofrecidos para las conexiones pasivas.
pg. 248
LINUX aplicado en un entorno real
Configurar lo de redes
Ver estatus de ip
# ip addr show
pg. 249
Para editar las tarjetas
# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
Detalles
IPADDR = [Enter your static IP here]
GATEWAY = [Enter your Default Gateway]
DNS1 = [Your Domain Name System 1]
DNS2 = [Your Domain Name System 2]
pg. 250
Reiniciar Servicio de redes
pg. 251
# echo $HOSTNAME
# vi /etc/hostname
pg. 252
$ echo $HOSTNAME
Confirmar modificacion
$ hostname
Como hacer upgrade?
pg. 253
Instalar un sistema de web browsing para CLI
Ambiente de trabajo
pg. 254
The key's randomart image is:
+--[ RSA 2048]----+
| ..oooE.++|
| o. o.o |
| .. . |
| o . . o|
| S. .+|
| . . . o|
| . o o ..|
| ++ |
| +. |
+-----------------+
pg. 255
Subir llave publica generada
[tecmint@tecmint ~]$ cat .ssh/id_rsa.pub | ssh sheena@192.168.0.11 'cat >> .ssh/authorized_keys'
sheena@192.168.1.2's password: [Enter Your Password Here]
Cambiar permisos
[tecmint@tecmint ~]$ ssh sheena@192.168.0.11 "chmod 700 .ssh; chmod 640
.ssh/authorized_keys"
sheena@192.168.0.11's password: [Enter Your Password Here]
Instalar Apache Server
pg. 256
Permitir http a travs del firewall
# firewall-cmd --add-service=http
Permite el puerto 3221
# firewall-cmd -permanent -add-port=3221/tcp
Recarga el firewall
# firewall-cmd --reload
Reiniciar Apache
# systemctl restart httpd.service
# systemctl start httpd.service
# systemctl enable httpd.service
Verificar con link
# links 127.0.0.1
pg. 257
Instalar PHP
Seguridad de MariaDB
pg. 258
Instalar y Configurar SSH Server.
# SSH -V
pg. 259
Instalar GCC
Checamos la versin
# gcc --version
pg. 260
Instalar Java
Instalando java
Checar versin
# java -version
pg. 261
Instalar TOMCAT para HTTP Java
pg. 262
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="tecmint" password="tecmint" roles="manager-gui,manager-script,manager-
jmx,manager-status,admin-gui,admin-script"/>
</tomcat-users>
Secure Tomcat
pg. 263
Instalar NMAP
pg. 264
Configuracion de firewall
pg. 265
Checar la zona por defecto
# firewall-cmd --get-default-zone
pg. 266
Enlistar todas las zonas
# firewall-cmd --list-services
pg. 267
Agregar servicios temporales
# firewall-cmd --add-service=http
# firewall-cmd reload
pg. 268
Remover servicios temporales
# firewall-cmd --remove-service=http
# firewall-cmd --reload
pg. 269
# firewall-cmd --reload
pg. 270
Bloquear o remover puertos temporales
# firewall-cmd --remove-port=331/tcp
# firewall-cmd --reload
pg. 271
Para desactivar firewall
pg. 272
Para activar firewall
# systemctl enable firewalld
# systemctl start firewalld
# firewall-cmd state
Instalar WGET
pg. 273
TELNET
Instalar WEBMIN
Nos sirve para configurar un sistema en lnea de gestin de Linux pudiendo manejar prcticamente
todo lo q tenemos ah por medio de una interfaz web
# wget http://prdownloads.sourceforge.net/webadmin/webmin-1.740-1.noarch.rpm
pg. 274
# rpm -ivh webmin-*.rpm
Recuerden que es muy riesgoso hacer este tipo de cosas en un sistema de servidores en
produccin
# yum install epel-release
pg. 275
Instalar un compresor de archivos
# yum install p7zip
pg. 276
Para instalar dispositivos
# mount -ro ntfs-3g /dev/sda5 /mnt
# cd /mnt
# ls -l
pg. 277
Instalar un servidor FTP
Configurar con VI
# vi /etc/vsftpd/vsftpd.conf
Dejar configurado estas caractertisticas
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
cambiar el puerto de servicio en el firewall
# firewall-cmd --add-port=21/tcp
# firewall-cmd --reload
Despus iniciar ftp
# systemctl restart vsftpd
# systemctl enable vsftpd
pg. 278
Configurar SUDO
# visudo
Abrir el siguiente archivo
/etc/sudoers
pg. 279
Instalar Rockit Hunter
pg. 280
RootKit Scan Results
pg. 281
CONCLUSIONES
Hoy en da los sistemas operativo sean hecho parte importante en nuestra vida como tambin
hay una gran diversidad de sistemas operativos hoy en da como Windows, Apple, y Linux es un
sistema operativo muy popular es propiamente el ncleo de un sistema operativo es decir el
conjunto de programas que controla los aspectos ms bsicos del funcionamiento pero Linux
tiene una amplia distribucin de sistemas operativos como centOS, Fedora, Debian, Mandriva
entre otros ms, pero sin el sistema operativo de la computadora solo sera un ms que un
montn de metal pero con el sistema operativo l tiene una responsabilidad se asegura de que
los programas y usuarios que estn funcionando al mismo tiempo no interfieran entre ellos
tambien conocimos su historia como fue que surgi quien es mejor sistema operativo Linux y sus
distribuciones como es la estructura de Linux con ella permitir al software conocer la ubicacin
de directorios y archivos instalados pero con lo comandos la terminal es la interfaz grfica que
permite que el usuario se comunique con el kernel de Linux se pude entrar de modo grfico hay
se puede ver los directorios crear cambiar archivos siendo el superusuario (root ) o un usuario
normal o tambien crear nuevos usuarios o instalar software que es necesario utiliza repositorios
tambien para intalar se puede utilizar el comando yum
pg. 282
CIBERGRAFIA
http://www.authorstream.com/Presentation/alandramirez-1854509-centos/
http://www.centosni.net/comandos-basicos-en-gnulinux-centos/
http://www.fing.edu.uy/inco/cursos/sistoper/recursosLaboratorio/tutorial0.pdf
http://www.debian.org/
http://asorufps.wikispaces.com/CENTOS
http://www.debian.org/doc/manuals/project-history/ch-intro.es.html
http://www.debian.org/doc/manuals/project-history/ch-detailed.es.html
pg. 283