SlideShare a Scribd company logo
1 of 55
GNU – Linux – UNIX
Sistemas Operativos

Autor: José Plá
Estructura de directorios
•

bin
–

•

boot
–

•

Todo en linux es un archivo, desde los puertos seriales, discos duros y escaners. Para
poder acceder a estos archivos se necesita un archivo especial.

etc
–

•

Directorio de inicio de Linux. El kernel del sistema se guarda en este directorio.

dev
–

•

Programas esenciales. Representan el minimo para un usuario utilice el sistema. Cosas
como el shell y comandos básicos del sistema de archivos.

Aquí se guardan los archivos de configuración del sistema. Desde los archivos de
configuración del ambiente X, el registro de usuarios y scripts de inicio del sistema. Este es
el más importante de los directorios para un SysAdmin.

home
–

UNIX/Linux es un sistema operativo multiusuario. Cada usuario en el sistema se le crea una
cuenta y un directorio para archivos personales. Este directorio se le llama el directorio
hogar (home) del usuario. Es el directorio predeterminado de todo usuario, además de
contener archivos de personalización propios de cada usuario.

2
Estructura de directorios
•

lib
–

•

mnt
–

•

Paquetes opcionales de software. La idea es guardar bajo un mismo directorio las
instalaciones de todos los paquetes que se instalen para así poder removerlos de forma
más sencilla posteriormente.

proc
–

•

Los puntos para montar temporalmente los discos duros, discos removibles, CD-ROMs y
hasta discos flexibles, se encuentran bajo este directorio.

opt
–

•

Las librerias del sistema que son necesarios para la operación básica del sistema se
guardan en este directorio. Los módulos del kernel y la librería de C son unas de las
muchas cosas que se guardan en este directorio.

Este directorio es propio de sistemas Linux y tiene ciertas características especiales; no es
parte real del sistema de archivos, sino un sistema de archivos virtual que provee acceso a
información del kernel. Como por ejemplo ejecutando el comando ‘cat /proc/cpuinfo’.

root
–

El administrador del sistema es conocido como “root”. El directorio de root no se encuentra
bajo home, debido a que se corre el riesgo de que home esté en una partición por aparte, y
que por alguna razón la partición no monte, entonces el administrador accedería como root
para solucionar el problema; de haber estado bajo home, root hubiera tenido problemas
para acceder al sistema.
3
Estructura de directorios
•

sbin
–

•

tmp
–

•

Almacenamiento temporal. Todos los usuarios tienen acceso de lectura y escritura para
este directorio.

usr
–

•

Programas esenciales que son ejecutados por root y mientras que el sistema inicia son
guardados aquí. Usuarios normales no usan programas de este directorio.

Este es el mayor de los directorios padre en un sistema UNIX/Linux. Todo lo no
mencionado anteriormente va acá, programas, documentación, el código fuente del kernel,
el sistema de ventanas X. Este es el directorio donde se instalará la mayoría de los
programas.

var
–

Bitácoras “logs” del systema y programas, cache y archivos bandera de diferentes
programas, se guardan aquí. En resumen este es el directorio donde la información cambia
constantemente.

4
AYUDA S.O.S
•¿Cómo se aprende UNIX/Linux? Leyendo
•¿Qué voy a leer? MANuales
Así como root es el superusuario, el comando man es el supercomando.
Sus páginas se llaman manpages y esta dividido por secciones según la
función.

5
MANunales
•El indice de manuales se divide en secciones, para una mayor
facilidad de uso.
•Normalmente las secciones se distribuyen de la siguiente manera,
aunque esto puede cambiar según la distribución de Linux o Unix:
–
–
–
–
–
–
–
–

Sección 1
Sección 2
Sección 3
Sección 4
Sección 5
Sección 6
Sección 7
Sección 8

comandos de usuario
llamadas de sistema
llamadas de bibliotecas C
dispositivos (p.e. hd, sd)
formatos de archivo y protocolos (p.e. wtmp, /etc/passwd, nfs)
juegos (solo introducción)
convenciones, paquetes macro, etc. (p.e. nroff, ascii)
administración del sistema

•Buscar por contenido:
– apropos <palabra clave>
• No se encuentra en todas las distribuciones.

– man –k <palabra clave>
• Requiere de un man indexado a través del comando catman o mandb, los
cuales deben ejecutarse cada vez que se agreguen nuevos manpages al
6
manpath.
Buscando MANs
•Diferentes formas de busqueda:
root@ubuntu:~# apropos crontab
crontab (1)
- maintain crontab files for individual users (V3)
crontab (5)
- tables for driving cron
root@ubuntu:~# man -f crontab
crontab (1)
- maintain crontab files for individual users (V3)
crontab (5)
- tables for driving cron
root@ubuntu:~# man -k crontab
crontab (1)
- maintain crontab files for individual users (V3)
crontab (5)
- tables for driving cron

•Accesando las diferentes secciones del man
root@ubuntu:~# man 1 crontab | head -7
CRONTAB(1)
NAME
crontab - maintain crontab files for individual users (V3)
root@ubuntu:~# man 5 crontab | head -7
CRONTAB(5)
NAME
crontab - tables for driving cron

CRONTAB(1)

CRONTAB(5)

7
Buscando Programas
•which(1).
which es utilizado para localizar un programa
rápidamente. Este solo busca en su PATH y
devuelve la primera instancia que encuentre y el
camino del directorio hasta esta.
root@ubuntu:~# which sh
/bin/sh

•whereis(1) funciona de manera similar a which,
pero puede buscar además en las páginas man y
los archivos de fuentes.
root@ubuntu:~# whereis sh
sh: /bin/sh /bin/sh.distrib /usr/share/man/man1/sh.1.gz
8
Moviéndose entre
directorios
•Change Directory (cambiar directorio)
cd
cd
cd
cd
cd
cd

$HOME  directorio
~
 directorio
 directorio
 directorio
.
 directorio
..
 directorio

home del usuario
home del usuario
home del usuario
anterior
actual
jerarquicamente superior

•Y ¿como sé en cuál directorio estoy?
pwd

o
echo $PWD

9
Busqueda Avanzada
•find
El comando find(1) le permite al usuario buscar en el
sistema de archivos con una rica colección de predicados
de búsqueda. Los usuarios pueden especificar una
búsqueda con determinados comodines, rangos de
modificación u hora de creación, u otras propiedades
avanzadas.
find se va a demorar un poco en ejecutar, pues tiene que
recorrer todo el árbol de directorios. Y si el comando se
corre como usuario normal, van a mostrarse mensajes de
permisos denegados en los directorios que solo root u
otros usuarios específicos tengan acceso.
10
Lab
1)mkdir

-m 775 -p folder/numeros/{1/2/3/4/5,idiomas/
{espanol/uno/dos/tres/cuatro/cinco,english/one/two/three/four/five}}

2)find

~/folder -type d -exec touch {}/archivo ;

3)find

~/folder -name archivo -print | grep -E "(3|four|cinco)/archivo" |
xargs -p rm -f

4)find

