Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Linux
2014
ndice
Contenido
ndice ................................................................................................................................. 2
Formacin de la comunidad de aprendizaje. ................................................................. 7
Objetivo del curso ......................................................................................................... 8
Unidad 1 Instalacin del Sistema Operativo y Ajustes posteriores ............................. 9
Introduccin ............................................................................................................... 9
Sistema Operativo UNIX .......................................................................................... 12
Sistema Operativo Linux.......................................................................................... 13
Requerimientos de Hardware de Linux .................................................................. 15
Distribuciones de Linux ........................................................................................... 15
Organizacin de Linux ............................................................................................. 16
Sistema de Archivos en Linux.................................................................................. 19
Procesamiento de Texto........................................................................................... 23
Programacin ........................................................................................................... 25
Documentacin. ....................................................................................................... 25
Caractersticas del Sistema Linux............................................................................ 26
Software disponible en Linux .................................................................................. 26
Distribuciones Linux. .................................................................................................. 27
Estndar de Jerarqua de Sistema de Archivos. ........................................................ 31
Estructura de los directorios general ........................................................................ 32
Directorio/sbin......................................................................................................... 35
Directorio /srv .......................................................................................................... 35
Directorio /sys .......................................................................................................... 35
Directorio /tmp ........................................................................................................ 36
Directorio /var.......................................................................................................... 36
Otros............................................................................................................................. 61
Nota: ............................................................................................................................. 61
Reloj del hardware y reloj del sistema ...................................................................... 70
Unidad 2 Administracion del Sistema de Archivos. ..................................................... 91
Ventajas........................................................................................................................ 92
Lmites de tamao.................................................................................................... 92
Niveles del journaling.............................................................................................. 93
Desventajas .................................................................................................................. 94
Mejoras ........................................................................................................................ 94
Sistema de archivos de gran tamao...................................................................... 94
Extents....................................................................................................................... 94
Compatibilidad hacia adelante y hacia atrs ......................................................... 95
Asignacin persistente de espacio en el disco....................................................... 95
Asignacin retrasada de espacio en el disco ......................................................... 95
Lmite de 32000 subdirectorios superado.............................................................. 96
Chequeo del sistema de ficheros ms rpido ........................................................ 96
Uso de e2fsck ............................................................................................................... 96
badblocks ..................................................................................................................... 97
Noatime (No tiempos de acceso)................................................................................ 97
Sintaxis Bsica:....................................................................................................... 103
A) Sobre discos duros y particiones: .................................................................... 105
B) Sobre un CD/DVD ............................................................................................. 107
C) Sobre MBR y VBS: ............................................................................................. 107
D) Otros: ................................................................................................................. 108
Unidad 3. Administracin de Sofware y servicios ...................................................... 109
RPM......................................................................................................................... 110
Gestion de Servicios .................................................................................................. 118
Nivel de ejecucin 0# ............................................................................................ 119
Nivel de ejecucin 1# ............................................................................................ 119
Nivel de ejecucin 2# ............................................................................................ 119
Nivel de ejecucin 3# ............................................................................................ 120
Nivel de ejecucin 4# ............................................................................................ 120
Presentacin
Instructor:
Alineacin
expectativas:
Presentacin
del
objetivo del curso:
Reglas de oro:
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
Progra
ma de
Usuari
o
Sistema
Operativo
Programas que
Controlan el
Hardware
de
la
Computad
ora
Inicio de
Operativo
un
Sistema
Los siguientes son algunos de los hechos bsicos acerca del sistema
operativo 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 presenta en la figura 1.2
paquetes
fciles
de
9660 para
SCSI
Impresoras paralelas
Modems seriales internos y externos
Soporta
tarjetas
Ethernet
y
adaptadores
Tabla: Requerimientos de Hardware de Linux
Distribuciones de Linux
Como el cdigo fuente para Linux fue desarrollado esta siendo
distribuido gratuitamente, diferentes compaas han desarrollado sus
propias versiones o distribuciones de Linux Cada una de estas
variedades tiene su propio conjunto de caractersticas, tales como
procedimientos de instalacin y administracin, paquetes de software y
configuraciones. Muchas de ellas estn configuradas para un tipo
especfico de computadora.
Las 10 distribuciones principales se listan a continuacin:
Mandrake Linux, desarrollado por MandrakeSoft.
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 1.3
Kernel
Shell
Programas de
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:
Verificar si el usuario es un usuario autorizado
Hacer seguimiento de los diferentes programas que estn
ejecutndose y asignar un tiempo especifico a cada programa
Asignar espacio de almacenamiento para los archivos en el sistema
Ejecutar el programa shell
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 el programa que toma comandos y, ejecuta el programa
apropiado o lo traduce
en instrucciones que el kernel entiende. Por ejemplo, un comando tal
como chdir ser traducido por el shell a un formato entendible por el
kernel, mientras que un comando tal como ls ser ejecutado por el shell
como un programa en el directorio /usr/bin/ls.
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
Aplicaciones
Sistema de
Archivos 2
Siste
ma
de
Archi
vos 1
Siste
ma de
Archi
vos 3
Siste
ma de
Archi
vos 4
Superbloque
Bloques Inodos
d
e Arranque
Bloques
d
e Datos
Bloques
d
e Datos
Bloques
d
e Datos
Sistema de Archivos
Figura 1.5: Unidad Tpica de Sistema de Archivos
Ahora se va a entender la necesidad y uso de cada bloque en el sistema
de archivos.
Bloque de Arranque
Superbloq
ue
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
Bloque
Datos
de
Particin
Disco
de
es pronunciacin
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.
Tambin existen otras herramientas de procesamiento de texto, que
son conocidas como editores. Estos proporcionan las funcionalidades
para crear, editar (modificar) y guardar texto. Algunos ejemplos de
editores son:
man
clea
r
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 man
Caractersticas del Sistema Linux
El sistema Linux ofrece las siguientes caractersticas:
Estabilidad: tiene proteccin de la memoria entre procesos, de
manera que uno de ellos no pueda colgar el sistema.
Multitarea: varios programas (realmente procesos) ejecutndose
al mismo tiempo
Multiplataforma: se ejecuta en muchos tipos de CPU, no solo Intel
Multiusuario: varios usuarios en la misma maquina al mismo
tiempo (y sin licencias para todos)
Manejo de la Memoria: la memoria gestiona como un recurso
unificado para los programas de usuario y para cache de disco,
de tal forma que toda la memoria libre puede ser usada para
cache y este puede a su vez ser reducido cuando se ejecutan
grandes programas
Interfaz Grafica de Usuario: KDE, GNOME.
Desarrollo de Software: KDevelop (Lenguaje C, C++, Java,
PHP, Perl, Phyton, entre otros)
Trabajo de redes: TCP/IP, incluyendo ftp, telnet, NFS, Greles, etc.
Disponibilidad del cdigo Fuente: todo el cdigo fuente esta
disponible, incluyendo el ncleo completo, todos los drivers,
las herramientas de desarrollo y todos los programas de
usuario; adems estn disponibles libremente.
Software disponible en Linux
En Linux se encuentran disponibles varios tipos de software. Algunas
de las categoras son:
Aplicaciones
Software de Desarrollo
Software Cientfico
Software de Sistema
Utilitarios
Juegos.
Distribuciones Linux.
Linux es un sistema de libre distribucin por lo que
podeis 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, o comprando los
CDs de las mismas, 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).
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 deberiais poder
encontrar en tiendas de informtica libreras. En el peor de los casos
siempre podeis 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 teneis 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.
UBUNTU
Distribucin basada en Debian, con lo que esto conlleva y
centrada en el usuario final y facilidad de uso. Muy popular
y con mucho soporte en la comunidad. El entorno de
escritorio por defecto es GNOME.
http://www.ubuntu.com/
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/
FEDORA
Esta es una distribucin patrocinada por RedHat y
soportada por la comunidad. Facil de instalar y buena
calidad.
http://fedora.redhat.com/
DEBIAN
Otra distribucin con muy buena calidad. El proceso de
instalacion es quizas un poco mas complicado, pero sin
mayores problemas. Gran estabilidad antes que ltimos
avances.
http://www.debian.org/
OpenSuSE
Otra de las grandes. Facil de instalar. Version libre de la
distribucion comercial SuSE.
http://www.opensuse.org/es/
https://www.suse.com/
SLACKWARE
Esta distribucin es de las primeras que existio. Tuvo un
periodo en el cual no se actualizo muy a menudo, pero eso
es historia. Es raro encontrar usuarios de los que
empezaron en el mundo linux hace tiempo, que no hayan
tenido esta distribucion instalada en su ordenador en
algun momento.
http://www.slackware.com/
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/
KUBUNTU
Distribucin basada en Ubuntu, con lo que esto conlleva y
centrada en el usuario final y facilidad de uso. La gran
diferencia con Ubuntu es que el entorno de escritorio por
defecto es KDE.
http://www.kubuntu.org/
MANDRIVA
Esta distribucin fue creada en 1998 con el objetivo de
acercar el uso de Linux a todos los usuarios, en un
principio se llamo Mandrake Linux. Facilidad de uso para
todos los usuarios.
http://www.mandrivalinux.org/
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.
Estructura de los directorios general
En el sistema de ficheros de UNIX (y similares), existen varias subjerarquas de directorios que poseen mltiples y diferentes funciones de
almacenamiento y organizacin en todo el sistema.1 Estos directorios
pueden clasificarse en:
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
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 /net
No se usa.
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 /selinux
Selinux es un mdulo de seguridad aadido que ofrece linux. Lo vers
ms detenidamente en el tema de seguridad.
Este directorio contiene informacin de configuracin del mdulo
selinux.
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.
Descripcin
/boot
/home
Memoria
intercambio
(Swap)
/etc
/bin
/dev
/lib y /lib64
/media
/mnt
/proc
/root
/sbin
/sys
Funcin
/usr
/tmp
Particin
Funcin
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
/usr/local
/opt
/var/lib
Particin
/var/www
/srv/www
Funcin
o Dependiendo
del
sistema
operativo
utilizado, el directorio raz del 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.
INSTALACION
CENTOS
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
128
MB
512
MB
1.2
GB
2
GB
INTRODUCCION
Bienvenidos a la versin 6.5 de CentOS, una Distribucin Linux de Rango
Empresarial obtenida a partir de los fuentes puestos a libre disposicin
del pblico por nuestro Proveedor de OS (Upstream OS Provider , UOP).
CentOS se adapta completamente a la poltica de redistribucin de
nuestro proveedor y aspira a ser 100% compatible con sus binarios
(CentOS principalmente modifica los paquetes para eliminar la marca y
el diseo grfico original).
Hemos decidido no imitar la utilizacin que hace el UOP de los Cdigos
de Instalacin. Todos los canales estn a disposicin del administrador
del sistema en el momento de la instalacin.
Siguiendo la prctica del proveedor original de los fuentes, no hay
soporte para actualizar la instalacin desde una versin principal
anterior de CentOS (en estos momentos CentOS 5 o CentOS 4) a una
versin posterior. Esto no es una limitacin impuesta por CentOS, sino
que refleja la postura del proveedor en esta cuestin. Quienes se sientan
aventureros y quieran experimentar, que no olviden hacer y comprobar
previamente una copia de respaldo. Como aviso para aquellos que
intenten la actualizacin a pesar de esta advertencia, por ejemplo
mediante la no soportada opcin upgreadeany utilizando la lnea de
comandos del medio de instalacin, por favor, tengan en cuenta que
necesitarn recuperar manualmente el paquete centos-release actual,
hacer manualmente un rpm -e nodeps para eliminar el paquete centosrelease anterior, y entonces instalar manualmente el paquete centosrelease de CentOS 6, pues de lo contrario yum no tendra ninguna
posibilidad de funcionar correctamente.
PROCEDIMIENTO
-Al hacer boot se nos dan 2 opciones para instalar, la primera el sistema
detectara la tarjeta de vdeo y entrara en modo grfico (lo cual a veces
falla) por lo tanto recomiendo elegir la segunda opcin; la cual carga un
driver bsico de vdeo que dira que todos los equipos reconocen sin
problemas. PresionamosEnter
Entorno grafico:
2. Seleccionamos el idioma
Le damos en formatear
Siguiente
12. Elegimos la opcin que necesitemos, en este caso servidor
bsico y seleccionamos la opcin personalizar ahora para
seleccionar los paquetes a instalar
Reiniciamos
Felicidades Tu
satisfactoria.
Servidor
ha
sido
instalado
de
manera
Una vez terminando de instalar el servidor por ahora solo hacermos una
correccin al server para poder tener salida a internet y este es
solo una lnea de texto, al tratar de usar las flechas para subir y para
bajar vi har un pitido.
Las siguientes teclas controlar el movimiento del cursor.
k arriba
j abajo
h
izquierda
l derecha
A ba nd on and o vi
M ov imien to s b sico s:
h => 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.
C on trol de desp liegu e:
A => A final de la
lnea. i => Antes
del cursor.
I => Al principio de la lnea.
O => Abre una lnea por
encima. o => Abre una
lnea por debajo.
C om and os p ara elim in ar y camb iar tex to:
dd => Elimina
lnea.
cc
=>
Cambiar lnea.
D => Elimina hasta el final de lnea.
C => Cambiar hasta final de
lnea x => Elimina el carcter
del cursor. r => Cambia el
carcter del cursor.
C om and os sobre palabras:
cw
=>
Cambiar
palabra.
dw
=>
Elimina palabra.
:s/palabrainicial/palabrafinal/c cambia de a una de las
incidencias
:s/palabrainicial/palabrafinal/g
cambia todas las incidencias e => Mueve
cursor a final de palabra.
w => Mueve cursor a siguiente palabra.
C om and os d e b sq ueda:
Al pulsar enter notara un mensaje que dice que los cambios han sido
realizados.
Vuelva a pulsar : (dos puntos) y luego escriba otro.txt pulse enter y ahora
notara que se guardo el archivo con el nombre otro.txt
~ Linux el mejor sistema
: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.
~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
~
/divertid
Para cancelar el resaltado de los resultados, pulse la combinacin de
teclas: nohl:
Si pulsamos shift + a, se realizara la insercin, pero al final de la lnea.
Pulse Esc y seguido la tecla de la letra o y observara como se inicializa
la funcin insertar pero en una nueva lnea.
~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
~
-INSERT-
Localizacion
/etc/sysconfig/i18n:
/boot/grub/menu.lst
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.
Plymouth:
Zona Horaria
Reloj del hardware y reloj del sistema
Un ordenador tiene dos relojes que deben tenerse en cuenta: el reloj del
hardware/ordenador y el reloj del sistema/software.
El reloj del hardware (tambin conocido como el Reloj en Tiempo
Real (RTC) o reloj CMOS) guarda los valores de: ao, mes, da, hora,
minuto y segundos. No tiene la capacidad de guardar el horario estndar
(localtime o UTC), ni si DST (horario de verano) se utiliza.
El reloj del sistema (tambin conocido como reloj del software)
realiza un seguimiento de: Hora, Zona horaria y DTS (el horario de
verano, si procede). Ello es calculado por el kernel de Linux por el
nmero de segundos transcurridos desde la medianoche del 1 de enero
1970, UTC. El valor inicial del reloj del sistema se establece a partir del
vi /etc/sysconfig/clock
Asumiendo que nos encontramos en la ciudad de Mxico tendramos que
verificar o cambiar segn sea el caso por
ZONE="America/Mexico_City"
Y realizaremos un remplazo de un archivo con el siguiente comando:
cp /usr/share/zoneinfo/America/Mexico_City /etc/localtime
Para poder garantizar que la hora tanto local como on line estn
sincronizados tambin instalaremos el archivo ntp
yum -y install ntp
Con este mtodo garantizaramos la sincronizacin de la hora tanto de
manera local con en lnea, siempre y cuando exista una conexin a
internet.
La manera de ver la hora seria pulsando el comando.
# date o date s
En esta hay que mover el cursor con las flechas para detener el contador
automatic que corre con un total de 60 segundos, antes de que se realize
la seleccion de manera automatica.
Una vez que se realice la deteccion de la media realizara una carga y nos
pedira el idioma con el cual trabajaremos, seleccionaremos espaol.
Y seleccionaremos continuar:
Una vez realizada esta tarea nos enviara a una nueva interfaz con 3
opciones distintas:
SHELL
START SHELL >> Iniciar el intrprete de mandatos,
desde el cual podr trabajar de modo similar al nivel de ejecucin
1 (mono usuario) y tendr acceso a un conjunto bsico de
herramientas de diagnstico y reparacin.
FAKD RUN DIAGNOSTIC >> Ejecutar FirstAidKit, una
herramienta que realiza verificacin y reparacin, automtica de
algunos problemas comnes.
REBOOT REBOOT >>. Reiniciar el sistema.
Se pone el password:
Y esto nos dara acceso al sistema en nivel monousuario, para realizar las
tareas que impliquen tener este tipo de nivel.
direcciones fsicas.
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.
Comprobar que el proceso que intenta acceder a una cierta
direccin de memoria tiene permisos para ello.
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
Tamao
bloque
de Tamao
mximo
sistema de ficheros
1 KiB
16 GiB
2 TiB
2 KiB
256 GiB
8 TiB
4 KiB
2 TiB
16 TiB
del
8 KiBlmites 1
2 TiB
32 TiB
Desventajas
Como ext3 est hecho para ser compatible con ext2, la mayora de las
estructuras del archivacin son similares a las del ext2. Por ello, ext3
carece de muchas caractersticas de los diseos ms recientes como las
extensiones, la localizacin dinmica de los inodos, y la sublocalizacin
de los bloques. Hay un lmite de 31998 subdirectorios por cada
directorio, que se derivan de su lmite de 32000 links por inodo. Ext3,
como la mayora de los sistemas de archivos actuales de Linux, no puede
ser chequeado por el fsck mientras el sistema de archivos est montado
para la escritura. Si se intenta chequear un sistema de ficheros que est
montado puede detectar falsos errores donde los datos no han sido
volcados al disco todava, y corromper el sistema de archivos al intentar
arreglar esos errores.
Ext4
ext4 (fourth extended filesystem o 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:
Mejoras
Sistema de archivos de gran tamao
El sistema de archivos ext4 es capaz de trabajar con volmenes de gran
tamao, hasta 1 exbibyte1 y ficheros de tamao de hasta 16 TiB.
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
sectores
del
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
y punto. Reinicia y ya lo tienes.
Fsck
fsck (file system check o bien file system consistency check ) 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-specificoptions]
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
Puede ser el nombre de un dispositivo (/dev/hdc1, /dev/sda3), un
punto
de
montaje
(/, /usr, /home)
o
un label o UUID (UUID=f6c797e5-605b-4884-92d7cdb694a42122, LABEL=home). Si no se especifica, por
defecto se analizaran los definidos en el fichero /etc/fstab
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:
( alf ) - ( ~ )
dd if=/devmmcblk0p1 |pv|dd of=/dev/mmcblk0p2
10530816+0 registros ledos <=>
10530816+0 registros escritos
5391777792 bytes (5.4 GB) copiados, 3873,48 s, 1,4 MB/s
5,02GB 1:04:33 [1,33MB/s] [ <=>
10530816+0 registros ledos <=>
10530816+0 registros escritos
5391777792 bytes (5.4 GB) copiados, 3873,48 s, 1,4 MB/s
( alf ) - ( ~ )
$
sudo
dd
conv=noerror
of=~/home/imagen_disco_con_errores-iso
if=/dev/hda
|pv|dd
if=/dev/zero
|pv|dd
of=archivo_nuevo_vacio
bs=1024
swapon
/swapspace
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 obsoleto 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.
RPM
Red Hat lanz RPM en 1995. Actualmente RPM es el sistema de gestin
de paquetes usado para crear paquetes en Linux Standard Base (LSB). Las
el
caso
ver
el
progreso
# rpm -q paquete.rpm
Para forzar la desinstalacion (opcin no recomendada):
# rpm -e paquete.rpm --force
Uso de YUM.
Yellow
dog
Updater,
Modified (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 dicha compaa estn
implicados en el desarrollo de yum.
paquete(cups)
# yum info nombre-paquete > Consulta de informacin de
paquetes(cups)
#yum groupinfo "Grupo" > Muestra la informacin de un
grupo(servidor web)
#yum install nombre-paquete > Instala un paquete(openssh)
# yum install --nogpgcheck nombre-paquete > Instala con
resolucin de dependencias
# yum -y install nombre-paquete > Instala con respuesta
positiva a los modulos que instala(cups-pdf)
Instalacin de grupos de paquetes con resolucin automtica de
dependencias:
# 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 remove nombre-paquete > Desinstala paquetes(cupspdf)
# yum groupremove "Nombre del Grupo" > Desinstala
grupos(servidor web)
# yum update > Actualizacion de base de datos del sistema
# yum -y update > Realiza la actualizacin resolviendo las
preguntas de instalacin.
# yum --skip-broken update > Actualiza la base omitiendo las
dependencias corruptas
# yum update
paquete(cups)
nombre-paquete
>
Actualiza
un
solo
$ who r
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.
Con el siguiente comando verificaramos en que nivel se esta trabajando
# cat /etc/inittab |grep initdefault |grep id
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
Secuencia de arranque
1) CentOS arranca
configuracin
ejecutando
de
el programa init.
init
es
El
archivo de
/etc/inittab.
instruccin runlevel.
o
o
o
o
o
o
o
o
o
o
o
o
o
o
entorno:PATH,
1)
Comprueba
que
el
servicio
ssh
se
est
ejecutando.
2) Para el servicio, y comprueba con la instruccin ps que el proceso no
se
est
ejecutando.
3) Vuelve a reiniciar el servicio.
tambin
utilizar
la
siguiente
instruccin
killall nombredelproceso
Del mismo modo puedes ver el nombre del proceso mirando la lista de
procesos con ps.
Vuelve
ejecutar
el
gestor
de
arranque
grfico
gdm.
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
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.
Veamos ejemplos que muestran como trabajar con chkconfig.
Con la opcin --list nos da una lista completa de todos los servicios
instalados y para cada nivel si arrancar (on) al entrar a ese nivel o se
detendr (off) o simplemente no se iniciara. Ntese que al final de la lista
vienen los servicios que dependen del superservidor xinetd.
# 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
# chkconfig --add sshd
Lo anterior por lo general se ejecuta automticamente junto con la
instalacin de los paquetes RPM correspondientes para cada servicio.
Slo es necesario ejecutarlo cuando se instalan servicios que fueron
compilados a partir de paquetes de cdigo fuente o bien casos donde las
instrucciones de instalacin explcitamente solicitan hacerlo.
Este proceso se puede trabajar tambin con una interfaz grafica, esta se
denomina ntsysv
Service.
Un daemon(demonio) (nomenclatura usada en sistemas UNIX y UNIXlike), 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:
Usuario root.
/etc/passwd
/etc/shadow
Campo
6
Campo
7
Campo
8
Campo
Reservado.
9
/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
/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 usadas por defecto. Algunos de los aspectos que
controlan estas variables son:
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
de
comandos
archivos
de
administracin
de
Ver useradd
Permite cambiar o establecer parmetros de las fechas de
control de la contrasea.
Actualiza o establece contraseas en modo batch,
mltiples usuarios a la vez. (se usa junto con newusers)
Muestra la identidad del usuario (UID) y los grupos a los
que pertence.
Administra las contraseas de grupos (/etc/group y
/etc/gshadow).
Aade grupos al sistema (/etc/group).
Elimina grupos del sistema.
Modifica grupos del sistema.
Muestra los grupos a los que pertence el usuario.
Actualiza o crea usuarios en modo batch, mltiples
usuarios a la vez. (se usa junto chpasswd)
Establece la proteccin shadow (/etc/shadow) al archivo
/etc/passwd.
Elimina la proteccin shadow (/etc/shadow) al archivo
/etc/passwd.
Aade usuarios al sistema (/etc/passwd).
Elimina usuarios del sistema.
Modifica usuarios.
/etc/group
Usuarios y sus grupos.
/etc/gshadow Contraseas encriptadas de los grupos.
Variables que controlan los aspectos de la creacin de
/etc/login.defs
usuarios.
/etc/passwd
Usuarios del sistema.
Contraseas encriptadas y control de fechas de usuarios
/etc/shadow
del sistema.
Gestion de cuentas de grupos:
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 nuevonombre] 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.
Miller
con
la
que os recomiendo este artculo (en ingls, pero que podis 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:
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:
Cmnd_Alias
Definen uno o ms comandos y otros alias de comandos que podrn ser
utilizados despus en alias de usuarios. Ejemplos:
Cmnd_Alias
WEB
=
/usr/sbin/apachectl,
/usr/sbin/httpd,
sudoedit /etc/httpd/
Indica que a quien se le aplique el alias WEB podr ejecutar los
comandos apachectl, httpd y editar todo lo que este debajo del directorio
/etc/httpd/, ntese que debe de terminar con '/' cuando se indican
directorios. Tambin, la ruta completa a los comandos debe ser indicada.
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:
usuarios del sistema, pero no deseamos a dos de ellos, asi que negamos
con '!', que seran los usuarios 'samuel' y 'david'. Es decir, todos los
usuarios menos esos dos. 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. Ejemplos:
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:
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:
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/
Aunque ya que solicitar contrasea es el default o defecto
preestablecido, lo anterior tambin funcionar de la siguiente manera:
gerardo webserver = /etc/httpd/conf/, NOPASSWD: /bin/kill,
/usr/bin/lprm,
NOEXEC Y EXEC
Este es un tag muy importante a considerar cuando sobre se otorgan
permisos sobre programas que permiten escapes a shell (shell escape),
como en el editor 'vi' que mediante el uso de '!' es posible ejecutar un
comando en el shell sin salir de 'vi'. Con el tag NOEXEC se logra que esto
no suceda, aunque no hay que tomarlo como un hecho, ya que siempre
existe la posibilidad de vulnerabilidades no conocidas en los mltiples
programas que utilizan escapes a shell. Al igual que los tags anteriores,
el tag se hereda y se deshabilita con su tag contrario (EXEC), en caso de
que en la lista de comandos hubiera varios comandos.
valeria ALL = NOEXEC: /usr/bin/vi
WEBSERVERS,
10.0.1.102,
10.0.1.103,
# ***********************
# DEFINCION DE OPCIONES
# ***********************
# Los usuarios administradores,
contrasea de 'root'
Defaults>ADMINS rootpw
requieren
autentificarse
con
la
# Para todos los usuarios, tienen hasta dos intentos para ingresar su
contrasea y 3 minuto para que esta expire
Defaults passwd_tries = 4, passwd_timeout = 1
# Los usuarios que se conectan desde Internet, solo tienen una
oportunidad y cero timeout lo que implica
# que cada comando que usen a travs de sudo requerira siempre de
autentificacin.
Defaults:INETUS passwd_tries = 1, passwd_timeout = 0
# Mscara de directorios y archivos por default, para los que ejecuten
sudo en los servidores web
Defaults@WEBSERVERS umask = 022
# ***********************
# DEFINCION DE REGLAS
# ***********************
# administradores todo se les permite en cualquier equipo (cuidado
con esto en la vida real!!!!!
ADMINS ALL = (ALL) ALL
# administradores de red, en todos los equipos, los comandos de red
NETOPS ALL = REDCMDS
# webmasters, en los servidores web con los comandos indicados en
apachecmds y adems sin necesidad
# de contrasea acceder a las btacoras de apache y reiniciar los
servidores.
WEBMAS WEBSERVERS = APACHECMDS, NOPASSWD: /var/log/apache/,
/sbin/reboot
# supervisores, pueden ejecutar los comandos indicados en los equipos
indicados en el alias
Sudo
sudo (SUperuser DO) lo ejecuta un usuario normal, al que se supone
tiene permisos para ejecutar cierto comando. Entonces, sudo requiere
que los usuarios se autentifiquen a si mismos a travs de su contrasea
para permitirles la ejecucin del comando. Veamos un ejemplo:
$ sudo /sbin/ifconfig
Password:
eth0
Link encap:Ethernet HWaddr 4C:00:10:60:5F:21
inet addr:200.13.110.62 Bcast:200.13.110.255 Mask:255.255.255.0
inet6 addr: fe80::4e00:10ff:fe60:5f21/64 Scope:Link
...
Como se podr observar se usa el comando sudo seguido del comando
(con toda su ruta si es que este no esta en el PATH del usuario) al que se
tiene permiso. sudo pregunta por la contrasea del usuario que ejecuta
el comando y listo.
Por defecto, despus de hacer lo anterior tendrs 5 minutos para volver a
usar el mismo comando u otros a los que tuvieras derecho, sin necesidad
de ingresar la contrasea de nuevo. Si se quiere extender el tiempo por
otros 5 minutos usa la opcin sudo -v (validate). Por el contario, si ya
terminaste lo que tenas que hacer, puedes usar sudo -k (kill) para
terminar con el tiempo de gracia de validacin.
Ahora bien, Qu comandos son los que puedo utilizar?, pues la opcin l es la indicada para eso:
$ sudo -l
User sergio may run the following commands on this host:
(root) /sbin/ifconfig
(root) /sbin/lspci
En el caso anterior se ejecut un comando de root, pero no tiene que ser
asi, tambin es posible ejecutar comandos de otros usuarios del sistema
indicando la opcin -u:
$ sudo -u ana /comando/de/ana
Una de las opciones ms interesantes es la que permite editar archivos
de texto de root (claro, con el permiso otorgado en 'sudoers' como se
ver ms adelante), y esto se logra con la opcin -e, esta opcin esta
ligada a otro comando de sudo llamado sudoedit que invoca al editor por
defecto del usuario, que generalmente es 'vi'.
$ sudo -e /etc/inittab
(Permitira modificar el archivo indicado como si se fuera root)
Cuando se configura sudo se tienen mltiples opciones que se pueden
establecer, ests se consultan a travs de la opcin L
$> sudo -L
Available options in a sudoers ``Defaults'' line:
syslog: Syslog facility if syslog is being used for logging
syslog_goodpri: Syslog priority to use when user authenticates
successfully
syslog_badpri: Syslog priority to use when user authenticates
unsuccessfully
long_otp_prompt: Put OTP prompt on its own line
ignore_dot: Ignore '.' in $PATH
mail_always: Always send mail when sudo is run
mail_badpass: Send mail if user authentication fails
mail_no_user: Send mail if the user is not in sudoers
mail_no_host: Send mail if the user is not in sudoers for this host
...
varias opciones ms listadas
La configuracin predeterminada en distribuciones basadas sobre
CentOS utiliza lo siguiente:
%wheel ALL = (ALL) ALL
Con lo anterior slo los usuarios miembros del grupo wheel podrn
hacer uso de sudo. Se recomienda cambiar esta configuracin para
hacerla un poco ms restrictiva, como se muestra en los ejemplos citados
algunos prrafos arriba.
Si se quiere permitir a un usuario ejecutar sudo lo lo que sea, desde
cualquier anfitrin, utilizando cualquier identidad de usuario del sistema
y sin necesidad de autenticar, se puede definir algo como lo siguiente:
usuario ALL = (ALL) NOPASSWD: ALL
Evite utilizar esta ltima configuracin salvo que sea estrictamente
necesario.
Uso de los Aliases
Bash (Bourne again shell) es un programa informtico cuya funcin
consiste en interpretar rdenes.
Est basado en la shell de Unix y es compatible con POSIX.
Fue escrito para el proyecto GNU y es el intrprete de comandos por
defecto en la mayora de las distribuciones de GNU con Linux. Su nombre
es unacrnimo de Bourne-Again Shell (otro shell bourne) haciendo un
juego de palabras (born-again significa renacimiento) sobre el Bourne
shell (sh), que fue uno de los primeros intrpretes importantes de Unix.
Hacia 1978 Bourne era el intrprete distribuido con la versin del
sistema operativo Unix Versin 7. Stephen Bourne, por entonces
investigador de losLaboratorios Bell, escribi la versin original de
Bourne. Brian Fox escribi Bash en 1987. En 1990, Chet Ramey se
convirti en su principal desarrollador. Bash es el intrprete
predeterminado en la mayora de sistemas GNU/Linux, adems de Mac
OS X Tiger, y puede ejecutarse en la mayora de los sistemas
operativos tipo Unix. Tambin se ha llevado aMicrosoft Windows por
el proyecto Cygwin.
Usar los bash aliases acelera tareas usando la terminal..ya que cmo
todos sabemos, la usamos bastante seguido para ahorrarnos
tiempo...bueno con lo siguiente vamos a poder ahorrar an mas tiempo
escribiendo
Ubicamos un archivo de texto comn y corriente llamado .bashrc, tiene
que
estar
en
nuestro
home
(ej:
/home/usuario/)
Luego lo abrimos con cualquier editor de texto y empezamos a crear
nuestros
alias....
Los alias pueden ser creados simplemente asignando un valor o nombre
a
otra
orden,
por
ejemplo:
alias instalar="sudo
apt-get
install"
alias remover="sudo
apt-get
remove"
alias actualizar="sudo apt-get update && sudo apt-get upgrade"
Guardamos los cambios, salimos del sistema, nos logueamos nuevamente
y listo.
Unidad 5.
Archivos
Permisos
Atributos
del
Sistema
de
Permisos de ficheros
Usaremos el trmino fichero en su sentido ms amplio. Es decir que el
tema de permisos es aplicable a distintos tipos de ficheros con algunas
matizaciones que explicaremos ms adelante. Los ficheros tienen muchos
atributos adems de su nombre.
Para ver los ms significativos haremos:
$ ls -l
Supongamos que tenemos el siguiente fichero llamado 'kkkkk'
. - r w x r w x r w x 1 root root 14740 abr 15 12:05 kkkkk
l Enlace simblico
p Fifo con nombre
b Dispositivo de bloques
c Dispositivo de caracteres
d Directorio
En ingls se usan los trminos owner , group, y others para designar
respectivamente al propietario, al grupo y a cualquier usuario.
Notacin numrica para permisos
Los
permisos de los ficheros son almacenados en formato binario y se puede
referenciar numricamente. Vimos que a cada permiso individua
l le
Valor
octal
Valor
simblico
Descripcin
rwx
Valor
octal
Valor
simblico
Descripcin
directorios
rw-
Lectura y escritura
r-x
r--
Slo lectura
-wx
-w-
Slo escritura
--x
---
Nada
$ ##################################
$ chmod 707 chmod.txt
$ ls -l kk
-rwx---rwx .... .... ......
$ ##################################
$ chmod 421 chmod.txt
$ ls -l kk
-r---w---x .... .... ......
$ ##################################
$ ##################################
$ chmod a-x chmod.txt
$ ls -l chmod.txt
-r-------- .... .... ......
$ ##################################
$ chmod g+x chmod.txt
$ ls -l chmod.txt
-r----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
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 alguno
s
de estos conocimientos pero se sale de los propsitos de este curso. Le
basta con saber que existe y para que sirve.
Concesin de acceso por parte del kernel
Explicaremos el funcionamiento de los permisos de la forma ms precisa
que nos sea posible.
Para ello usaremos unas abreviaturas que ya conocemos.
EUID es el Identificador de usuario efectivo de un proceso
EGID es el Identificador de grupo efectivo de un proceso
UID en un fichero es un atributo que identifica al propietario.
$ ls otromas
Si un directorio no tiene permiso de lectura, resultara imposible pa
ra cualquier comando incluido ls averiguar cual es su contenido.
Sin abandonar la sesin anterior continuamos el ejercicio
Eliminamos los premisos de lectura del directorio kk
$ chmod -r otromas
$ ls -ld otromas
Nos dara un resultado, pero si ejecutamos el siguiente codigo
$ ls -l otromas
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
Debemos ver lo siguiente;
/tmp/ otromas
Ahora crearemos un tercer archive
$ echo > k3
Y al dar el comando siguiente nos daremos cuenta que ya no tendremos
permisos
$ ls -l
ls: .: Permiso denegado
Hemos podido meternos dentro del directorio otromas porque aun
tenemos permiso para ello pero seguimos sin poder saber cual es su
contenido.
$ cd /tmp
Si no se tiene permiso de ejecucin en un directorio no se podr hacer cd
a ese directorio, ni a ninguno de los directorios que cuelgan de el. 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
Nos mostrara algo como lo siguiente;
d-w--w--w- 2 ..... ...... kk
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
Tampoco nos deja borrar el fichero desde fuera
Recuperamos permiso de ejecucin
$ chmod +x otromas
$ ls -ld kk
$ rm kk/k2
$ ls otromas
k1
Una vez que hemos compilado el kernel con soporte para ACLs y que
hemos compilado las herramientas necesarias para poder trabajar con
ellas (adems de parchear aquellas utilidades de gestin de ficheros y
sistemas de ficheros para que reconozcan las ACLs y las respeten y sepan
interpretarlas), podemos ya dedicarnos a la gestin de las propias ACLs
en si.
Para ello disponemos de dos utilidades principalmente:
setfacl -b -k -R dir_raiz
setfacl -R -m g:sistemas:rw
Vayamos por partes con la sintaxis de setfacl:
o
g:sistemas:rw
Todas las ACEs tienen tres componentes separadas por ':' (en
el caso de las operaciones de borrado de ACEs el tercer
componente es opcional). El primero de los componentes
indica si se trata de un ACE de usuario (valor u) o de grupo
(valor g). Incluso es posible asignar ACEs al grupo de
usuarios resto (other), pero esto no suele ser habitual, as
que omitiremos la sintaxis (se pueden encontrar ms detalles
en la pgina del manual de setfacl(1)).
El segundo de los componentes es el nombre de usuario o
grupo al que se le aplica la ACE. Se puede dar el nombre
simblico o el valor numrico del uid o gid correspondiente.
El tercer componente es el valor del permiso asociado a esta
ACE, y puede ser una combinacin cualquiera de las letras r,
w, x y -, o un valor numrico octal (como en chmod).
Por tanto, en nuestro caso tenemos que es una ACE de grupo
(g), que se aplica al grupo de sistemas y que le estamo dando
los permisos de lectura y escritura (rw).
2. A continuacion tenemos que dar permisos al grupo de desarrollo
tanto en el directorio subdir_1 y todo su contenido, como en el
directorio subdir_2 y todo su contenido. Sin embargo no tenemos
# getfacl dir_raiz
# file: dir_raiz
# owner: root
# group: root
user::rwx
group::r-x
group:sistemas:rwmask::rwx
other::r-x
El listado de permisos que obtenemos al ejecutar getfacl se compone de
entradas de tipo user y group, adems de las entradas para mask y other.
En el caso de las entradas user y group, tendremos siempre una entrada
para el propietario del fichero y el grupo del fichero (son las lneas que
no indican un usuario o grupo concreto) y tantas lneas adicionales como
# file: dir_raiz/fich_1
# owner: root
# group: root
user::rwgroup::r-group:sistemas:rwmask::rwother::r-# file: dir_raiz/fich_2
# owner: root
# group: root
user::rwgroup::r-group:sistemas:rwmask::rwother::r--
# file: dir_raiz/dir_1/fich_4
# owner: root
# group: root
user::rwgroup::r-group:sistemas:rwgroup:desarrollo:rwmask::rwother::r--
# getfacl dir_raiz/dir_2
# file: dir_raiz/dir_2
# owner: root
# group: root
user::rwx
group::r-x
group:sistemas:rwgroup:desarrollo:rw# getfacl dir_raiz/dir_1
group:explotacion:r-x
# file: dir_raiz/dir_1
mask::rwx
# owner: root
other::r-x
# group: root
user::rwx
# getfacl dir_raiz/dir_2/fich*
group::r-x
# file: dir_raiz/dir_2/fich_5
group:sistemas:rw# owner: root
group:desarrollo:rw# group: root
mask::rwx
user::rwother::r-x
group::r-group:sistemas:rw# getfacl dir_raiz/dir_1/fich*
group:desarrollo:rw# file: dir_raiz/dir_1/fich_3
group:explotacion:r-x
# owner: root
mask::rw# group: root
other::r--
user::rwgroup::r-group:sistemas:rwgroup:desarrollo:rwmask::rwother::r--
# file: dir_raiz/dir_2/fich_6
# owner: root
# group: root
user::rwgroup::r-group:sistemas:rwgroup:desarrollo:rwgroup:explotacion:r-x
mask::rwother::r--
Todo lo anterior est muy bien, pero tiene un problema: los ficheros y
directorios nuevos que se creen no van a tener todas esas ACLs con los
valores adecuados, y por tanto tendremos que estar cada dos por tres
ajustando los valores de las ACLs con las rdenes anteriores.
Evidentemente eso no es operativo en absoluto. En nuestra ayuda llegan
las ACLs por defecto (en realidad habra que hablar de ACEs por defecto,
pero la documentacin habla de ACLs por defecto, as que
mantendremos la misma terminologa para no crear ms confusin).
Las ACLs por defecto nos permiten indicar cul es el juego de ACEs que
queremos que se apliquen automticamente a los nuevos ficheros y
directorios que se creen dentro de un directorio dado. Se dice en estos
casos que los permisos se heredan desde el directorio padre.
La sintaxis es idntica a la de una ACE normal, con la diferencia de que
debemos usar adems la opcin -d:
# getfacl dir_raiz
# file: dir_raiz
# owner: root
# group: root
user::rwx
group::r-x
group:sistemas:rwmask::rwx
other::r-x
default:user::rwx
default:group:sistemas:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
Es decir, se aaden una serie de ACEs especiales, de tipo default que
contienen la informacin a utilizar para los nuevos ficheros y directorios
que se creen dentro de ste.
Ejercicio:
Para poder realizar el ejercicio y poder ver el tema funcionando es
necesario realizar la instalacin de las acl, para lo cual es necesario
ejecutar lo siguiente:
# yum -y install acl
------------- ./.bash_logout
Algunos parmetros del comando que conviene conocer son, por
ejemplo, -a utilizado en el ejemplo anterior que muestra todos los
archivos del directorio, incluidos los ocultos. Si queremos visualizar los
atributos de forma recursiva utilizamos -R:
$ lsattr -Ra | more
-----------------e- ./.ike
./.ike:
-----------------e- ./.ike/.
-----------------e- ./.ike/sites
./.ike/sites:
-----------------e- ./.ike/sites/.
-----------------e- ./.ike/sites/..
-----------------e- ./.ike/..
-----------------e- ./.ike/certs
./.ike/certs:
-----------------e- ./.ike/certs/.
-----------------e- ./.ike/certs/..
-----------------e- ./.cisco_mds9000
./.cisco_mds9000:
-----------------e- ./.cisco_mds9000/.
-----------------e- ./.cisco_mds9000/install.log
-----------------e- ./.cisco_mds9000/..
chattr
Hoy toca hablar de chattr, una utilidad para nuestra terminal que sirve
para asignar diferentes atributos a nuestros archivos en Linux. Uno de
los objetivos principales de esta herramienta es el de proteger nuestros
archivos de cambios involuntarios o borrados accidentales y lo mejor de
todo, te proteger incluso aunque ejecutes comandos de borrado o
modificacin siendo superusuario (root).
Los atributos de los que vamos a hablar hoy son soportados por los
sistemas de archivos de Linux nativos como ext2, ext3, ext4, btrfs, etc...
Uno no podr eliminar ni modificar los archivos con los atributos que
usemos, aunque tenga todos los permisos para hacerlo.
Cuando es necesario proteger algunos archivos y/o carpetas para que no
puedan ser borrados. Puede ser el caso de pcs compartidas o de sistemas
donde se necesite mejorar un poco la seguridad en caso de posibles
penetraciones.
El comando que nos ayudara con la tarea sera chattr (change attribute).
Este se utiliza para cambiar varios atributos de archivos y puede usarse
en carpetas de manera recursiva.
El comando es parte del paquete que viene instalado de base en todas las
distros de linux.
Se usa asi:
chattr [opciones][operadores][atributos]
En
opciones
tenemos
por
ejemplo:
ejemplo:
ejemplo:
podemos
poner
por
Atrubutos;
Pruebas;
Creamos un archivo para realizar las siguientes pruebas;
# touch prueba.txt
Deshabilitar la modificacin de la fecha de acceso al fichero
(atime)
Con la asignacin del atributo A conseguimos que cuando se acceda al
fichero no se modifique el registro atime. De este modo no quedarn
registrada la fecha del ltimo acceso al fichero:
# chattr +A prueba.txt
# lsattr prueba.txt
-------A----- prueba.txt
Comprimir automticamente el fichero en el disco
Si asignamos el atributo c activamos que el fichero se comprima
automticamente en el disco por el kernel. Cuando se lea el fichero se
servir descomprimido:
# chattr +c prueba.txt
# lsattr prueba.txt
--------c---- prueba.txt
Bloquear la modificacin o borrado de un archivo
Como veamos en la entrada que citaba al principio del post sobre evitar
que un archivo pueda ser modificado o borrado (incluso por root). Al
asignamos el atributo i activamos la flag para que el fichero no pueda
ser modificado, borrado o renombrado:
# chattr +i prueba.txt
# lsattr prueba.txt
----i-------- prueba.txt
Permitir recuperacin de archivo aunque sea eliminado
Asignamos el atributo u para que cuando el fichero se borre, sus datos
permanezcan guardados y permitan al usuario su recuperacin:
# chattr +u prueba.txt
# lsattr prueba.txt
-u----------- prueba.txt
Al eliminar un archivo, sobreescribir con 0 todos sus bloques
Al contrario que con el atributo u, el atributo s implica que cuando
un archivo sea borrado, automticamente los bloques utilizados por el
mismo sean sobreescritos con ceros (zeroed):
# chattr +e prueba.txt
# lsattr prueba.txt
-----------------e- prueba.txt
Escribir de forma sncrona a disco cambios en los ficheros
El parmetro S implica que cuando un fichero es modificado, los
cambios se aplican a disco de forma sncrona y directa. Es lo mismo que
tener la flag sync en el punto de montaje del filesystem.
# chattr +S prueba.txt
# lsattr prueba.txt
--S---------------- prueba.txt
Y as podramos seguir con una gran cantidad de distintos atributos.
Como siempre, podis revisarlos en la pgina man de chattr. Por
supuesto, los atributos se pueden asignar a la vez:
# chattr +uiAc prueba.txt
# lsattr prueba.txt
-u--i--Ac---- prueba.txt
# man chattr
# rm prueba2.txt
Ni siquiera con un sudo su rm prueba.txt
Y si fuera un directorio la que queremos proteger de ser borrada, seria
asi:
Creamos un directorio
# mkdir MiDirectorio
Le asignamos los atributos:
# sudo chattr -R +i MiDirectorio
Podemos comprobar que el atributo ha sido agregado usando lsattr en la
carpeta que contiene esa otra carpeta o el archivo:
# lsattr a
Y al igual que el archivo quedara protegido para no ser eliminado
accidentalmente.
Y cuando deseemos poder eliminar ese archivo o directorio usaremos;
# chattr -i prueba2.txt
Y despus un rm.
Ejercicio;
Nos loguearemos con nuestro usuario usuarioconsola en una terminal
para la realizacin del ejercicio;
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).
Ahora nos sadremos de la consola con el siguiente comando.
# Exit
Ejecutando el comando su acompaado de la opcin -l ingresamos la
clave de acceso de root una vez que nos lo ordene:
su l
Ejeccutamos 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
usuario regular usuarioconsola
Exit
Ejecutando el siguiente comando nos mostrara la informacion del
sistema:
$ uname a
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:
Linux localhost.localdomain 2.6.32-71.29.1.el6.i686 #1 SMP
Mon Jun 27 18:07:00 BST 2011 i686 i686 i386 GNU/Linux
Ejecutando el siguiente solo listara los archivos que inicien con la cadena
texto, pero solo aquellos que incluyan nmeros despus de la cadena
antes descrita:
$ ls texto[[:digit:]]*
Ejecutando el siguiente listara solo los archivos que inician con la cadena
texto, pero solo aquellos que terminan con letras minusculas:
$ ls texto[[:lower:]]*
Ejecutando la siguiente nos listara solo los archivos que inicien con la
cadena texto y que terminan con letras mayusculas:
$ ls texto[[:upper:]]*
Ejecutando el siguiente nos mostrara los archivos que contengan la
cadena texto y solo los que terminan con caracteres distintos de
numeros:
$ ls texto*[![:digit:]]
Ejecutando lo siguiente nos listara los archivos que inician con la cadena
texto, pero solo aquellos que terminan con la letra c minscula o C
mayuscula:
$ ls texto*[cC]
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 numero 1
despues de dicha cadena:
$ ls texto[!aA1]*
Con el siguiente comando crearemos un directorio nuevo llamado
ejercicios1:
$ mkdir ejercicios1
$ 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;
$ 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 ../
Eliminamos el archivo passwd utilizando el comando rm de la
siguiente forma;
$ rm passwd
Hacemos lo mismo con el archivo fstab que esta dentro de directorio
nuevo;
$ rm nuevo/fstab
Y eliminamos el directorio nuevo de la siguiente forma;
$ rmdir nuevo
Creamos un nuevo sub-directorio con el nombre NuevoDir1;
$ mkdir NuevoDir1
Accesamos a este nuevo directorio:
$ cd NuevoDir1
Ejecutamos lo siguiente:
$ mkdir Nuevo Directorio
Listamos el contenido actual mostrando una sola columna:
$ ls -1
Lo anterior cre dos nuevos directorios, uno con el nombre Nuevo y
otro con el nombre Directorio, por lo que mostrara los siguientes
archivos o carpetas:
$ Directorio Nuevo
Ejecutando el comando de la siguiente forma, solo que en esta ocasin
utilizar una diagonal inversa antes del espacio:
$ mkdir Nuevo\ Directorio
Listamos de nueva cuenta el contenido del directorio de trabajo actual
mostrando una sola columna:
$ ls -1
Lo anterior cre un nuevo directorio denominado Nuevo Directorio, lo
que nos mostrara un listado como la siguiente:
$ Directorio
Nuevo
Nuevo Directorio
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.
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
Ficheros bz2
Para comprimir ficheros en formato bz2, se utiliza el siguiente comando:
bzip fichero
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
tar -c ficheros | bzip2 > archivo.tar.bz2
Para descomprimir ficheros tar.bz2, se utiliza el siguiente comando:
bzip2 -dc archivo.tar.bz2 | tar -xv
Y para ver el contenido de un fichero tar.bz2, se usa el siguiente
comando:
bzip2 -dc archivo.tar.bz2 | tar -t
Ficheros zip
Para poder comprimir en formato zip, se usara el comando siguiente:
zip archivo.zip ficheros a comprimir
Para poder descomprimir los ficheros zip, se usa el siguiente comando:
unzip archivo.zip
Para ver el contenido de un fichero zip, se pone el siguiente comando:
unzip -v archivo.zip
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
Ejercicio;
Lo primero que haremos para llevar acabo esta practica, 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
# yum install zip unzip gzip tar bzip2 xz
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
Seguido nos logueamos con este;
tar
cpf
/var/respaldos/completo.tar
-g /var/respaldos/registro.snar /usr/share/pixmaps
tar
cpf
/var/respaldos/incremental-1.tar
-g /var/respaldos/registro.snar /usr/share/pixmaps
tar
cpf
/var/respaldos/incremental-2.tar
-g /var/respaldos/registro.snar /usr/share/pixmaps
tar
cpf
/var/respaldos/incremental-3.tar
-g /var/respaldos/registro.snar /usr/share/pixmaps
tar
xpf
/var/respaldos/completo.tar
-g /var/respaldos/registro.snar -C /
tar
xpf
/var/respaldos/incremental-1.tar
/var/respaldos/registro.snar
-C
\
/
tar
cpf
/media/DISCO/respaldo04.tar -g
/media/DISCO/registro.snar
/usr/share/pixmaps
-M
-L
4194304
-g
/
#
tar
xpf
/media/DISCO/respaldo02.tar
/media/DISCO/registro.snar
-M
-C
-g
/
#
tar
xpf
/media/DISCO/respaldo03.tar
/media/DISCO/registro.snar
-M
-C
-g
/
#
tar
xpf
/media/DISCO/respaldo04.tar
/media/DISCO/registro.snar -M -L -C /
-g
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)
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:
#> kill -9 11428
(termina, mata un proceso completamente)
#> kill -SIGKILL 11428 (Lo mismo que lo anterior)
Las seales ms comunes son la 19 y 20 que detienen momentneamente
la ejecucin de un proceso o programa, 18 la continua, 1 que es la seal
de hang up que obliga al proceso a releer sus archivos de configuracin
estando en ejecucin y 9 que termina rotundamente un proceso.
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
#> 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.
#> nice
0
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 real)
nohup y &
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
#> 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
[2]+ Stopped
#> fg %1
#> jobs
[1]+ Running
[2]- Stopped
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
COMMAND
26156 sergon
1 root
15
2 root
RT
3 root
34
4 root
RT
5 root
RT
...
PR
NI
VIRT
RES
TIME+
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.
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
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.
Utilizando lsof podremos ver todos los procesos que utilizan el sistema
de archivos en general, ejecute lsof:
# lsof
Si lo ejecutamos de la siguiente manera podremos visualizar ms
cmodamente esta salida:
# 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:
# lsof -i | grep named
Si tiene dudas y desea consultar el manual de lsof puede consultarse
ejecutando lo siguiente:
# man 8 lsof
Introduccin a sed.
Ejercicio;
Utilizando el editor vi crearemos el archivo pruebased.txt:
# vi pruebased.txt
Ingrese lo siguiente:
Hector
Calle
Aldama
Colonia
Centro
Ciudad de Mexico, C.P. 123456
Rodriguez
1234
Aldama
podremos eliminar el
/' pruebased.txt
Introduccin a GnuPG.
GnuPG es una compleja herramienta que no est exenta de polmica
tcnica, social y legal. En el plano tcnico, ha sido diseada para su uso
en situaciones con diversos requerimientos de seguridad. Esto complica
la gestin de claves. En el plano social, el uso de GnuPG no es
estricatamente una decisin de tipo personal. Para que su uso tenga
efectividad, GnuPG requiere que todas las partes en una comunicacin
sean usuarios del programa. En el plano legal, desde 1.999, las leyes que
contemplan el uso de productos informticos criptolgicos, y en
particular si el uso de GnuPG es legal, son diferentes segn los pases y
estn siendo actualmente debatidas por muchos gobiernos.
Este captulo tratar sobre estos temas. Se intentar dar consejos
prcticos sobre el uso de GnuPG de cara a los requerimientos de
seguridad del usuario. Tambin se sugerirn vas para promocionar el
uso de GnuPG con vistas a la comunicacin segura entre el usuario y las
personas con las que ste se comunique, aun cuando stos no sean
usuarios de GnuPG. Finalmente, se resaltar el estado legal de GnuPG
conforme con el estado actual de las leyes sobre criptologa y cifrado en
el mundo.
claves caducadas en un anillo de claves, para que los datos que hubieran
sido cifrados en el pasado puedan todava ser descifrados, pero slo es
necesario activar una sola subclave en un momento dado.
Gestin del anillo de confianza
Al igual que con la proteccin de nuestra clave privada, la gestin de
nuestro anillo de confianza es otro aspecto del uso de GnuPG que
requiere equilibrar la seguridad y la facilidad de uso. Si estamos usando
GnuPG para protegernos contra la posibilidad de una simple
interceptacin casual o de una falsificacin, entonces nos podemos
permitir ser algo confiados con las firmas de otros. Si, por el contrario,
nos preocupa que pueda haber un atacante determinado interesado en
invadir nuestra privacidad, entonces deberamos confiar mucho menos
en otras firmas, e invertir ms tiempo en verificarlas.
Aparte de nuestras propias necesidades de seguridad, deberamos
tener siempre cuidado al firmar las claves de otras personas. Firmar una
clave sin el suficiente grado de confianza en la validez de la clave, slo
para satisfacer nuestras propias necesidades de seguridad, es una actitud
egosta. Otros, con otras necesidades de seguridad ms grandes, podran
fiarse de una clave que llevara nuestra firma. Si no pueden confiar en
nosotros, entonces se debilita el anillo de confianza y se hace ms difcil
la comunicacin para todos los usuarios de GnuPG. As pues, debemos
poner el mismo cuidado al firmar una clave que el que nos gustara que
pusieran otras personas cuando dependamos de sus firmas.
En la prctica, la gestin de nuestro anillo de claves evita el tener que
ajustar las opciones --marginals-needed y --completes-needed. Cualquier
clave que firmemos personalmente ser considerada vlida, pero con la
excepcin de grupos reducidos, no es prctico firmar la clave de cada
persona con la que nos comuniquemos. Por lo tanto, tendremos que
dejar que otros asignen el nivel de confianza.
Es aconsejable ser precisos cuando asignemos el nivel de confianza y
cuando usemos las opciones para configurar el cuidado con que GnuPG
debe ir con la validacin de claves. Por ejemplo, es posible que tengamos
plena confianza con unos pocos amigos ntimos, que sabemos que sern
lo suficientemente cuidadosos cuando firmen una clave, y que
otorguemos un nivel de confianza marginal al resto en nuestro anillo de
claves.
Desde
esta
perspectiva,
podemos
tener --completesneeded como 1 y --marginals-needed como 2. Si estuviramos ms
preocupados por la seguridad, podramos escoger valores de 1 y 3,
Ejercicio;
Para empezar iniciaremos instalando el paquete necesario para poder
realizar el ejercicio, ejecutando el comando de la siguiente forma;
# yum -y install gnupg
Lo anterior solicitar:
Lmites
Tanto las cuotas por bloques o por inodos, tienen lmites de uso y son de
dos tipos:
HARD: (Duro) Cuando se establece (para bloques o inodos), es el lmite
absoluto. El usuario no podr exceder este lmite.
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.
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)
ext3
ext3
ext3
noatime
noatime
noatime
1
1
1
1
2
2
fichero o el
fichero o el
fichero o el
fichero o el
# useradd usuarioquota
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).
Nos logueamos como usuarioquota
Una vez en el perfil copiaremos los archivos que estn en la carpeta
/usr/lib a un directorio en el home del usuarioquota
$ 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.
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.
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
Y nos debera mostrar algo como esto:
eth0
Link
encap:Ethernet
HWaddr
00:0C:29:97:XX:XX
inet
addr:10.21.9.70
Bcast:10.21.11.255
Mask:255.255.252.0
inet6
addr:
fe80::20c:29ff:fe97:24e3/64
Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:491604 errors:0 dropped:0 overruns:0 frame:0
TX packets:3856 errors:0 dropped:0 overruns:0 carrier:0
collisions:0
txqueuelen:1000
RX bytes:57073655 (54.4 MiB) TX bytes:506213 (494.3 KiB)
Interrupt:185 Base address:0x1400
eth1
Link
BROADCAST
RX
packets:0
TX
packets:0
collisions:0
RX
bytes:0
Interrupt:19
encap:Ethernet
HWaddr
00:11:25:29:XX:XX
MULTICAST
MTU:1500
Metric:1
errors:0
dropped:0
overruns:0
frame:0
errors:0
dropped:0
overruns:0
carrier:0
txqueuelen:1000
(0.0
b)
TX
bytes:0
(0.0
b)
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:
# ifconfig eth0 192.168.1.100 255.255.255.0 up
Cambiando eth0 por el nombre de la interfaz que necesitamos. Si
queremos deshabilitar una interfaz ejecutamos:
# ifconfigu eth0 down
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 sera:
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
Nota: No olvides hacer un backup del archivo en caso de falla antes de
hacer cualquier cambio con:
#
cp
eth0.backup
/etc/sysconfig/network-scripts/ifcfg-eth0
/root/ifcfg-
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
Una vez realizados los cambios reiniciamos los servicios de red:
# service network restart
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
TYPE=Ethernet
Una vez realizados los cambios reiniciamos los servicios de red:
# service network restart
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
Ah puedes agregar los servidores que quieras por ejemplo con:
nameserver
nameserver 10.50.50.131
10.50.50.130
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:
cron.hourly
cron.daily
cron.weekly
cron.monthly
Si se coloca un archivo tipo script en cualquiera de estos directorios,
entonces el script se ejecutar cada hora, cada da, cada semana o cada
mes, dependiendo del directorio.
Para que el archivo pueda ser ejecutado tiene que ser algo similar a lo
siguiente:
#!/bin/sh
Un asterisco * como valor en los primeros cinco campos, indicar iniciofin 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
01 * * * *
15 8 * * *
15 20 * * *
00 5 * * 0
* 5 * * Sun
45 19 1 * *
01 * 20 7 *
10 1 * 12 1
00 12 16 *
Wen
30 9 20 7 4
30 9 20 7 *
20 * * * 6
20 * * 1 6
Descripcin
Se ejecuta al minuto 1 de cada hora de todos los das
A las 8:15 a.m. de cada da
A las 8:15 p.m. de cada da
A las 5 a.m. todos los domingos
Cada minuto de 5:00a.m. a 5:59a.m. todos los domingos
A las 7:45 p.m. del primero de cada mes
Al minuto 1 de cada hora del 20 de julio
A la 1:10 a.m. todos los lunes de diciembre
Al medioda de los das 16 de cada mes y que sea Mircoles
A las 9:30 a.m. del dia 20 de julio y que sea jueves
A las 9:30 a.m. del dia 20 de julio sin importar el da de la semana
Al minuto 20 de cada hora de los sbados
Al minuto 20 de cada hora de los sbados de enero
servicios,
en
/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.
Por ltimo y no menos importante:
Administracion de trabajos en cron
crontab archivo
Remplaza el existente archivo crontab con un archivo definido por el
usuario
crontab -e
Editar el archivo crontab del usuario, cada linea nueva sera una nueva
tarea de crontab.
crontab -l
Lista todas las tareas de crontab del usuario
crontab -d
Borra el crontab del usuario
crontab -c dir
Define el directoriod e crontab del usuario (este debe tener permisos de
escritura y ejecucion del usuario)
crontab -u usuario
prefijo para manejar el crontab de otro usuario, ejemplos:
$ sudo crontab -l -u root
$ sudo crontab -e usuario2
#crontab -d -u usuario
Ejercicio;
Para iniciar comenzaremos instalando el paquete necesarios;
# yum y install cronie
# yum y install anacron
El formato del archivo /etc/crontab.
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
ATD
El At tiene basicamente la misma funcionalidad, solo cambia el formato
con el que se especifica un 'momento'. Tiene una sintaxis muy parecida al
ingles. Dare ejemplos para que se entienda, pero antes debemos
comprender que el At no ejecuta un comando o script, sino una serie de
comandos, que At nos solicitara interactivamente. Tambien podemos
especificar un script (y NO un binario) para que sea ejecutado, mediante
el parametro '-f', que ahora veremos.
Veamos unos ejemplos, para comprender mejor el uso de at:
at midnight - Ejecutara a la medianoche el script que ingresemos
interactivamente al ejecutar el comando. Tambien podemos usar noon
(mediodia) o teatime (4pm). Por otra parte, podemos agregar today (hoy)
o tomorrow (maniana) como sufijo. Ejemplo: at 8:30am tomorrow (8.30
am de maniana).
at 3:15pm - Ejecutara a las 3:15 de la tarde.
at now + 2 days - Ejecutara dentro de dos dias.
at 10am + 1 week - Ejecutara a las 10am dentro de una semana.
at 11pm Jul 22 - Ejecutara a las 23hs del 22 de Julio.