~/folder/* -name 3 -o -name four -o -name cinco | xargs -r ls -l

5)find

~/folder/* -type d | awk -F/ '$NF~/(3|four|cinco)/ {if($NF==3)
{size=3}if($NF=="four"){size=4}if($NF=="cinco"){size=5} system("dd
if=/dev/urandom of="$0"/"size"megas bs=1024 count=0 seek="1024*size"n");
system("ls -l "$0"/"size"megas")}'

6)find
7)find

~/folder -type f -size +4000000c -exec ls -l {} ;
11

~/folder -path '/root/folder/numeros/1' -prune -o -type f -size
Formas de Arranque
•Esquemas de init:
– sysinit
• Es el primer esquema de arranque y el más utilizado,
proviene del System V

– runit

• Viene a sustituir al antiguo sysinit, intenta simplificar el
proceso en 3 etapas
http://smarden.sunsite.dk/runit/

– Upstart
• Iniciativa de sustitución universal para la automatización de
tareas y servicios
12
Sysinit o System V init
•Se basa sobre el archivo /etc/inittab para definir un
runlevel predeterminado.
•Generalmente hay 8 niveles de funcionamiento para el
sistema.
•De estos 8, hay 3 que son reservados:
– 0. Halt
– 1. Single user mode
– 6. Reboot
Fuera de estos 3 niveles reservados, la mayoría de los UNIX/Linux
utilizan sus propios niveles.
13
Sysinit o System V init
OS

Runlevel

AIX

2

Cent OS

3

Debian GNU/Linux

3

Gentoo Linux

3

Mac OS X

3

Red Hat Linux
/Fedora

3o5

Slackware Linux

3

Solaris

5

Ubuntu

2

$ runlevel
$ who -r

El runlevel solo puede ser cambiado
por root a través de los comandos
telinit o init.

3

Suse Linux

Se puede ver en que runlevel se
encuentra el sistema por medio de los
comandos:

El runlevel predeterminado se indica en
el archivo /etc/inittab en la
entrada :initdefault:
14
Sysinit o System V init
•Cada runlevel tiene un directorio donde se encuentran las referencias a lo que debe o
no debe estar corriendo
$ pwd
/sbin
$ ll -d rc[0-9]*
dr-xr-xr-x
2 bin
dr-xr-xr-x
2 bin
dr-xr-xr-x
2 bin
dr-xr-xr-x
2 bin
dr-xr-xr-x
2 bin

bin
bin
bin
bin
bin

8192
8192
8192
8192
8192

Dec
Aug
Mar
Feb
Feb

17 2006 rc0.d
11 2007 rc1.d
5 2008 rc2.d
19 17:02 rc3.d
19 17:02 rc4.d

•Los scripts que comienzan con S denotan “startup” (iniciar) mientras que los que
comienzan con K denotan “kill” (matar) la tarea. Los números que le siguen a estas letras
representan el orden de ejecución, del menor al mayor.
$ ll rc4.d
total 0
lrwxr-xr-x 1 root
lrwxr-xr-x 1 root
lrwxr-xr-x 1 root

sys
sys
sys

32 Dec 17 2006 K451vxpbx_exchanged -> /opt/VRTSpbx/bin/vxpbx_exchanged
20 Dec 6 2006 S150autosec -> /sbin/init.d/autosec
32 Dec 17 2006 S450vxpbx_exchanged -> /opt/VRTSpbx/bin/vxpbx_exchanged

•Los archivos bajo estos directorios son vínculos al archivo real, si se desea eliminar la
activación automática de una tarea en un runlevel, no se elimina el archivo real, sino solo
el vínculo.
15
Runit
•Orientado al monitoreo de servicios.
•Puede instalarse solo para monitoreo de servicios y seguir usando
sysinit.
•Es independiente de init.
•No necesita guardar en archivos el pid de los demonios (daemons),
por lo que en caso de falla del sistema no hay errores debido a que el
pid-file no se haya podido limpiar correctamente.
•Brinda prioridad al log del sistema y de los servicios.
•http://smarden.sunsite.dk/runit/
16
Runit
•Supervisión de Servicios
– Cada servicio esta asociado a un directorio del servicio y cada
daemon del servicio correo como un proceso hijo de un proceso
runsv de monitoreo que se ejecuta desde este directorio. El
programa runsv provee una interfaz confiable para señalar al
daemon del servicio y controlar el servicio y su supervisor.
Normalmente el programa sv es usado para enviar comandos a
través de esta interfaz y para solicitar información del estado
acerca del servicio.
– El programa runsv supervisa al daemon de servicio
correspondiente. De forma predeterminada, un servicio se
configura para estar arriba, lo que significa, si el servicio muere,
será reiniciado. La configuración de runsv puede indicar lo
contrario si así se desea.
17
Runit
•Estado limpio del proceso
– Un proceso antes de ser iniciado, puede necesitar un
prechequeo del estado del sistema, para así
garantizar un buen funcionamiento del daemon a
iniciar.
– En sysinit esto hay que hacerlo con un script que
garantice un estado limpio del sistema para la
correcta ejecución del daemon, el problema esta en
que la configuración de estos scripts es por lo general
manual, por lo que conlleva a nuevos puntos de falla.
18
Upstart
•De acuerdo con Canonical, Upstart es un reemplazo de SysV init basado en eventos. Se pretende
de que en futuras versiones llegue a remplazar a crontab, y demás programas de calanderización de
tareas.
•El venerable /etc/inittab sigue existiendo, pero todo lo que hace es indicar cual runlevel es el
predeterminado. Todo lo demás es controlado por archivos de configuración en /etc/event.d/ (en
Fedora) o /etc/init/jobs.d/ (en Ubuntu). Estos archivos sustituyen ciertas líneas en /etc/inittab; por
ejemplo el archivo /etc/event.d/tty1 contiene:
start on stopped rc2
start on stopped rc3
start on stopped rc4
stop on runlevel 0
stop on runlevel 1
stop on runlevel 6
respawn
exec /sbin/mingetty tty1

•Mientras que en SysV init, un equivalente en /etc/inittab se leería:
1:2345:respawn:/sbin/mingetty tty1
http://upstart.ubuntu.com
19
Upstart
•Al inicio init lee el directorio /etc/event.d, donde cada archivo describe un proceso que
debe ser monitoreado. Esto incluye los pormenores sobre las dependencias del estado
del sistema antes de iniciar el proceso, y que eventos pueden causar que el proceso sea
iniciado o detenido.
•Estados de transición:
–Waiting to Starting y Stopped to Starting: ejecuta en el shell el script de inicio del proceso.
–Starting to Running y Restarting to Running: reinicia los procesos.
–Running to Restarting: ejecuta en el shell el script de reinicio del proceso.
–Starting to Stopping, Running to Stopping y Restarting to Stopping: envía señales a los
procesos que estén corriendo; ejecuta en el shell el script para detener el proceso.

•Además de estos esquemas de inicio, hay otros en el sector privado que ya manejan
lo que actualmente realiza Upstart además de muchas de sus ambiciones, estos
esquemas son SMF de Solaris y launchd de Apple; ambos basados en XML.

20
Manejadores de Paquetes
•Todo SO tiene alguna forma de instalar aplicaciones y poder ver que es lo
que esta debidamente instalado; estas son aplicaciones independientes que
manejan la información de lo que se encuentra instalado, lo que se puede
desinstalar y algunas opciones más de otras aplicaciones o utilidades a
desinstalar.

•¿Si no tuvieramos manejadores de paquetes?
–No sabríamos que hay para instalar.
–No podríamos obetner rapidamente una lista de lo que esta instalado.
–No tendríamos un control automatico de las dependencias.
•Instalaríamos software sin que los recursos de otras aplicaciones esten completos.
•Desinstalariamos software inhabilitando otras aplicaciones que dependen de este.

–No podríamos desinstalar un software completo si este se encuentra distribuido
por todo el sistema de archivos. Las librerías perdidas abundarían.

21
¿Repositorios?
•Los manejadores de paquetes (Package Managers)
mantienen un lista de los repositorios de software.

•Los repositorios:
–Mantienen todos los paquetes que el sistema.
–Contienen todos los paquetes que se pueden instalar en el sistema.
–Existen en su forma oficial por quien mantiene el sistema o distribución
y a los que se ofrece un soporte oficial, como también externos, donde se
proveen paquetes extra general mente versiones beta o de algún proyecto
específico.
22
PMs según el OS
•APT, el cual se encuentra en sistemas basados en Debian Linux. También posee sus
evoluciones en nivel gráfico como las populares interfaces de Aptitude y Synaptic.
•RPM, que es el manejador de paquetes de Red Hat. Además se puede instalar su
manejador más completo con instalaciones automáticas llamado Yum, siendo también
mucho más amigable al usuario que su predecesor RPM.
•Ports, comúnmente encontrado en los sistemas tipo BSD. DarwinPorts es un ejemplo
de esto en Mac.
•Portage, usado exclusivamente en Gentoo Linux.
•Yast, como el PM de SUSE.
•Fedora y Debian representan la mayoría del universo de Linux. Fedora, Red Hat,
CentOS, Lineox, White Box Linux, y varios otros utilizan Yum. Los hijos de Debian son
muchos: Ubuntu, Knoppix, Linspire, Mepis para nombrar algunos pocos.
23
PMs por CLI - YUM
•Mejor usar YUM vs RPM; Yum es evolución, mejor manejo de dependencias, de limpieza del
sistema, usabilidad y provee varias tareas automáticas.
RPM para obtener información sobre paquetes.
YUM para instalar o desinstalar paquetes.
•Instalar y remover uno o multiples paquetes:
# yum install 'foo'
# yum remove 'foo'

•Actualizar un paquete instalado:
# yum update 'foo'

•Lista las actualizaciones disponibles para los paquetes instalados:
# yum list updates

•Actualiza el sistema completo:
# yum update

•Realiza actualizaciones automáticas diarias:
# chkconfig --level 345 yum on; service yum start

•Buscar paquetes cuando se sabe el nombre:
$ yum list 'foo'

•Buscar un paquete cuando no se esta seguro del nombre, usando expresiones regulares:
$ yum search 'foo*'
$ yum search '*foo?'

24
PMs por CLI - YUM
•Encontrar a que paquete pertenece un archivo específico:
$ yum provides 'foo'

•Yum posee grupos de paquetes que se instalan en masa mediante una única instrucción, se
puede ver una lista de estas plantillas mediante:
$ yum grouplist

•Estos son manejados con casi los mismos comandos que se manejan los paquetes individuales,
usando el nombre de la plantilla entre comillas simples:
# yum groupinstall 'FTP Server'
# yum groupupdate 'FTP Server'
# yum groupremove 'FTP Server'

•Por defecto, Yum realiza un query a los repositorios remotos cada vez que es ejecutado; los
cuales se encuentran listados en /etc/yum.repos.d; esto puede tomar algun tiempo por lo que puede
volverse poco práctico, esto se puede evitar creando un cache para Yum, añadiendo la siguiente
línea en /etc/yum.conf:
keepcache=1

- Posteriormente ejecuten yum de la siguiente manera yum -C 'options' cuando se desee
utilizar el cache local en lugar de consultar los repositorios remotos.
25
PMs por CLI - RPM
•RPM es usualmente más rápido que Yum,
cuando se trata de buscar información sobre
paquetes, como saber si estan instalados:
$ rpm -q 'foo'

•O para listar archivos contenidos por un paquete
ya instalado:
$ rpm -ql 'foo'

•A qué paquete pertenece un archivo?
$ rpm -qf '/usr/bin/foo'

•Lista todos los paquetes instalados y salva la
lista en un archivo:
$ rpm -qa 'foo' | tee rpmlist.txt

26
PMs por CLI - Aptitude
•Aptitude viene siendo para apt-get, lo que Yum es para RPM, aunque existe una restricción, no es
recomendable usar Aptitude y apt-get a la vez, dado que usan registros diferentes que podrían
padecer de entradas falsas.
•Estos comandos instalan, actualizan, reinstalan o remueven un paquete:
# aptitude install 'fie'
# aptitude reinstall 'fie'
# aptitude remove 'fie'
# aptitude remove --purge 'fie'

•Muestra todas las versiones de los paquetes:
# aptitude -V install 'fie'

•Se puede bajar un paquete sin necesidad de instalarlo:
# aptitude -d install 'fie'

•Actualice su listado de paquetes en cache, actualice el sistema, actualice hacia la siguiente
versión:
# aptitude update
# aptitude upgrade
# aptitude dist-upgrade

•Aptitude muestra la información del paquete sobre los que se encuentren instalados:
$ aptitude show 'fie'

•Muestra paquetes disponibles para instalar:
$ aptitude search 'fie'

27
PMs por CLI - Apt-file
•Instalar y crear una lista local de los paquetes:

# aptitude install apt-file
# apt-file update

•Encontrar el paquete al que pertenece un
archivo específico:
$ apt-file search 'fum'

•También se puede usar para buscar paquetes
cuando no se conoce su nombre exacto:
$ apt-file list 'fum'

Esto además muestra todos los archivos en un
paquete.

28
PMs por CLI – dpkg
•dpkg es semejante a RPM, dado a que opera en paquetes de forma
individual, sin rastrear dependencias.
•Los siguientes comandos buscan si un paquete esta instalado en el sistema
y muestra un listado de los archivos que componen este paquete:
$ dpkg -l | grep nano
ii nano 1.3.12-2 free Pico clone with some new features
$ dpkg -L nano
/.
/etc
/etc/nanorc
...

•Busca a que paquete pertenece un archivo:
# dpkg -S '/sbin/fee'

•Se puede descomponer un .deb sin necesidad de instalarlo, lo cual es muy
útil para examinar un paquete o extraer archivos específicos que se necesiten
reemplazar:
# dpkg --unpack 'fee'

29
¿Qué es el Kernel?
•Parte esencial de un sistema operativo que provee los
servicios más básicos del sistema. Se encarga de
gestionar los recursos como el acceso seguro al hardware
de la computadora.
Se encarga también del multiplexado, determinando qué
programa accederá a un determinado hardware si dos o
más quieren usarlo al mismo tiempo.
El kernel también ofrece una serie de abstracciones del
hardware para que los programadores no tengan que
acceder directamente al hardware, proceso que puede ser
complicado.
30
Tipos de Kernel
•Kernel monolítico
–Todas las funcionalidades posibles están integradas en el sistema. Se trata de un programa de tamaño
considerable que deberemos recompilar al completo cada vez que queramos añadir una nueva posibilidad.
Esta es la estructura original de Linux. Por tratarse de una técnica clásica y desfasada el creador de Linux fue
muy criticado.

•Kernel modular
–Se trata de la tendencia actual de desarrollo. En el kernel se centran la funcionalidades esenciales como la
administración de memoria, la planificación de procesos, etc. Sin embargo no tiene sentido que el núcleo de un
sistema operativo englobe toda la parafernalia para comunicarse con todas las posibles tarjetas de vídeo o de
sonido. En otros sistemas operativos esto se soluciona con unos ficheros proporcionados por el fabricante
llamados drivers. En Linux se creó una interfaz adecuada para posibilitar el desarrollo de módulos que
cumplieran esas funcionalidades. Esos módulos pueden ser compilados por separado y añadidos al kernel en
tiempo de ejecución.

•Estructura de microkernel
–Esta técnica pretende reducir a su mínima expresión el kernel, dejando a los niveles superiores el resto de las
funcionalidades. Existen algunos kernels que lo utilizan, si bien el que centra nuestra atención es Hurd. Se
trata del último kernel GNU llamado a sustituir a Linux como núcleo del sistema operativo. Aunque esta
estrategia de diseño es tan antigua como la modular, no ha sido tomada en cuenta hasta ahora debido a las
limitaciones de rendimiento que tenía.

31
¿Quién mantiene el Kernel
en LINUX?
•Linux Fundation Organization
–Es de vital importancia para el creador de Linux, Linus Torvalds y el
grupo de desarrolladores del kernel mantenerse independientes de la
industria. La fundación Linux patrocina a individuos clave del grupo de
desarrolladores del kernel para que su enfoque sea único. Además la
fundación es el punto de reunión entre la comunidad, los desarrolladores
del kernel y la industria.

•Kernel Organization
–Son quienes se encargan de desarrollar y mantener el kernel de Linux, el
grupo en si es dirigido por Linus Torvalds y en su sitio
http://www.kernel.org mantienen disponible las últimas actualizaciones de
las más recientes versiones del kernel. Es un grupo abierto que acepta
recibir trabajo voluntario de personal calificado; aunque algunos miembros
se dedican tiempo completo al proyecto, la organización en si es sin fines
de lucro.
32
Kernel Download

•El kernel se puede conseguir preferiblemente desde los mirrors de http://www.kernel.org :
–Parches.
–Versiones recientes.
–Código fuente.

•Además existen versiones específicas para cada distribución.
33
Actualizando el kernel
•Cuando se compila el kernel todo archivo
resultante se ubica en el directorio del código fuente.
•Pasos para actualizar:
–Bajar el kernel.
–Configurar el kernel.
–Compilar el kernel.
–Realizar una copia de seguridad del kernel antiguo.
–Ubicar el nuevo kernel en la carpeta especificada.
–Modificar el manejador de arranque para que apunte al nuevo kernel.
–Reiniciar el servidor.
34
Notas para compilar el kernel
•Comandos Paso a Paso:
– bzip2 -dc linux-2.6.XX.tar.bz2 | tar -xvf –
– mv linux-2.6.XX /usr/scr/
– rm /usr/scr/linux
– ln –s /usr/scr/linux-2.6.XX /usr/scr/linux
– cd /usr/scr/linux-2.6.XX
– make clean
– make mrproper
– make config ( existen opciones de configuración alternas )
– make
– make install
– mv vmlinuz /boot/vmlinuz-2.6.XX
– mv System.map /boot/System.map-2.6.XX
– rm /vmlinuz
– ln –s /boot/vmlinuz-2.6.XX /vmlinuz
35
Notas para editar GRUB para que
arranque con el nuevo kernel
•Editar /boot/grub/menu.lst:
–Ejemplo configuración anterior:

title
root
kernel

Linux
(hd0,1)
/vmlinuz root=/dev/hda2 ro

– Ejemplo configuración modificada:
title
Linux
root
(hd0,1)
kernel
/vmlinuz root=/dev/hda2 ro
title
root
kernel

Linux recovery
(hd0,1)
/vmlinuz.old root=/dev/hda2 ro

•/vmlinuz.old debe ser un puntero al kernel anterior en /boot

36
Configurando la LAN en la familia
Debian
•/etc/network/interfaces
–este archivo contiene la configuración de cada una de las tarjetas de red.
–Las líneas que empiecen con la palabra auto indica las interfaces que se activaran al inicio del sistema o cuando
se ejecute el comando ifup –a
–Ejemplo configuración estática:
iface eth0 inet static
address 192.168.1.5
netmask 255.255.255.0
gateway 192.168.1.254
– Ejemplo configuración dinámica:
auto eth0
iface eth0 inet dhcp

•Ifconfig:
–Es el comando por definición para el manejo de las interfaces de red en POSIX.
•
•
•
•
•
•
•
•
•
•

[root@ubuntu]# ifconfig eth0 192.168.99.14 netmask 255.255.255.0 up
[root@ubuntu]# ifconfig eth0
eth0
Link encap:Ethernet HWaddr 00:80:C8:F8:4A:53
inet addr:192.168.99.14 Bcast:192.168.99.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:9 Base address:0x5000

37
Rutas estáticas
•/etc/network/interfaces
–Bajo la configuración de cada interfaz se añade la ruta deseada.
auto eth0
iface eth0 inet static
address 192.168.1.42
network 192.168.1.0
netmask 255.255.255.128
broadcast 192.168.1.0
up route add default gw 192.168.1.200
down route del default gw 192.168.1.200

• Comando route:
[root@ubuntu]# route add default gw 192.168.99.254
[root@ubuntu]# route -n
Kernel IP routing table
Destination
Gateway
Genmask
Flags
192.168.99.0
0.0.0.0
255.255.255.0
U
127.0.0.0
0.0.0.0
255.0.0.0
U
0.0.0.0
192.168.99.254 0.0.0.0
UG

Metric
0
0
0

Ref
0
0
0

Use
0
0
0

Iface
eth0
lo
eth0

38
Varias interfaces una sola NIC
•Una forma un poco más compleja pero que es una de las
facilidades que nos brinda ifconfig, es configurar varias
interfaces en una sola tarjeta de red.
–Ejemplo en el archivo /etc/network/interfaces:
auto eth0 eth0:1
iface eth0 inet static
address 192.168.0.100
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
iface eth0:1 inet static
address 192.168.0.200
network 192.168.0.0
netmask 255.255.255.0

39
Secure Shell SSH
•Secure Shell nos permite ingresar a un sistema a
través de la red de forma segura, para ejecutar
comandos de forma remota y mover archivos de un
sistema a otro.
•Secure Shell provee una serie de comandos que
remplazan comandos inseguros como rlogin, rsh,
rcp, ftp, y telnet.
•Es independiente de los demás servicios de red
dado a que utiliza un demonio propio.
40
Métodos de SSH
Método de
autentificación

Ventajas

Desventajas

Password

Requiere poca o ninguna
configuración.
Conveniente para usuarios viajeros
que prefieren no mantener claves
encriptadas privadas.

El usuario debe digitar el password cada vez que ingresa al
servidor.
Es menos seguro, dado que al momento de transferir la
clave pasa entre servidores sin ser encriptadas.

Public-key

Método seguro que no necesita de
un password para su autentificación.
Conveniente para usuarios que
corren scripts de forma remota.

Difícil de administrar dado a que las claves están pares
entre servidores.

Host-based

Simple y fácil de administrar.
Conveniente en redes seguras, dado
que el método revisa solo el servidor,
no individualmente los usuarios.

El menos seguro de los métodos de autentificación, porque
múltiples usuarios pueden establecer conexiones desde un
cliente, usando solo la llave par del servidor.

41
Configuración de Autentificación
con Llave Pública - SSH
•En orden de generar las llaves de seguridad para un usuario:
profe@ubuntu:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/profe/.ssh/id_rsa):
Created directory '/home/profe/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/profe/.ssh/id_rsa.
Your public key has been saved in /home/profe/.ssh/id_rsa.pub.
The key fingerprint is:
7d:58:42:a9:ba:84:ed:19:6c:08:ea:ad:17:d7:29:ba profe@ubuntu
The key's randomart image is:
+--[ RSA 2048]----+
|
..
|
profe@ubuntu:~$ ls -l .ssh
|
..
|
|
.. .
|
total 8
| .
.. +
|
| . . =..S o .
|
-rw------- 1 profe profe 1675 2009-07-26 20:13 id_rsa
|. .ooBo
.
|
|. . ++.+
|
-rw-r--r-- 1 profe profe 394 2009-07-26 20:13 id_rsa.pub
| . + +
|
| .oE.
|
+-----------------+

42
Configuración de Autentificación
con Llave Pública - SSH
•/etc/ssh/sshd_config
–Este es el archivo de configuración del servidor de ssh. Algunos parámetros que
necesitamos revisar son:
PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile
%h/.ssh/authorized_keys

• Permisos de los archivos y directorios ssh:
Archivo/Directorio

Permisos

$HOME (directorio hogar)

drwx------ o drwxr--r--

$HOME/.ssh

drwx------ o drwxr--r--

$HOME/.ssh/id_rsa y id_dsa

-rw-r--r-- o -rw------

$HOME/.ssh/id_rsa.pub y id_dsa.pub

-rw-r--r-- o -rw------

$HOME/.ssh/config

-rwx------

43
Configuración de Autentificación
con Llave Pública - SSH
•Copiar la llave pública en el sistema cliente
al directorio home del servidor:
# cat $HOME/.ssh/id_rsa.pub | ssh remoteuser@remotehost
´cat - >> $HOME/.ssh/authorized_keys

• Listo para ingresar sin password:
root@ubuntu:~# ssh profe@ubuntu
The authenticity of host 'ubuntu (127.0.1.1)' can't be established.
RSA key fingerprint is
ec:51:30:73:aa:71:c1:1b:09:29:21:cc:00:76:6d:38.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ubuntu' (RSA) to the list of known hosts.
44
Laboratorio SSH

•Utilizar Putty y puttygen
–Putty es un programa de cliente de terminales y
puttygen es un generador de claves rsa para
putty, que puede usarse para autentificaciones
ssh usando putty como cliente.
Sitio oficial de putty

Putty.exe

Puttygen.exe
45
NTP
•Network Time Protocol (NTP)
–En ambientes de trabajo con redes internas que abarcan varias zonas
horarias, es importante mantener la hora sincronizada entre todos los
servidores.
•Revisión de logs de aplicaciones o la bitácora del sistema.
•Para efectos de seguridad, como los tiquetes con registro de tiempo de Kerberos.

–El objetivo es mantener un servidor con la hora oficial, así todos los demás
servidores se sincronizan contra este servidor, manteniendo una hora
estándar respetando las zonas horarias.

•Componentes:
–ntp.conf
–ntpd
–ntpdate
46
NTP Archivo de Configuración
•/etc/ntp.conf
–Cuando el servidor arranca, ntpd leé el archivo
de configuración ntp.conf, para así determinar las
fuentes de sincronización y el modo de operación.
• Los siguientes 4 ejemplos muestran la configuración del servidor
de tiempo y del método de operación a utilizar:
–
–
–
–

server address [options ...]
peer address [options ...]
broadcast address [options ...]
manycastclient address [options ...]
47
NTP por DHCP
•Si el servidor de DHCP esta configurado para propagar la información del servidor NTP,
entonces esta información será usada de forma automática.
–Realizar una copia de /etc/ntp.conf a /etc/ntp.conf.dhcp, reemplazando las líneas del servidor
con la información recibida del servidor de DHCP, y reiniciando el servicio NTP.
–Para que esto funcione, la opción “ntp-servers” debe encontrarse en la sección de “request” en el
archivo /etc/dhcp3/dhclient.conf.
–Ejemplo:
request

subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, host-name,
netbios-name-servers, netbios-scope, interface-mtu, ntp-servers;

–En caso de preferir usar otro servidor NTP para la sincronización que no sea el distribuido por el
DHCP, entonces este también es un buen lugar para desabilitar esta opción.

•Para habilitar la distribución de NTP a través del servidor DHCP, en el paquete de
Debian dhcp3-server, hay que añadir la siguiente opción en el archivo
/etc/dhcp3/dhcpd.conf:
option ntp-servers ntp1.foo.bar, ntp2.foo.bar;

48
ntpdate
•Este comando existe para ser usado en clientes que no mantienen
una conectividad de red permanente.
–ntpdate es ejecutado cada vez que una interfaz de red es iniciada. Para
ajustar este comportamiento, el archivo /etc/network/if-up.d/ntpdate debe ser
editado.
–Ejemplo:
root@ubuntu:/usr/share/doc# date
mie sep 2 06:43:28 CST 2009
root@ubuntu:/usr/share/doc# ntpdate pa.pool.ntp.org
20 Sep 22:52:44 ntpdate[27773]: step time server
200.35.147.189 offset 1613201.384755 sec
root@ubuntu:/usr/share/doc# date
dom sep 20 22:53:11 CST 2009
49
NFS (Network File System)
•NFS es un protocolo estándar de Internet, creado por Sun
Microsystems (actualmente Oracle) en 1984.
•Fue desarrollado para permitir compartir archivos entre
sistemas que residan en la misma área de red local.
•En caso de no tener NFS instalado en el servidor, intentar
la seguiente línea:
root@ubuntu:~# aptitude install nfs-common nfs-client nfs-server

•Puerto de red:
root@ubuntu:~# rpcinfo -p | grep nfs
100003
3
udp
2049 nfs
100003
3
tcp
2049 nfs

50
NFS – Configurando el Servidor
•Existen 3 archivos cruciales, los cuales hay que editar para configurar el servidor NFS,
/etc/exports, /etc/hosts.allow y /etc/hosts.deny . Realmente solo /etc/exports es necesario,
pero sin los otros dos, se degaría el servidor abierto a ataques de seguridad.
–/etc/exports
Este archivo contiene una lista de entradas, donde cada una indica un volumen que es compartido
y con cuales permisos.
Un par de líneas de ejemplo:
/usr/local
192.168.0.1(ro) 192.168.0.2(ro)
/home
192.168.0.0/255.255.255.0(rw)
–/etc/hosts.allow & /etc/hosts.deny
Estos dos archivos especifican cuales computadoras en la red, pueden usar servicios desde este
servidor. Cada línea contiene una entrada indicando un servicio y una lista de clientes.
1. Revisa primero el archivo hosts.allow, si el cliente se encuentra listado para el servicio solicitado, entonces
se le concede acceso.
2. Si el cliente no se encuentra en el archivo hosts.allow entonces se procede a revisar el archivo hosts.deny, si
el cliente se encuentra en este último archivo, se le niega el acceso.
3. En caso de que el cliente no esté especificado en ninguno de los dos archivo, el acceso es concedido.

51
NFS - Lab
•Exportando sin percistencia:
root@ubuntu:~# exportfs -o rw,sync,fsid=0,crossmnt *:/home/profe
root@ubuntu:~# exportfs -v
/home/profe
<world>(rw,wdelay,crossmnt,root_squash,no_subtree_check,fsid=0)
root@ubuntu:~# showmount -e localhost
Export list for localhost:
/home/profe *
root@ubuntu:~# mkdir /home/alumno/profesdir
root@ubuntu:~# mount -t nfs -o rw,users,exec,sync localhost:/home/profe
/home/alumno/profesdir
root@ubuntu:~# showmount -a
All mount points on ubuntu:
127.0.0.1:/home/profe
root@ubuntu:~# df /home/alumno/profesdir
Filesystem
1K-blocks
Used Available Use% Mounted on
localhost:/home/profe
7611904
2218688
5006592 31% /home/alumno/profesdir
root@ubuntu:~# ll /home/profe
total 20
drwxr-xr-x 2 profe profe 4096 2009-09-01 00:45 carpeta
root@ubuntu:~# ll /home/alumno/profesdir
total 20
52
drwxr-xr-x 2 profe profe 4096 2009-09-01 00:45 carpeta
Samba
•Es una implementación gratuita del protocolo SMB/CIFS; originalmente desarrollado por
el australiano Andrew Tridgell como un proyecto de graduación para su Phd en la
Universidad Nacional de Australia en 1992, mientras trabajaba para DEC.
–SMB (Server Message Block), usado para proveer acceso compartido a impresoras, archivos y
otros dispositivos del nodo con el resto de la LAN. Desarrollado por Barry Feigenbaum mientras
trabajaba con IBM desarrollando para DOS y OS/2 además participo activamente en la elaboración
del estándar NETBIOS. SMB siguió su evolución junto con Microsoft, puliendo muchas de las quejas
por desempeño, además de hacer pública su especificación en la cual se basan las implementación
de SMB en VMS, varias versiones de UNIX y Linux en conjunto de CIFS (Common Internet File
System (CIFS) File Access Protocol) .
–Actualmente el proyecto de SAMBA es mantenido por un grupo de desarrollo usando el
licenciado bajo la ampliamente usada GNU GPL. www.samba.org

•Los servicios de Samba son implementados a través de dos demonios:
–Smbd
•Provee los servicios para compartir archivos e impresoras.

–Nmbd
•Comprende el servicio de traducir entre el identificador NetBIOS y la dirección IP.

53
Descargar SAMBA código fuente
•Por seguridad samba viene encriptado para así comprobar el buen estado de
los archivos con el código fuente. En esta sección se utiliza la herramienta de
verificación GPG de GNU.
–Utilizamos wget para descargar los archivos
mkdir samba && cd samba
wget ftp://us1.samba.org/pub/samba/samba-latest.tar.asc
wget ftp://us1.samba.org/pub/samba/samba-latest.tar.gz
wget ftp://us1.samba.org/pub/samba/samba-pubkey.asc
–Ahora a verificar la descarga y preparar el directorio con el código fuente
gpg --import samba-pubkey.asc
gzip -d samba-latest.tar.gz
gpg --verify samba-latest.tar.asc
tar -xvf samba-latest.tar
cd samba-3.4.2
54
Compilar SAMBA código fuente
•El crucial momento de compilar, como ya habíamos mencionado anteriormente
se necesitan ciertas aplicaciones antes de empezar con el proceso, por ejemplo
haber instalado “make” y “gcc”, aunque para SAMBA necesitamos algo más.
–En este caso particular samba no viene con un archivo “configure” listo para instalar,
pero sí con un script para crear este archivo faltante.
aptitude install autoconf
./autogen.sh
–Listo ahora personalizamos la instalación como los directorios involucrados y por
último instalamos:
./configure -prefix=/opt/samba/samba-3.4.2 
-with-configdir=/etc/samba 
-with-privatedir=/etc/samba/private 
-mandir=/usr/share/man
make
make install
55

More Related Content

What's hot (18)

Sistema Operativo UNIX
Sistema Operativo UNIX Sistema Operativo UNIX
Sistema Operativo UNIX
 
Diferencias
Diferencias Diferencias
Diferencias
 
Introduccion UNIX/LINUX
Introduccion UNIX/LINUXIntroduccion UNIX/LINUX
Introduccion UNIX/LINUX
 
Sistemas operativos graficos
Sistemas operativos graficosSistemas operativos graficos
Sistemas operativos graficos
 
Sistema operativo unix completo
Sistema operativo unix completoSistema operativo unix completo
Sistema operativo unix completo
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Cuadros De Posix Y Win 32
Cuadros De Posix Y Win 32Cuadros De Posix Y Win 32
Cuadros De Posix Y Win 32
 
Uso y creacion de unidades
Uso y creacion de unidadesUso y creacion de unidades
Uso y creacion de unidades
 
Tsx-32 OS
Tsx-32 OSTsx-32 OS
Tsx-32 OS
 
Sistemas operativos Andrei
Sistemas operativos AndreiSistemas operativos Andrei
Sistemas operativos Andrei
 
Unix yola
Unix yolaUnix yola
Unix yola
 
CIENCIAS DE LA COMPUTACION
CIENCIAS DE LA COMPUTACIONCIENCIAS DE LA COMPUTACION
CIENCIAS DE LA COMPUTACION
 
"Sistemas Operativos"
"Sistemas Operativos""Sistemas Operativos"
"Sistemas Operativos"
 
S I S T E M A O P E R A T I V O
S I S T E M A  O P E R A T I V OS I S T E M A  O P E R A T I V O
S I S T E M A O P E R A T I V O
 
Cap5
Cap5Cap5
Cap5
 
Taller plataformas tecnológicas ORACLE MSDOS Y UNIX
Taller plataformas tecnológicas ORACLE MSDOS Y UNIXTaller plataformas tecnológicas ORACLE MSDOS Y UNIX
Taller plataformas tecnológicas ORACLE MSDOS Y UNIX
 
Unix nueva diapositiva
Unix nueva diapositivaUnix nueva diapositiva
Unix nueva diapositiva
 
Linux
LinuxLinux
Linux
 

Similar to Introducción a GNU - POSIX - LINUX

Similar to Introducción a GNU - POSIX - LINUX (20)

Linux for bioinformatics
Linux for bioinformaticsLinux for bioinformatics
Linux for bioinformatics
 
Linux Para Asterisk
Linux Para AsteriskLinux Para Asterisk
Linux Para Asterisk
 
Intro comandos unix
Intro comandos   unixIntro comandos   unix
Intro comandos unix
 
Guia comandos-rapidos-linux-4781
Guia comandos-rapidos-linux-4781Guia comandos-rapidos-linux-4781
Guia comandos-rapidos-linux-4781
 
Presentación sistemas archivos
Presentación sistemas archivosPresentación sistemas archivos
Presentación sistemas archivos
 
Comandos GNU/Linux-Unix y programación shell.
Comandos GNU/Linux-Unix y programación shell.Comandos GNU/Linux-Unix y programación shell.
Comandos GNU/Linux-Unix y programación shell.
 
Linux básico
Linux básicoLinux básico
Linux básico
 
Sistemas de ficheros
Sistemas de ficherosSistemas de ficheros
Sistemas de ficheros
 
Prueba2
Prueba2Prueba2
Prueba2
 
Introduction to linux for bioinformatics
Introduction to linux for bioinformaticsIntroduction to linux for bioinformatics
Introduction to linux for bioinformatics
 
Curso-Taller GNU-Linux Dia2
Curso-Taller GNU-Linux Dia2Curso-Taller GNU-Linux Dia2
Curso-Taller GNU-Linux Dia2
 
Curso Linux Basico
Curso Linux BasicoCurso Linux Basico
Curso Linux Basico
 
Linux
LinuxLinux
Linux
 
Presentación linux
Presentación linuxPresentación linux
Presentación linux
 
Curso Basico Ponencia 1
Curso Basico Ponencia 1Curso Basico Ponencia 1
Curso Basico Ponencia 1
 
Linux - Jerarquia de Directorios
Linux - Jerarquia de DirectoriosLinux - Jerarquia de Directorios
Linux - Jerarquia de Directorios
 
Comandos Basicos De Linux
Comandos Basicos De LinuxComandos Basicos De Linux
Comandos Basicos De Linux
 
Artefactos linux
Artefactos linuxArtefactos linux
Artefactos linux
 
Cli unix2
Cli unix2Cli unix2
Cli unix2
 
19 usuarios gruposlinuxasoitson
19 usuarios gruposlinuxasoitson19 usuarios gruposlinuxasoitson
19 usuarios gruposlinuxasoitson
 

More from Jose Pla

Master Data Management - MDM - Pasos para implementar MDM
Master Data Management - MDM - Pasos para implementar MDMMaster Data Management - MDM - Pasos para implementar MDM
Master Data Management - MDM - Pasos para implementar MDMJose Pla
 
7 habits of highly effective people plus what is a talanted resource
7 habits of highly effective people plus what is a talanted resource7 habits of highly effective people plus what is a talanted resource
7 habits of highly effective people plus what is a talanted resourceJose Pla
 
Beginning with vi text editor
Beginning with vi text editorBeginning with vi text editor
Beginning with vi text editorJose Pla
 
Defensa Proyecto Final de Graduación - MBA - Viabilidad de BI en el Gobierno ...
Defensa Proyecto Final de Graduación - MBA - Viabilidad de BI en el Gobierno ...Defensa Proyecto Final de Graduación - MBA - Viabilidad de BI en el Gobierno ...
Defensa Proyecto Final de Graduación - MBA - Viabilidad de BI en el Gobierno ...Jose Pla
 
Estudio de viabilidad de implementación de bi en el sector público de Costa Rica
Estudio de viabilidad de implementación de bi en el sector público de Costa RicaEstudio de viabilidad de implementación de bi en el sector público de Costa Rica
Estudio de viabilidad de implementación de bi en el sector público de Costa RicaJose Pla
 
Developing innovation
Developing innovationDeveloping innovation
Developing innovationJose Pla
 

More from Jose Pla (6)

Master Data Management - MDM - Pasos para implementar MDM
Master Data Management - MDM - Pasos para implementar MDMMaster Data Management - MDM - Pasos para implementar MDM
Master Data Management - MDM - Pasos para implementar MDM
 
7 habits of highly effective people plus what is a talanted resource
7 habits of highly effective people plus what is a talanted resource7 habits of highly effective people plus what is a talanted resource
7 habits of highly effective people plus what is a talanted resource
 
Beginning with vi text editor
Beginning with vi text editorBeginning with vi text editor
Beginning with vi text editor
 
Defensa Proyecto Final de Graduación - MBA - Viabilidad de BI en el Gobierno ...
Defensa Proyecto Final de Graduación - MBA - Viabilidad de BI en el Gobierno ...Defensa Proyecto Final de Graduación - MBA - Viabilidad de BI en el Gobierno ...
Defensa Proyecto Final de Graduación - MBA - Viabilidad de BI en el Gobierno ...
 
Estudio de viabilidad de implementación de bi en el sector público de Costa Rica
Estudio de viabilidad de implementación de bi en el sector público de Costa RicaEstudio de viabilidad de implementación de bi en el sector público de Costa Rica
Estudio de viabilidad de implementación de bi en el sector público de Costa Rica
 
Developing innovation
Developing innovationDeveloping innovation
Developing innovation
 

Recently uploaded

OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 

Recently uploaded (20)

OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 

Introducción a GNU - POSIX - LINUX

  • 1. GNU – Linux – UNIX Sistemas Operativos Autor: José Plá
  • 2. Estructura de directorios • bin – • boot – • Todo en linux es un archivo, desde los puertos seriales, discos duros y escaners. Para poder acceder a estos archivos se necesita un archivo especial. etc – • Directorio de inicio de Linux. El kernel del sistema se guarda en este directorio. dev – • Programas esenciales. Representan el minimo para un usuario utilice el sistema. Cosas como el shell y comandos básicos del sistema de archivos. Aquí se guardan los archivos de configuración del sistema. Desde los archivos de configuración del ambiente X, el registro de usuarios y scripts de inicio del sistema. Este es el más importante de los directorios para un SysAdmin. home – UNIX/Linux es un sistema operativo multiusuario. Cada usuario en el sistema se le crea una cuenta y un directorio para archivos personales. Este directorio se le llama el directorio hogar (home) del usuario. Es el directorio predeterminado de todo usuario, además de contener archivos de personalización propios de cada usuario. 2
  • 3. Estructura de directorios • lib – • mnt – • Paquetes opcionales de software. La idea es guardar bajo un mismo directorio las instalaciones de todos los paquetes que se instalen para así poder removerlos de forma más sencilla posteriormente. proc – • Los puntos para montar temporalmente los discos duros, discos removibles, CD-ROMs y hasta discos flexibles, se encuentran bajo este directorio. opt – • Las librerias del sistema que son necesarios para la operación básica del sistema se guardan en este directorio. Los módulos del kernel y la librería de C son unas de las muchas cosas que se guardan en este directorio. Este directorio es propio de sistemas Linux y tiene ciertas características especiales; no es parte real del sistema de archivos, sino un sistema de archivos virtual que provee acceso a información del kernel. Como por ejemplo ejecutando el comando ‘cat /proc/cpuinfo’. root – El administrador del sistema es conocido como “root”. El directorio de root no se encuentra bajo home, debido a que se corre el riesgo de que home esté en una partición por aparte, y que por alguna razón la partición no monte, entonces el administrador accedería como root para solucionar el problema; de haber estado bajo home, root hubiera tenido problemas para acceder al sistema. 3
  • 4. Estructura de directorios • sbin – • tmp – • Almacenamiento temporal. Todos los usuarios tienen acceso de lectura y escritura para este directorio. usr – • Programas esenciales que son ejecutados por root y mientras que el sistema inicia son guardados aquí. Usuarios normales no usan programas de este directorio. Este es el mayor de los directorios padre en un sistema UNIX/Linux. Todo lo no mencionado anteriormente va acá, programas, documentación, el código fuente del kernel, el sistema de ventanas X. Este es el directorio donde se instalará la mayoría de los programas. var – Bitácoras “logs” del systema y programas, cache y archivos bandera de diferentes programas, se guardan aquí. En resumen este es el directorio donde la información cambia constantemente. 4
  • 5. AYUDA S.O.S •¿Cómo se aprende UNIX/Linux? Leyendo •¿Qué voy a leer? MANuales Así como root es el superusuario, el comando man es el supercomando. Sus páginas se llaman manpages y esta dividido por secciones según la función. 5
  • 6. MANunales •El indice de manuales se divide en secciones, para una mayor facilidad de uso. •Normalmente las secciones se distribuyen de la siguiente manera, aunque esto puede cambiar según la distribución de Linux o Unix: – – – – – – – – Sección 1 Sección 2 Sección 3 Sección 4 Sección 5 Sección 6 Sección 7 Sección 8 comandos de usuario llamadas de sistema llamadas de bibliotecas C dispositivos (p.e. hd, sd) formatos de archivo y protocolos (p.e. wtmp, /etc/passwd, nfs) juegos (solo introducción) convenciones, paquetes macro, etc. (p.e. nroff, ascii) administración del sistema •Buscar por contenido: – apropos <palabra clave> • No se encuentra en todas las distribuciones. – man –k <palabra clave> • Requiere de un man indexado a través del comando catman o mandb, los cuales deben ejecutarse cada vez que se agreguen nuevos manpages al 6 manpath.
  • 7. Buscando MANs •Diferentes formas de busqueda: root@ubuntu:~# apropos crontab crontab (1) - maintain crontab files for individual users (V3) crontab (5) - tables for driving cron root@ubuntu:~# man -f crontab crontab (1) - maintain crontab files for individual users (V3) crontab (5) - tables for driving cron root@ubuntu:~# man -k crontab crontab (1) - maintain crontab files for individual users (V3) crontab (5) - tables for driving cron •Accesando las diferentes secciones del man root@ubuntu:~# man 1 crontab | head -7 CRONTAB(1) NAME crontab - maintain crontab files for individual users (V3) root@ubuntu:~# man 5 crontab | head -7 CRONTAB(5) NAME crontab - tables for driving cron CRONTAB(1) CRONTAB(5) 7
  • 8. Buscando Programas •which(1). which es utilizado para localizar un programa rápidamente. Este solo busca en su PATH y devuelve la primera instancia que encuentre y el camino del directorio hasta esta. root@ubuntu:~# which sh /bin/sh •whereis(1) funciona de manera similar a which, pero puede buscar además en las páginas man y los archivos de fuentes. root@ubuntu:~# whereis sh sh: /bin/sh /bin/sh.distrib /usr/share/man/man1/sh.1.gz 8
  • 9. Moviéndose entre directorios •Change Directory (cambiar directorio) cd cd cd cd cd cd $HOME  directorio ~  directorio  directorio  directorio .  directorio ..  directorio home del usuario home del usuario home del usuario anterior actual jerarquicamente superior •Y ¿como sé en cuál directorio estoy? pwd o echo $PWD 9
  • 10. Busqueda Avanzada •find El comando find(1) le permite al usuario buscar en el sistema de archivos con una rica colección de predicados de búsqueda. Los usuarios pueden especificar una búsqueda con determinados comodines, rangos de modificación u hora de creación, u otras propiedades avanzadas. find se va a demorar un poco en ejecutar, pues tiene que recorrer todo el árbol de directorios. Y si el comando se corre como usuario normal, van a mostrarse mensajes de permisos denegados en los directorios que solo root u otros usuarios específicos tengan acceso. 10
  • 11. Lab 1)mkdir -m 775 -p folder/numeros/{1/2/3/4/5,idiomas/ {espanol/uno/dos/tres/cuatro/cinco,english/one/two/three/four/five}} 2)find ~/folder -type d -exec touch {}/archivo ; 3)find ~/folder -name archivo -print | grep -E "(3|four|cinco)/archivo" | xargs -p rm -f 4)find ~/folder/* -name 3 -o -name four -o -name cinco | xargs -r ls -l 5)find ~/folder/* -type d | awk -F/ '$NF~/(3|four|cinco)/ {if($NF==3) {size=3}if($NF=="four"){size=4}if($NF=="cinco"){size=5} system("dd if=/dev/urandom of="$0"/"size"megas bs=1024 count=0 seek="1024*size"n"); system("ls -l "$0"/"size"megas")}' 6)find 7)find ~/folder -type f -size +4000000c -exec ls -l {} ; 11 ~/folder -path '/root/folder/numeros/1' -prune -o -type f -size
  • 12. Formas de Arranque •Esquemas de init: – sysinit • Es el primer esquema de arranque y el más utilizado, proviene del System V – runit • Viene a sustituir al antiguo sysinit, intenta simplificar el proceso en 3 etapas http://smarden.sunsite.dk/runit/ – Upstart • Iniciativa de sustitución universal para la automatización de tareas y servicios 12
  • 13. Sysinit o System V init •Se basa sobre el archivo /etc/inittab para definir un runlevel predeterminado. •Generalmente hay 8 niveles de funcionamiento para el sistema. •De estos 8, hay 3 que son reservados: – 0. Halt – 1. Single user mode – 6. Reboot Fuera de estos 3 niveles reservados, la mayoría de los UNIX/Linux utilizan sus propios niveles. 13
  • 14. Sysinit o System V init OS Runlevel AIX 2 Cent OS 3 Debian GNU/Linux 3 Gentoo Linux 3 Mac OS X 3 Red Hat Linux /Fedora 3o5 Slackware Linux 3 Solaris 5 Ubuntu 2 $ runlevel $ who -r El runlevel solo puede ser cambiado por root a través de los comandos telinit o init. 3 Suse Linux Se puede ver en que runlevel se encuentra el sistema por medio de los comandos: El runlevel predeterminado se indica en el archivo /etc/inittab en la entrada :initdefault: 14
  • 15. Sysinit o System V init •Cada runlevel tiene un directorio donde se encuentran las referencias a lo que debe o no debe estar corriendo $ pwd /sbin $ ll -d rc[0-9]* dr-xr-xr-x 2 bin dr-xr-xr-x 2 bin dr-xr-xr-x 2 bin dr-xr-xr-x 2 bin dr-xr-xr-x 2 bin bin bin bin bin bin 8192 8192 8192 8192 8192 Dec Aug Mar Feb Feb 17 2006 rc0.d 11 2007 rc1.d 5 2008 rc2.d 19 17:02 rc3.d 19 17:02 rc4.d •Los scripts que comienzan con S denotan “startup” (iniciar) mientras que los que comienzan con K denotan “kill” (matar) la tarea. Los números que le siguen a estas letras representan el orden de ejecución, del menor al mayor. $ ll rc4.d total 0 lrwxr-xr-x 1 root lrwxr-xr-x 1 root lrwxr-xr-x 1 root sys sys sys 32 Dec 17 2006 K451vxpbx_exchanged -> /opt/VRTSpbx/bin/vxpbx_exchanged 20 Dec 6 2006 S150autosec -> /sbin/init.d/autosec 32 Dec 17 2006 S450vxpbx_exchanged -> /opt/VRTSpbx/bin/vxpbx_exchanged •Los archivos bajo estos directorios son vínculos al archivo real, si se desea eliminar la activación automática de una tarea en un runlevel, no se elimina el archivo real, sino solo el vínculo. 15
  • 16. Runit •Orientado al monitoreo de servicios. •Puede instalarse solo para monitoreo de servicios y seguir usando sysinit. •Es independiente de init. •No necesita guardar en archivos el pid de los demonios (daemons), por lo que en caso de falla del sistema no hay errores debido a que el pid-file no se haya podido limpiar correctamente. •Brinda prioridad al log del sistema y de los servicios. •http://smarden.sunsite.dk/runit/ 16
  • 17. Runit •Supervisión de Servicios – Cada servicio esta asociado a un directorio del servicio y cada daemon del servicio correo como un proceso hijo de un proceso runsv de monitoreo que se ejecuta desde este directorio. El programa runsv provee una interfaz confiable para señalar al daemon del servicio y controlar el servicio y su supervisor. Normalmente el programa sv es usado para enviar comandos a través de esta interfaz y para solicitar información del estado acerca del servicio. – El programa runsv supervisa al daemon de servicio correspondiente. De forma predeterminada, un servicio se configura para estar arriba, lo que significa, si el servicio muere, será reiniciado. La configuración de runsv puede indicar lo contrario si así se desea. 17
  • 18. Runit •Estado limpio del proceso – Un proceso antes de ser iniciado, puede necesitar un prechequeo del estado del sistema, para así garantizar un buen funcionamiento del daemon a iniciar. – En sysinit esto hay que hacerlo con un script que garantice un estado limpio del sistema para la correcta ejecución del daemon, el problema esta en que la configuración de estos scripts es por lo general manual, por lo que conlleva a nuevos puntos de falla. 18
  • 19. Upstart •De acuerdo con Canonical, Upstart es un reemplazo de SysV init basado en eventos. Se pretende de que en futuras versiones llegue a remplazar a crontab, y demás programas de calanderización de tareas. •El venerable /etc/inittab sigue existiendo, pero todo lo que hace es indicar cual runlevel es el predeterminado. Todo lo demás es controlado por archivos de configuración en /etc/event.d/ (en Fedora) o /etc/init/jobs.d/ (en Ubuntu). Estos archivos sustituyen ciertas líneas en /etc/inittab; por ejemplo el archivo /etc/event.d/tty1 contiene: start on stopped rc2 start on stopped rc3 start on stopped rc4 stop on runlevel 0 stop on runlevel 1 stop on runlevel 6 respawn exec /sbin/mingetty tty1 •Mientras que en SysV init, un equivalente en /etc/inittab se leería: 1:2345:respawn:/sbin/mingetty tty1 http://upstart.ubuntu.com 19
  • 20. Upstart •Al inicio init lee el directorio /etc/event.d, donde cada archivo describe un proceso que debe ser monitoreado. Esto incluye los pormenores sobre las dependencias del estado del sistema antes de iniciar el proceso, y que eventos pueden causar que el proceso sea iniciado o detenido. •Estados de transición: –Waiting to Starting y Stopped to Starting: ejecuta en el shell el script de inicio del proceso. –Starting to Running y Restarting to Running: reinicia los procesos. –Running to Restarting: ejecuta en el shell el script de reinicio del proceso. –Starting to Stopping, Running to Stopping y Restarting to Stopping: envía señales a los procesos que estén corriendo; ejecuta en el shell el script para detener el proceso. •Además de estos esquemas de inicio, hay otros en el sector privado que ya manejan lo que actualmente realiza Upstart además de muchas de sus ambiciones, estos esquemas son SMF de Solaris y launchd de Apple; ambos basados en XML. 20
  • 21. Manejadores de Paquetes •Todo SO tiene alguna forma de instalar aplicaciones y poder ver que es lo que esta debidamente instalado; estas son aplicaciones independientes que manejan la información de lo que se encuentra instalado, lo que se puede desinstalar y algunas opciones más de otras aplicaciones o utilidades a desinstalar. •¿Si no tuvieramos manejadores de paquetes? –No sabríamos que hay para instalar. –No podríamos obetner rapidamente una lista de lo que esta instalado. –No tendríamos un control automatico de las dependencias. •Instalaríamos software sin que los recursos de otras aplicaciones esten completos. •Desinstalariamos software inhabilitando otras aplicaciones que dependen de este. –No podríamos desinstalar un software completo si este se encuentra distribuido por todo el sistema de archivos. Las librerías perdidas abundarían. 21
  • 22. ¿Repositorios? •Los manejadores de paquetes (Package Managers) mantienen un lista de los repositorios de software. •Los repositorios: –Mantienen todos los paquetes que el sistema. –Contienen todos los paquetes que se pueden instalar en el sistema. –Existen en su forma oficial por quien mantiene el sistema o distribución y a los que se ofrece un soporte oficial, como también externos, donde se proveen paquetes extra general mente versiones beta o de algún proyecto específico. 22
  • 23. PMs según el OS •APT, el cual se encuentra en sistemas basados en Debian Linux. También posee sus evoluciones en nivel gráfico como las populares interfaces de Aptitude y Synaptic. •RPM, que es el manejador de paquetes de Red Hat. Además se puede instalar su manejador más completo con instalaciones automáticas llamado Yum, siendo también mucho más amigable al usuario que su predecesor RPM. •Ports, comúnmente encontrado en los sistemas tipo BSD. DarwinPorts es un ejemplo de esto en Mac. •Portage, usado exclusivamente en Gentoo Linux. •Yast, como el PM de SUSE. •Fedora y Debian representan la mayoría del universo de Linux. Fedora, Red Hat, CentOS, Lineox, White Box Linux, y varios otros utilizan Yum. Los hijos de Debian son muchos: Ubuntu, Knoppix, Linspire, Mepis para nombrar algunos pocos. 23
  • 24. PMs por CLI - YUM •Mejor usar YUM vs RPM; Yum es evolución, mejor manejo de dependencias, de limpieza del sistema, usabilidad y provee varias tareas automáticas. RPM para obtener información sobre paquetes. YUM para instalar o desinstalar paquetes. •Instalar y remover uno o multiples paquetes: # yum install 'foo' # yum remove 'foo' •Actualizar un paquete instalado: # yum update 'foo' •Lista las actualizaciones disponibles para los paquetes instalados: # yum list updates •Actualiza el sistema completo: # yum update •Realiza actualizaciones automáticas diarias: # chkconfig --level 345 yum on; service yum start •Buscar paquetes cuando se sabe el nombre: $ yum list 'foo' •Buscar un paquete cuando no se esta seguro del nombre, usando expresiones regulares: $ yum search 'foo*' $ yum search '*foo?' 24
  • 25. PMs por CLI - YUM •Encontrar a que paquete pertenece un archivo específico: $ yum provides 'foo' •Yum posee grupos de paquetes que se instalan en masa mediante una única instrucción, se puede ver una lista de estas plantillas mediante: $ yum grouplist •Estos son manejados con casi los mismos comandos que se manejan los paquetes individuales, usando el nombre de la plantilla entre comillas simples: # yum groupinstall 'FTP Server' # yum groupupdate 'FTP Server' # yum groupremove 'FTP Server' •Por defecto, Yum realiza un query a los repositorios remotos cada vez que es ejecutado; los cuales se encuentran listados en /etc/yum.repos.d; esto puede tomar algun tiempo por lo que puede volverse poco práctico, esto se puede evitar creando un cache para Yum, añadiendo la siguiente línea en /etc/yum.conf: keepcache=1 - Posteriormente ejecuten yum de la siguiente manera yum -C 'options' cuando se desee utilizar el cache local en lugar de consultar los repositorios remotos. 25
  • 26. PMs por CLI - RPM •RPM es usualmente más rápido que Yum, cuando se trata de buscar información sobre paquetes, como saber si estan instalados: $ rpm -q 'foo' •O para listar archivos contenidos por un paquete ya instalado: $ rpm -ql 'foo' •A qué paquete pertenece un archivo? $ rpm -qf '/usr/bin/foo' •Lista todos los paquetes instalados y salva la lista en un archivo: $ rpm -qa 'foo' | tee rpmlist.txt 26
  • 27. PMs por CLI - Aptitude •Aptitude viene siendo para apt-get, lo que Yum es para RPM, aunque existe una restricción, no es recomendable usar Aptitude y apt-get a la vez, dado que usan registros diferentes que podrían padecer de entradas falsas. •Estos comandos instalan, actualizan, reinstalan o remueven un paquete: # aptitude install 'fie' # aptitude reinstall 'fie' # aptitude remove 'fie' # aptitude remove --purge 'fie' •Muestra todas las versiones de los paquetes: # aptitude -V install 'fie' •Se puede bajar un paquete sin necesidad de instalarlo: # aptitude -d install 'fie' •Actualice su listado de paquetes en cache, actualice el sistema, actualice hacia la siguiente versión: # aptitude update # aptitude upgrade # aptitude dist-upgrade •Aptitude muestra la información del paquete sobre los que se encuentren instalados: $ aptitude show 'fie' •Muestra paquetes disponibles para instalar: $ aptitude search 'fie' 27
  • 28. PMs por CLI - Apt-file •Instalar y crear una lista local de los paquetes: # aptitude install apt-file # apt-file update •Encontrar el paquete al que pertenece un archivo específico: $ apt-file search 'fum' •También se puede usar para buscar paquetes cuando no se conoce su nombre exacto: $ apt-file list 'fum' Esto además muestra todos los archivos en un paquete. 28
  • 29. PMs por CLI – dpkg •dpkg es semejante a RPM, dado a que opera en paquetes de forma individual, sin rastrear dependencias. •Los siguientes comandos buscan si un paquete esta instalado en el sistema y muestra un listado de los archivos que componen este paquete: $ dpkg -l | grep nano ii nano 1.3.12-2 free Pico clone with some new features $ dpkg -L nano /. /etc /etc/nanorc ... •Busca a que paquete pertenece un archivo: # dpkg -S '/sbin/fee' •Se puede descomponer un .deb sin necesidad de instalarlo, lo cual es muy útil para examinar un paquete o extraer archivos específicos que se necesiten reemplazar: # dpkg --unpack 'fee' 29
  • 30. ¿Qué es el Kernel? •Parte esencial de un sistema operativo que provee los servicios más básicos del sistema. Se encarga de gestionar los recursos como el acceso seguro al hardware de la computadora. Se encarga también del multiplexado, determinando qué programa accederá a un determinado hardware si dos o más quieren usarlo al mismo tiempo. El kernel también ofrece una serie de abstracciones del hardware para que los programadores no tengan que acceder directamente al hardware, proceso que puede ser complicado. 30
  • 31. Tipos de Kernel •Kernel monolítico –Todas las funcionalidades posibles están integradas en el sistema. Se trata de un programa de tamaño considerable que deberemos recompilar al completo cada vez que queramos añadir una nueva posibilidad. Esta es la estructura original de Linux. Por tratarse de una técnica clásica y desfasada el creador de Linux fue muy criticado. •Kernel modular –Se trata de la tendencia actual de desarrollo. En el kernel se centran la funcionalidades esenciales como la administración de memoria, la planificación de procesos, etc. Sin embargo no tiene sentido que el núcleo de un sistema operativo englobe toda la parafernalia para comunicarse con todas las posibles tarjetas de vídeo o de sonido. En otros sistemas operativos esto se soluciona con unos ficheros proporcionados por el fabricante llamados drivers. En Linux se creó una interfaz adecuada para posibilitar el desarrollo de módulos que cumplieran esas funcionalidades. Esos módulos pueden ser compilados por separado y añadidos al kernel en tiempo de ejecución. •Estructura de microkernel –Esta técnica pretende reducir a su mínima expresión el kernel, dejando a los niveles superiores el resto de las funcionalidades. Existen algunos kernels que lo utilizan, si bien el que centra nuestra atención es Hurd. Se trata del último kernel GNU llamado a sustituir a Linux como núcleo del sistema operativo. Aunque esta estrategia de diseño es tan antigua como la modular, no ha sido tomada en cuenta hasta ahora debido a las limitaciones de rendimiento que tenía. 31
  • 32. ¿Quién mantiene el Kernel en LINUX? •Linux Fundation Organization –Es de vital importancia para el creador de Linux, Linus Torvalds y el grupo de desarrolladores del kernel mantenerse independientes de la industria. La fundación Linux patrocina a individuos clave del grupo de desarrolladores del kernel para que su enfoque sea único. Además la fundación es el punto de reunión entre la comunidad, los desarrolladores del kernel y la industria. •Kernel Organization –Son quienes se encargan de desarrollar y mantener el kernel de Linux, el grupo en si es dirigido por Linus Torvalds y en su sitio http://www.kernel.org mantienen disponible las últimas actualizaciones de las más recientes versiones del kernel. Es un grupo abierto que acepta recibir trabajo voluntario de personal calificado; aunque algunos miembros se dedican tiempo completo al proyecto, la organización en si es sin fines de lucro. 32
  • 33. Kernel Download •El kernel se puede conseguir preferiblemente desde los mirrors de http://www.kernel.org : –Parches. –Versiones recientes. –Código fuente. •Además existen versiones específicas para cada distribución. 33
  • 34. Actualizando el kernel •Cuando se compila el kernel todo archivo resultante se ubica en el directorio del código fuente. •Pasos para actualizar: –Bajar el kernel. –Configurar el kernel. –Compilar el kernel. –Realizar una copia de seguridad del kernel antiguo. –Ubicar el nuevo kernel en la carpeta especificada. –Modificar el manejador de arranque para que apunte al nuevo kernel. –Reiniciar el servidor. 34
  • 35. Notas para compilar el kernel •Comandos Paso a Paso: – bzip2 -dc linux-2.6.XX.tar.bz2 | tar -xvf – – mv linux-2.6.XX /usr/scr/ – rm /usr/scr/linux – ln –s /usr/scr/linux-2.6.XX /usr/scr/linux – cd /usr/scr/linux-2.6.XX – make clean – make mrproper – make config ( existen opciones de configuración alternas ) – make – make install – mv vmlinuz /boot/vmlinuz-2.6.XX – mv System.map /boot/System.map-2.6.XX – rm /vmlinuz – ln –s /boot/vmlinuz-2.6.XX /vmlinuz 35
  • 36. Notas para editar GRUB para que arranque con el nuevo kernel •Editar /boot/grub/menu.lst: –Ejemplo configuración anterior: title root kernel Linux (hd0,1) /vmlinuz root=/dev/hda2 ro – Ejemplo configuración modificada: title Linux root (hd0,1) kernel /vmlinuz root=/dev/hda2 ro title root kernel Linux recovery (hd0,1) /vmlinuz.old root=/dev/hda2 ro •/vmlinuz.old debe ser un puntero al kernel anterior en /boot 36
  • 37. Configurando la LAN en la familia Debian •/etc/network/interfaces –este archivo contiene la configuración de cada una de las tarjetas de red. –Las líneas que empiecen con la palabra auto indica las interfaces que se activaran al inicio del sistema o cuando se ejecute el comando ifup –a –Ejemplo configuración estática: iface eth0 inet static address 192.168.1.5 netmask 255.255.255.0 gateway 192.168.1.254 – Ejemplo configuración dinámica: auto eth0 iface eth0 inet dhcp •Ifconfig: –Es el comando por definición para el manejo de las interfaces de red en POSIX. • • • • • • • • • • [root@ubuntu]# ifconfig eth0 192.168.99.14 netmask 255.255.255.0 up [root@ubuntu]# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:80:C8:F8:4A:53 inet addr:192.168.99.14 Bcast:192.168.99.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) Interrupt:9 Base address:0x5000 37
  • 38. Rutas estáticas •/etc/network/interfaces –Bajo la configuración de cada interfaz se añade la ruta deseada. auto eth0 iface eth0 inet static address 192.168.1.42 network 192.168.1.0 netmask 255.255.255.128 broadcast 192.168.1.0 up route add default gw 192.168.1.200 down route del default gw 192.168.1.200 • Comando route: [root@ubuntu]# route add default gw 192.168.99.254 [root@ubuntu]# route -n Kernel IP routing table Destination Gateway Genmask Flags 192.168.99.0 0.0.0.0 255.255.255.0 U 127.0.0.0 0.0.0.0 255.0.0.0 U 0.0.0.0 192.168.99.254 0.0.0.0 UG Metric 0 0 0 Ref 0 0 0 Use 0 0 0 Iface eth0 lo eth0 38
  • 39. Varias interfaces una sola NIC •Una forma un poco más compleja pero que es una de las facilidades que nos brinda ifconfig, es configurar varias interfaces en una sola tarjeta de red. –Ejemplo en el archivo /etc/network/interfaces: auto eth0 eth0:1 iface eth0 inet static address 192.168.0.100 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1 iface eth0:1 inet static address 192.168.0.200 network 192.168.0.0 netmask 255.255.255.0 39
  • 40. Secure Shell SSH •Secure Shell nos permite ingresar a un sistema a través de la red de forma segura, para ejecutar comandos de forma remota y mover archivos de un sistema a otro. •Secure Shell provee una serie de comandos que remplazan comandos inseguros como rlogin, rsh, rcp, ftp, y telnet. •Es independiente de los demás servicios de red dado a que utiliza un demonio propio. 40
  • 41. Métodos de SSH Método de autentificación Ventajas Desventajas Password Requiere poca o ninguna configuración. Conveniente para usuarios viajeros que prefieren no mantener claves encriptadas privadas. El usuario debe digitar el password cada vez que ingresa al servidor. Es menos seguro, dado que al momento de transferir la clave pasa entre servidores sin ser encriptadas. Public-key Método seguro que no necesita de un password para su autentificación. Conveniente para usuarios que corren scripts de forma remota. Difícil de administrar dado a que las claves están pares entre servidores. Host-based Simple y fácil de administrar. Conveniente en redes seguras, dado que el método revisa solo el servidor, no individualmente los usuarios. El menos seguro de los métodos de autentificación, porque múltiples usuarios pueden establecer conexiones desde un cliente, usando solo la llave par del servidor. 41
  • 42. Configuración de Autentificación con Llave Pública - SSH •En orden de generar las llaves de seguridad para un usuario: profe@ubuntu:~$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/profe/.ssh/id_rsa): Created directory '/home/profe/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/profe/.ssh/id_rsa. Your public key has been saved in /home/profe/.ssh/id_rsa.pub. The key fingerprint is: 7d:58:42:a9:ba:84:ed:19:6c:08:ea:ad:17:d7:29:ba profe@ubuntu The key's randomart image is: +--[ RSA 2048]----+ | .. | profe@ubuntu:~$ ls -l .ssh | .. | | .. . | total 8 | . .. + | | . . =..S o . | -rw------- 1 profe profe 1675 2009-07-26 20:13 id_rsa |. .ooBo . | |. . ++.+ | -rw-r--r-- 1 profe profe 394 2009-07-26 20:13 id_rsa.pub | . + + | | .oE. | +-----------------+ 42
  • 43. Configuración de Autentificación con Llave Pública - SSH •/etc/ssh/sshd_config –Este es el archivo de configuración del servidor de ssh. Algunos parámetros que necesitamos revisar son: PermitRootLogin yes RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys • Permisos de los archivos y directorios ssh: Archivo/Directorio Permisos $HOME (directorio hogar) drwx------ o drwxr--r-- $HOME/.ssh drwx------ o drwxr--r-- $HOME/.ssh/id_rsa y id_dsa -rw-r--r-- o -rw------ $HOME/.ssh/id_rsa.pub y id_dsa.pub -rw-r--r-- o -rw------ $HOME/.ssh/config -rwx------ 43
  • 44. Configuración de Autentificación con Llave Pública - SSH •Copiar la llave pública en el sistema cliente al directorio home del servidor: # cat $HOME/.ssh/id_rsa.pub | ssh remoteuser@remotehost ´cat - >> $HOME/.ssh/authorized_keys • Listo para ingresar sin password: root@ubuntu:~# ssh profe@ubuntu The authenticity of host 'ubuntu (127.0.1.1)' can't be established. RSA key fingerprint is ec:51:30:73:aa:71:c1:1b:09:29:21:cc:00:76:6d:38. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'ubuntu' (RSA) to the list of known hosts. 44
  • 45. Laboratorio SSH •Utilizar Putty y puttygen –Putty es un programa de cliente de terminales y puttygen es un generador de claves rsa para putty, que puede usarse para autentificaciones ssh usando putty como cliente. Sitio oficial de putty Putty.exe Puttygen.exe 45
  • 46. NTP •Network Time Protocol (NTP) –En ambientes de trabajo con redes internas que abarcan varias zonas horarias, es importante mantener la hora sincronizada entre todos los servidores. •Revisión de logs de aplicaciones o la bitácora del sistema. •Para efectos de seguridad, como los tiquetes con registro de tiempo de Kerberos. –El objetivo es mantener un servidor con la hora oficial, así todos los demás servidores se sincronizan contra este servidor, manteniendo una hora estándar respetando las zonas horarias. •Componentes: –ntp.conf –ntpd –ntpdate 46
  • 47. NTP Archivo de Configuración •/etc/ntp.conf –Cuando el servidor arranca, ntpd leé el archivo de configuración ntp.conf, para así determinar las fuentes de sincronización y el modo de operación. • Los siguientes 4 ejemplos muestran la configuración del servidor de tiempo y del método de operación a utilizar: – – – – server address [options ...] peer address [options ...] broadcast address [options ...] manycastclient address [options ...] 47
  • 48. NTP por DHCP •Si el servidor de DHCP esta configurado para propagar la información del servidor NTP, entonces esta información será usada de forma automática. –Realizar una copia de /etc/ntp.conf a /etc/ntp.conf.dhcp, reemplazando las líneas del servidor con la información recibida del servidor de DHCP, y reiniciando el servicio NTP. –Para que esto funcione, la opción “ntp-servers” debe encontrarse en la sección de “request” en el archivo /etc/dhcp3/dhclient.conf. –Ejemplo: request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name, netbios-name-servers, netbios-scope, interface-mtu, ntp-servers; –En caso de preferir usar otro servidor NTP para la sincronización que no sea el distribuido por el DHCP, entonces este también es un buen lugar para desabilitar esta opción. •Para habilitar la distribución de NTP a través del servidor DHCP, en el paquete de Debian dhcp3-server, hay que añadir la siguiente opción en el archivo /etc/dhcp3/dhcpd.conf: option ntp-servers ntp1.foo.bar, ntp2.foo.bar; 48
  • 49. ntpdate •Este comando existe para ser usado en clientes que no mantienen una conectividad de red permanente. –ntpdate es ejecutado cada vez que una interfaz de red es iniciada. Para ajustar este comportamiento, el archivo /etc/network/if-up.d/ntpdate debe ser editado. –Ejemplo: root@ubuntu:/usr/share/doc# date mie sep 2 06:43:28 CST 2009 root@ubuntu:/usr/share/doc# ntpdate pa.pool.ntp.org 20 Sep 22:52:44 ntpdate[27773]: step time server 200.35.147.189 offset 1613201.384755 sec root@ubuntu:/usr/share/doc# date dom sep 20 22:53:11 CST 2009 49
  • 50. NFS (Network File System) •NFS es un protocolo estándar de Internet, creado por Sun Microsystems (actualmente Oracle) en 1984. •Fue desarrollado para permitir compartir archivos entre sistemas que residan en la misma área de red local. •En caso de no tener NFS instalado en el servidor, intentar la seguiente línea: root@ubuntu:~# aptitude install nfs-common nfs-client nfs-server •Puerto de red: root@ubuntu:~# rpcinfo -p | grep nfs 100003 3 udp 2049 nfs 100003 3 tcp 2049 nfs 50
  • 51. NFS – Configurando el Servidor •Existen 3 archivos cruciales, los cuales hay que editar para configurar el servidor NFS, /etc/exports, /etc/hosts.allow y /etc/hosts.deny . Realmente solo /etc/exports es necesario, pero sin los otros dos, se degaría el servidor abierto a ataques de seguridad. –/etc/exports Este archivo contiene una lista de entradas, donde cada una indica un volumen que es compartido y con cuales permisos. Un par de líneas de ejemplo: /usr/local 192.168.0.1(ro) 192.168.0.2(ro) /home 192.168.0.0/255.255.255.0(rw) –/etc/hosts.allow & /etc/hosts.deny Estos dos archivos especifican cuales computadoras en la red, pueden usar servicios desde este servidor. Cada línea contiene una entrada indicando un servicio y una lista de clientes. 1. Revisa primero el archivo hosts.allow, si el cliente se encuentra listado para el servicio solicitado, entonces se le concede acceso. 2. Si el cliente no se encuentra en el archivo hosts.allow entonces se procede a revisar el archivo hosts.deny, si el cliente se encuentra en este último archivo, se le niega el acceso. 3. En caso de que el cliente no esté especificado en ninguno de los dos archivo, el acceso es concedido. 51
  • 52. NFS - Lab •Exportando sin percistencia: root@ubuntu:~# exportfs -o rw,sync,fsid=0,crossmnt *:/home/profe root@ubuntu:~# exportfs -v /home/profe <world>(rw,wdelay,crossmnt,root_squash,no_subtree_check,fsid=0) root@ubuntu:~# showmount -e localhost Export list for localhost: /home/profe * root@ubuntu:~# mkdir /home/alumno/profesdir root@ubuntu:~# mount -t nfs -o rw,users,exec,sync localhost:/home/profe /home/alumno/profesdir root@ubuntu:~# showmount -a All mount points on ubuntu: 127.0.0.1:/home/profe root@ubuntu:~# df /home/alumno/profesdir Filesystem 1K-blocks Used Available Use% Mounted on localhost:/home/profe 7611904 2218688 5006592 31% /home/alumno/profesdir root@ubuntu:~# ll /home/profe total 20 drwxr-xr-x 2 profe profe 4096 2009-09-01 00:45 carpeta root@ubuntu:~# ll /home/alumno/profesdir total 20 52 drwxr-xr-x 2 profe profe 4096 2009-09-01 00:45 carpeta
  • 53. Samba •Es una implementación gratuita del protocolo SMB/CIFS; originalmente desarrollado por el australiano Andrew Tridgell como un proyecto de graduación para su Phd en la Universidad Nacional de Australia en 1992, mientras trabajaba para DEC. –SMB (Server Message Block), usado para proveer acceso compartido a impresoras, archivos y otros dispositivos del nodo con el resto de la LAN. Desarrollado por Barry Feigenbaum mientras trabajaba con IBM desarrollando para DOS y OS/2 además participo activamente en la elaboración del estándar NETBIOS. SMB siguió su evolución junto con Microsoft, puliendo muchas de las quejas por desempeño, además de hacer pública su especificación en la cual se basan las implementación de SMB en VMS, varias versiones de UNIX y Linux en conjunto de CIFS (Common Internet File System (CIFS) File Access Protocol) . –Actualmente el proyecto de SAMBA es mantenido por un grupo de desarrollo usando el licenciado bajo la ampliamente usada GNU GPL. www.samba.org •Los servicios de Samba son implementados a través de dos demonios: –Smbd •Provee los servicios para compartir archivos e impresoras. –Nmbd •Comprende el servicio de traducir entre el identificador NetBIOS y la dirección IP. 53
  • 54. Descargar SAMBA código fuente •Por seguridad samba viene encriptado para así comprobar el buen estado de los archivos con el código fuente. En esta sección se utiliza la herramienta de verificación GPG de GNU. –Utilizamos wget para descargar los archivos mkdir samba && cd samba wget ftp://us1.samba.org/pub/samba/samba-latest.tar.asc wget ftp://us1.samba.org/pub/samba/samba-latest.tar.gz wget ftp://us1.samba.org/pub/samba/samba-pubkey.asc –Ahora a verificar la descarga y preparar el directorio con el código fuente gpg --import samba-pubkey.asc gzip -d samba-latest.tar.gz gpg --verify samba-latest.tar.asc tar -xvf samba-latest.tar cd samba-3.4.2 54
  • 55. Compilar SAMBA código fuente •El crucial momento de compilar, como ya habíamos mencionado anteriormente se necesitan ciertas aplicaciones antes de empezar con el proceso, por ejemplo haber instalado “make” y “gcc”, aunque para SAMBA necesitamos algo más. –En este caso particular samba no viene con un archivo “configure” listo para instalar, pero sí con un script para crear este archivo faltante. aptitude install autoconf ./autogen.sh –Listo ahora personalizamos la instalación como los directorios involucrados y por último instalamos: ./configure -prefix=/opt/samba/samba-3.4.2 -with-configdir=/etc/samba -with-privatedir=/etc/samba/private -mandir=/usr/share/man make make install 55