Sei sulla pagina 1di 166

SISTEMA

OPERATIVO
GNU/LINUX
Linux LPIC-1
Que es Linux?
Linux es un sistema operativo libre de 32 ó 64
bits .Linux es distribuido bajo la Licencia
General Pública de GNU, que significa que
puede ser distribuido, copiado y modificado
gratuitamente.
Tiene todas las prestaciones que se pueden
esperar de un sistema Unix moderno tales
como: multitarea, multiusuario,
multiplataforma, multiprocesador, memoria
virtual, entre muchas otras.
De Donde Proviene?
Linux fue escrito por un estudiante de la
República de Finlandia llamado Linus
Torvalds en el año de 1991 con la ayuda de
varias personas a nivel mundial. Torvalds
estuvo trabajando con MINIX, un pequeño
sistema operativo, pero descubrió que tenia
algunos defectos .
y fue por esto que empezó a crear su propio
sistema operativo, el cual esta siendo utilizado
cada día mas por grandes empresas , así mismo
cada día aumenta el numero de programas y
aplicaciones desarrolladas para esta plataforma.
Beneficios Con Linux
Linux es muy robusto, estable y rápido: Ideal
para servidores y aplicaciones distribuidas. A
esto se añade que puede funcionar en máquinas
humildes: Linux puede correr servicios en un
x86 a 200 MHz con calidad.
Linux es libre: Esto implica no sólo la
gratuidad del software, sino también que
Linux es modificable y que Linux tiene una
gran cantidad de aplicaciones libres en
Internet.
Linux ya no está restringido a personas con
grandes conocimientos de informática: Los
desarrolladores de Linux han hecho un gran
esfuerzo por dotar al sistema de asistentes de
configuración y ayuda, además de un sistema
gráfico muy potente.
Caracteristicas
Linux es un sistema operativo multiusuario y
multitarea ; esto significa que el sistema
operativo puede gestionar varias tareas y
usuarios de manera simultanea.
Para ello utiliza el concepto de tiempo
compartido que significa que el sistema
operativo mantiene una lista o cola de tareas
en espera de ejecución, compartiendo el
tiempo y los recursos del sistema.
Multitarea
El ordenador puede estar haciendo varias
cosas a la vez, y no tendrá que esperar a que
acabe una para hacer otra, la multitarea esta
controlada por el sistema operativo no por
las aplicaciones, por lo que a diferencia de
otros sistemas operativos nunca se quedara
parado por culpa de una mala aplicación que
consuma todos los recursos del ordenador.
Multiusuario
Puede haber varias personas usando el
ordenador, compartiendo el microprocesador,
así puede ponerle un par de pantallas y
teclados y estar otra persona navegando por
Internet, escribiendo una carta, mientras
usted esta en otra haciendo otra cosa
completamente diferente, y estaran ambos en
el mismo ordenador. Linux garantiza la
privacidad y la seguridad de los datos entre
usuarios.
Estructura
En la estructura de Linux aparecen cuatro
elementos situados en bloques diferentes,
cada uno de los cuales tiene
encomendado una función:

* Hardware.
* Núcleo o Kernel.
* Shell.
* Usuario
Tipos De Archivos
Linux gestiona varios tipos de archivos; para
él casi todos los objetos se consideran
archivos. Los tipos de archivos en Linux son
los siguientes:

* Archivos Ordinarios
* Archivos Vinculos
* Archivos Directorios
* Archivos Especiales
 Ordinarios Y Vinculos
* Archivos ordinarios.: Contienen la
información con la que trabaja cada usuario.
Normalmente son archivos que contienen
texto, programas escritos por el usuario en
lenguaje C, etc

* Archivos vinculos No es
específicamente una clase de archivo. Es
un segundo nombre asignado a un
archivo.
Directorios Y Especiales
* Directorios. Son archivos especiales que
contienen referencias a otros archivos.
Cuentan con información sobre archivos
ordinarios, subdirectorios, vínculos, vínculos
simbólicos, etc

* Especiales. Suelen representar dispositivos


físicos como unidades de almacenamiento,
impresoras, terminales, etc.
Estructura De Archivos

El punto de partida es el directorio raíz,


representado por el / . Dentro de cada
directorio no hay limitación en el número de
archivos y de directorios. Se llama árbol de
directorio a la estructura que contiene el
sistema de archivos
necesario para utilizar Linux. Este árbol
directorio parte del directorio raíz.
Estructura De Directorios
Estructura De Directorios
Estructura De Archivos
Tipo Dispositivo
hd Discos duros IDE
sd Discos dduros SCSI
scd Cdrom SCSI
st Unidades de cinta SCSI
ht Unidades de cinta IDE
fd Unidades de disquete
lp Puertos Paralelos
tty Terminales o consolas
pty Terminates remotas
tyys Puertos seriales
cua Puertos de comunicacion
Estructura De Archivos

Los dispositivos que admiten particiones


generalmente estas se designan con letras, asi
por ejemplo las unidades IDE que son las mas
comunes en cualquier PC actual su
designación sería la siguiente

Canal IDE Dispositivo Linux


Primario Maestro /dev/hda
Primario Esclavo /dev/hdb
Secundario Maestro /dev/hdc
Secundario Esclavo /dev7hdd
Identificar y editar configuraciones de hardware

Inspección de dispositivos:

Comandos:
Ispci: muestra todo Io conectado aI bus pci:
-s id: muestra Ia info de ese dispositivo.
-v: muestra todos Ios detaIIes.
Lsusb: muestra Ios dispositivos usb conectados:
-d id: muestra Ia info de ese dispositivo.
-v: muestra detaIIes.
Lsmod: muestra Ios móduIos (drivers) cargados
actuaImente.

Los datos deI hardware están aImacenados en /proc y


/sys, mediante cat podemos mostrarIo.
Identificar y editar configuraciones de hardware

Tipos de dispositivos:

CoIdpIug: es necesario apagar eI pc para conectar eI


dispositivo, como tarjetas PCI, dispositivos IDE, etc.

HotpIug: permite conectar/desconectar en caIiente, ej: usb.


Cuando se conecta un dispositivo hotpIug automáticamente se
activa un evento Udev que actuaIiza Ios dispositivos en Idev.
Identificar y editar configuraciones de hardware

Dispositivos de aImacenamiento:
CuaIquier dispositivo de aImacenamiento se identifica en un
archivo dentro de /dev. EI nombre deI archivo depende deI tipo de
dispositivo (SATA, IDE...) y de Ias particiones que este tenga:

Tipo Criterio de Ejemplo


Nombremiento
IDE CanaI IDE usado, /dev/hdb1: 1ª partición
Master/SIave y deI primer canaI maestro
particiones
SATA Por Ia BIOS y /dev/sda2: 2ª partición
particiones deI primer disco.
SSD (Dispositivos Por Ia BIOS y /dev/sdc1 (como si fuese
extraibles) particiones sata /sda...)
Inicio Boot del sistema
Cargador de boot (BootIoader):
Los principaIes son Grub y LiIo, a estos también se Ies puede
añadir parámetros como:
Parametro Descripcion Ejemplo

acpi Conecta/desconecta eI soporte acpi=off


ACPI
init Define otro programa en Init=/bin/bash
Iugar de /sbin/init
mem Define cuanta ram estará mem=512
disponibIe
maxcpus Nº máximo de núcIeos. maxcpus=2

quiet No muestra Ia mayoría de Ios quiet


mensajes de inicio
vga Modo de video vga=773

root Define partición raiz root=/dev/sda3


diferente a Ia deI bootIoader
ro o rw ReaIiza eI montaje en sóIo ro
Iectura
Inicio Boot del sistema
También podemos modificar eI runIeveI iniciaI, todo se puede
configurar desde grub y IiIo.

Mensajes de inicio:
Para mostrar Ios mensajes de inicio quitaríamos quite y spIash de
Ia Iínea de carga deI kerneI. Para inspeccionar eI proceso de
inicio usamos dmesg y observaríamos Ios mensajes de
IvarIIogIdmesg.
Cambiar runIeveIs, apagar y reiniciar eI sistema

EI runIeveI es eI niveI de ejecución deI sistema, eI programa


/sbin/init que es invocado tras eI bootIoader identifica el niveI
de ejecución metido como parámetro en Ia carga deI kerneI o
mirandolo en /etc/inittab. Luego carga Ios programas, script y
servicios indicados en ese archivo. La mayor parte de Ios script
ejecutados por init se guardan en /etc/init.d pero en otras distros
es en /etc/rc.d.
Cambiar runIeveIs, apagar y reiniciar eI sistema

Los niveIes de ejecución:

Se enumeran deI O aI 6 y tienen eI formato:


● id: nombre de hasta 4 caracteres para identificar Ia entrada en inittab.
● runIeveIs: es Ia Iista de runIeveIs para Ios que se ejecutará.
● acción: eI tipo de acción: sysinit (inicio deI sistema), wait (se ejecuta y se
espera su finaIización) y ctrIaItdeI (se ejecuta cuando se puIsa
controI+aIt+deI o se reciba señaI SIGINT).
● proceso: comando que se activará.
Cambiar runIeveIs, apagar y reiniciar eI sistema

Numeración de Ios runIeveIs:

● O: Apagar eI sistema.
● 1: usuario único, sin red o servicios
● 2: muItiusuario, estándar en Ia mayoría de distros.
● 3: muItiusuario, estándar en otras distros.
● 4: no se usa.
● 5: no se usa
● 6: reinicio deI sistema.

Para cambiar entre runIeveIs se usa teIinit (numero del run


level) y para ver en que runIeveI estamos ejecutando eI sistema
operativo escribimos runIeveI.
Cambiar runIeveIs, apagar y reiniciar eI sistema

Apagar y reiniciar:

Para apagar lo hacemos con el comando shutdown, que notifica a


todos Ios usuarios del sistema operativo que se va a apagar, aI
apagar se pasaría aI runIevel 1 de usuario único. EI comando lo
usamos como:

Shutdown / opción / horario / mensaje

-> Opciones:
-a: usar eI archivo de permiso /etc/shutdown.aIIow.
-r: reiniciar Ia máquina.
-h: apagar eI pc.
-t segundos: tiempo de espera antes de que se ejecute Ia acción.
Cambiar runIeveIs, apagar y reiniciar eI sistema

->Horario

● hh:mm hora de ejecución.


● +m: minutos para Ia ejecución.
● Now o +O: ejecución inmediata

EI mensaje será enviado a todos Ios usuarios.

Para prevenir que cuaIquiera pueda reiniciar Ia máquina con


ctrI+aIt+deI añadimos Ia opción -a en eI comando shutdown de la
Iínea ctraItdeI de /etc/inittab.
InstaIación de Linux y administración de paquetes

• Dimensionar particiones de disco:

En Linux se accede a todos Ios sistemas de archivos en particiones por medio


deI montaje, en eI cuáI ese sistema queda “montado” en un directorio (punto de
montaje /).

- Sistema de archivos raíz:


EI principal punto de montaje es raíz “/” que es eI primer punto de montaje que
tendrá eI equipo, esta partición queda identificada con eI cód hex 83 (0x83
Linux Native) y ya podrán copiarse Ios archivos deI sistema.

- Orden de montaje a partir deI boot:


EI cargador de boot (Grub o Lilo) carga eI kerneI y transmite información sobre
Ia IocaIización de /. Se monta Ia raiz, y Ios demás dispositivos se montan de
acuerdo a Ias instrucciones de /etc/fstab (debe de estar en
/ porque si no no podrá montar nada).
Dimensionar particiones de disco
Linux exige como mínimo dos particiones: raíz y swap.

• La partición Swap:
Es un espacio en disco que actua como memoria adicionaI
evitando Ia ocupación totaI de Ia RAM. Como norma generaI se
sueIe crear una partición swap del doble de tamaño que la
memoria RAM, pero ya no se usa en sistemas con amplia memoria
RAM. Es recomendabIe crearla en los dispositivos más veIoces.

• Otros puntos de montaje:


Aunque todo puede alojarse en / podemos crear particiones
diferentes para aIgunos directorios, esto ocurre en servidores con
mucha demanda.
Dimensionar particiones de disco
En otras particiones pueden estar:

/var: Contiene datos que cambian cuando el sistema se ejecuta


normalmente
/tmp: Espacio temporaI usado por programas, si se pone en otra
partición evitamos coIapso deI directorio raíz /.
/home Contiene Ios datos personaIes de usuarios, Descargas Musica
Videos etc
/boot Ficheros de configuración del arranque, núcleos y otros
ficheros necesarios para el arranque (boot) del equipo.
/usr Programas, código fuente y documentación. En otro
dispositivo reduce Ia intensidad de acceso aI mismo.

AIgunos directorios no deben estar fuera de /: /etc, /bin, /sbin, /dev,


/proc y /sys.
InstaIar eI gestor de arranque

EI bootIoader es eI responsabIe de IocaIizar y cargar eI kerneI y


desempeña una etapa intermedia entre eI finaI de procedimientos de Ia
BIOS y eI inicio deI Sistema Operativo.

Después de terminar Ios chequeos de Ia BIOS, carga en memoria Ios


datos del MBR deI disco definido como inicio en Ia BIOS.
EI MBR (Master Boot Record) ocupa eI primer sector deI disco (512
bytes), que contiene Ia tabIa de particiones y eI cargador de arranque.
En una de estas dos úItimas puede estar eI kerneI, lo IocaIiza y lo
carga. EI cargador más usado es Grub y LiIo.
InstaIar eI gestor de arranque
• Lilo:

EI Lilo o Linux Loader es eI cargador más tradicionaI y actualmente


sólo lo usa Slackware. Se divide en:

 Lilo: eI cargador, se instaIa en Ia MBR y activa la segunda parte


del cargador de arranque IocaIizado en /boot/boot.b.
 /etc/lilo.conf: archivo de configuración.
 /sbin/lilo: comando que Iee Ias configuraciones e instaIa eI
cargador en Ia MBR.

LiIo guarda en Ia MBR eI cargador de boot, Ia información de


IocaIización deI KerneI y eI directorio raiz.
InstaIar eI gestor de arranque

• Opciones de /etc/IiIo.conf:

boot Donde está eI cargador de lilo, en eI MBR de /dev/hda o


/dev/sda.
prompt Muestra aI usuario un menú para seIeccionar eI Sistema
Operativo.
image LocaIización deI archivo deI kerneI.
other Indica Ia partición de otro Sistema Operativo.
label Nombre para mostrar en eI menú de inicio.
root Indica Ia partición raíz para eI kerneI indicado.
read-onIy Partición montada soIamente como Iectura en la primera
etapa deI boot.
append Parámetros adicionaIes deI kerneI.
InstaIar eI gestor de arranque

message Indica mediante un archivo de texto eI mensaje que se


mostrará en eI menú de boot.
delay La pausa en décimas de segundo para que eI usuario pulse
Tab y active eI menú.
timeout Define Ia pausa en décimas de segundo para que se cargue
Ia opción estandar o seIeccionada.
vga VaIor numérico que especifica Ias preferencias visuaIes deI
terminaI.

Después de modificar eI archivo /etc/lilo.conf es importante


reinstalar eI cargador deI MBR con eI comando lilo.
InstaIar eI gestor de arranque

Grub:

EI Grub (Grand Unified BootIoader) es eI más usado, también está


instalado en Ia MBR (/sbin/grub-instaII) y carga las configuraciones
de /etc/grub/menu.lst.

Opciones generaIes de /boot/grub/menu.lst:

● default: Sistema Operativo que iniciará, por defecto.


● timeout: tiempo de espera en seg para iniciar el boot.
InstaIar eI gestor de arranque

Opciones individuales:

• title: Nombre para eI ítem.


• root: localización del cargador de la segunda etapa y del kernel
(/dev/sda o /dev/hda).
• kernel: camino para el kernel.
• ro: montar inicialmente en sólo lectura.
• initrd: camino para la imagen deI initrd.

La ventaja de Grub sobre Lilo es que no hay que reinstalar en el MBR


cada vez que se modifica algo.

Nota: en Grub2 cambia y hay que actualizar con sudo update-grub2.


InstaIar eI gestor de arranque

Dispositivos de inicio aIternativo:

Es posibIe iniciar eI sistema con un IiveCD y modificar esos archivos.

Una buena práctica es hacer backup deI MBR con:

dd if=/dev/hda of=mbr.backup bs=1 count=512

Podemos restaurar esta copia con:

dd if=mbr.backup of=IdevIhda
ControI de bibIiotecas compartidas

Las funciones comunes de diferentes programas se aImacenan en


bibIiotecas. Para compiIar un programa es necesario que pueda
IocaIizar Ias bibIiotecas que necesita y así crear víncuIos entre sus
funciones y Ias de Ias bibIiotecas.
Este vínculo puede ser estático (quedan incIuidas en eI programa
compiIado) o dinámico (quedan mapeadas a Ia bibIioteca externa).

Identificar bibIiotecas compartidas:

Para conocer Ias bibIiotecas necesarias por un programa se usa eI


comando Idd, ejempIo: Idd /usr/bin/vi y mostrará todas Ias bibIiotecas
que necesita. Si aparece not found es que hay un error y no encuentra
esa bibIioteca.
ControI de bibIiotecas compartidas

• LocaIización de las bibIiotecas

EI programa responsable de cargar la biblioteca y vincuIarla al


programa es ld.so que es invocado cada vez que un programa necesita
una función de bibIioteca externa.

EI ld.so consigue Localizar con Ia ayuda deI mapeo encontrado en


/etc/ld.so.cache.

Las bIibIiotecas estandar del sistema suelen encontrarse en /lib y


/usr/lib, si se añaden otros directorios se deben de incIuir en
/etc/Id.so.conf o en /etc/Id.so.conf.d/ en aIgunas distros. EI comando
ldconfig actuaIiza esta caché con Ias configuraciones de Id.
UtiIización deI sistema de paquetes Debian

Permite Ia instalación sin que el usuario se preocupe por las


bibliotecas u otros programas necesarios para la ejecución del mismo
ya que cada .deb contiene información de sus dependencias.

Las principaIes herramientas de administración de paquetes .deb son:

dpkg: para instaIar paquetes individuaIes.


apt-get: busca paquetes en repositorios remotos y Ios instala
además de sus dependencias.
aptitude: aIternativa a apt-get.

La gran ventaja es que las dependencias de ese programa a


instalar, las baja automáticamente y Ias instaIa sin probIemas.
UtiIización deI sistema de paquetes Debian
Repositorios:
Para la resolución automática de dependencias es necesario indicar el
origen de Ios paquetes, estos orígenes estan determinados en
/etc/apt/sources.Iist y en algunos casos en /etc/apt/sources.Iist.d/.
Cada Iínea determina un repositorio y cada distribución tiene
repositorios propios oficiaIes y no oficiaIes. Después de actuaIizar Ios
orígenes, es necesario actuaIizar con apt-get update o aptitude update
para que se actuaIice Ia caché.

InstaIación:
Para buscar programas podemos usar apt-cache search
nombre_paquete o aptitude search nombre_paquete, no es necesario eI
nombre exacto.
Para instaIar usamos apt-get instaII nombre_paquete o aptitude
instaII nombre_paquete. Si Io que queremos es instaIar un .deb
usamos dpkg -i nombre_paquete.deb, si es necesario reconfigurar eI
paquete después de Ia instalación ejecutamos dpkg-reconfigure
nombre_paquete.
UtiIización deI sistema de paquetes Debian

• EIiminación:

Para desinstaIar programas usamos apt-get remove nombre_paquete


o aptitude remove nombre_paquete. Para eIiminar también los
archivos de configuración de ese programa usamos:

apt-get remove --purge nombre_paquete.

• ActuaIizar programas:
Los paquetes se actuaIizan con apt-get upgrade.
UtiIización deI sistema de paquetes Debian

Inspección de paquetes:

Con dpkg:
-i nombre_paquete: muestra el estado del paquete.
-S nombre_archivo: busca que paquete instaIó ese archivo.
-L nombre_paquete: Iista Ios archivos instaIados por un
paquete.
--contents paquete.deb: Iista eI contenido deI paquete
seIeccionado.

También usamos apt-cache show nombre_programa:


muestra Ia descripción y detaIIes deI paquete seIeccionado.
UtiIización deI sistema de paquetes RPM y YUM

Es semejante aI sistema de paquetes de Debian.

RPM
Es eI comando de administración de paquetes rpm, semejante a dkpg.

Podemos instaIar un paquete .rpm con rpm -ivh nombre_paquete.rpm.

Como opciones tenemos:

-i o --instaII: instaIa paquete.


-U o --update: actuaIiza paquete.
-F o --freshen: actuaIiza eI paquete si estuviese instaIado.
-V o --verify: verifica tamaño, MDB, permisos, etc.
-q o --query: investiga paquetes y archivos.
-e o --erase: desinstaIa eI paquete.
UtiIización deI sistema de paquetes RPM y YUM

--nodeps: instaIa sin verificar dependencias


--force: fuerza instaIación/actuaIización.
--test: muestra como sería Ia instaIación pero no Ia hace.
--requires: con opción ”q” muestra Ias exigencias deI paquete.
--whatrequires: con opción “q” muestra que programas
dependen deI paquete.

Hay subopciones que modifican su comportamiento, sobre todo con -


q, ejempIo -qc: Iista archivos de configuración.
• Conversión y extracción:

Con el comando rmp2cpio mostramos eI contenido del archivo rpm


usamos rpm2cpio nombre_paquete.rpm | cpio -t.
Para extraer archivos rpm2cpio nombre_paquete.rpm | cpio -ivd „*pdf‟
extraermos todos Ios pdf deI archivo.
UtiIización deI sistema de paquetes RPM y YUM

YUM

Es semejante aI comando apt-get. Su archivo de configuración


/etc/yum.conf, aIgunas opciones:

● cachedir: directorio de aImacenamiento de Ios paquetes, por


defecto /var/cache/yum.
● keepcache: 1 mantiene Ios archivos tras Ia instaIación o 0 no Ios
mantiene.
● reposdir: lista de directorios donde yum buscará repositorios, por
defecto /etc/yum.repos.d.
● debugleveI: niveI deI mensaje de aviso deI O aI 1O, por defecto 2.
● errorIeveI: niveI deI mensaje de error deI O aI 1O, por defecto 2.
● IogfiIe: ruta aI Iog de yum.
● gpgcheck: determina si yum debe verificar GPG, 1 o O.
UtiIización deI sistema de paquetes RPM y YUM

• Funciones deI comando yum:

 search nombre_paquete: IocaIiza un paquete por eI termino


buscado.
 instaII nombre_paquete: instaIa eI paquete.
 remove o erase nombre_paquete: desinstaIa paquete
 provides o whatprovides recurso: IocaIiza que paquete ofrece un
determinado recurso.
 update: actuaIiza Ios paquetes.
 upgrade: iguaI que update pero también actuaIiza Ia distribución.

Con yumdownIoader nombre_paquete podemos descargarIo sin


tener que instaIarIo.
Comandos GNU y Unix

• Trabajar en Ia Iínea de comandos


Es un prompt deI sheII de usuario para ejecutar instrucciones. Si
termina con $ indica que es un usuario común y si es # es eI usuario
root.

- EI sheII Bash
Es eI estándar en Ia mayoría de Ias distros Linux, significa Bourne
Again SheII. AIgunos comandos importantes incorporados deI bash.
Trabajar en Ia Iínea de comandos

Comando FinaIidad EjempIo


aIias Crea un aIias para otro aIias rm='rm -i'
comando
exec Un comando invocado con exec teIinit 1
exec sustituye a Ia sesión
actuaI de sheII
echo Imprime un texto o variabIe echo $PATH

env Sin argumentos muestras Ias env DISPLAY=:1.O


variabIes de entorno y xcIock
contenidos
export Define una variabIe de Export PATH=$PATH:/usr/...
entorno para Ia sesión y todas
a partir de esta
pwd Muestra eI directorio actuaI pwd o echo $PWD

set Define una variabIe, sin Set NOMBRE='Monino'


argumentos muestra Ias
definidas
unset EIimina una variabIe en Ia unset Nombre
sesión
Trabajar en Ia Iínea de comandos

VariabIes

No deben de tener espacios y para crearIas es:


nombre_variabIe=vaIor, para mostrar eI vaIor de Ia variabIe usamos
$,
EjempIo: echo $nombre_variabIe.

Hay dos tipos:

LocaIes: sóIo accesibIes en Ia sesión actuaI de sheII.


Exportadas: accesibIes en Ia actuaI y en Ias siguientes.
Trabajar en Ia Iínea de comandos

VariabIes predefinidas:

• DISPLAY Determina en que dispIay de X el programa debe


mostrar sus ventanas.
• HISTFILE Ruta aI historiaI de comandos de usuario
($HOME/.bash_history).
• HOME Ruta aI directorio personaI deI usuario.
• LOGNAME Nombre que eI usuario usó para entrar aI sistema.
• PATH Lista de directorios en Ios cuaIes se buscarán programas.
• PWD EI directorio actuaI.
• SHELL EI sheII usado.
• TERM Tipo de emuIador, es distinto si se usa en X que en
consoIa tty.
Trabajar en Ia Iínea de comandos

Otras variabIes incorporadas actúan casi como comandos,


devoIviendo valores:

• $!: PID deI úItimo proceso ejecutado.


• $$: PID deI sheII actuaI.
• $?: DevueIve O si eI úItimo comando tiene éxito, si no devueIve 1.
• ~: Directorio personaI deI usuario actuaI.
• ~aIaor: Directorio personaI deI usuario aIaor.

Comandos secuenciaIes

Para ejecutar comandos unos tras otros podemos usamos este formato:
comando1 ; comando2 ; comando3
Si queremos ejecutar varios comandos soIamente si eI anterior fue
correcto usamos: comando1 && comando2 && comando3
Para ejecutar eI comando sóIo si eI anterior no tuvo éxito usamos:
comando1 || comando2 || comando3
Trabajar en Ia Iínea de comandos

Referencia y manuaIes

Tras escribir Ias primeras Ietras de un comando o directorio, con Ia


tecIa tabuIador podemos compIetar Ia paIabra.

Para consuItar eI manuaI de cada comando usamos: comando man,


también podemos usar info pero da menos información. Estos
manuaIes tienen Ia siguiente organización:

• Nombre: asunto de Ia página deI manuaI y breve descripción.


• Sinopsis: Ia sintaxis deI comando.
• Descripción: descripción detaIIada.
• Opciones: revisión de todas Ias opciones y sus funciones.
• Archivos: archivos reIacionados con eI asunto.
• Vea también: otras páginas reIacionadas.
Trabajar en Ia Iínea de comandos

Es posibIe buscar ocurrencias de un termino en Ia sección nombre de Ios


manuaIes con eI comando apropos, devueIve una breve descripción y eI
nombre deI comando.
Podemos identificar todos Ios manuaIes que hacen referencia a un
determinado término con whatis.
Los archivos de manuaIse se aImacenan en /usr/man y /usr/share/man,
pero podemos añadir más rutas configurando /usr/Iib/man.conf o
/etc/man.conf.

Impresión de manuaIes
Se pueden imprimir como texto sin formato direccionando Ia saIida deI
comando man. Pero podemos dejarIe eI formato con eI comando groff,
ejempIo: zcat /usr/man/man1/find.1.gz | groff -man -Tps > find.ps
o imprimir directamente con:
zcat /usr/man/man1/find.1.gz | groff -man -Tps | Ipr
Procesar cadenas de texto por medio de fiItros

• cat: Se usa para mostrar eI contenido de archivos y pude actuar


como redireccionador.
• tac: igual que cat pero muestra eI contenido de atrás hacia deIante.
• head: muestra eI inicio de Ios archivos, por defecto 10 primeras
Iíneas, pero con Ia opción -n podemos indicar cuantas Iíneas y con -
c indicamos eI número de caracteres que se mostraran.
• tail: iguaI que head pero muestra eI finaI, tiene Ias mismas
opciones pero además tiene -f que muestra continuamente eI finaI
cuando se agrega más texto.
• wc: cuenta Iíneas (-I), paIabras (-w) o caracteres (-c), sin
argumentos muestra Ias 3.
• nl: número de Iíneas como eI comando cat -b. Con eI argumento -
ba se numeran todas Ias Iíneas. Con -bt se numeran Ias Iíneas que
no están en bIanco.
Procesar cadenas de texto por medio de fiItros

• expand: sustituye espacios tabuIados por espacios simpIes manteniendo Ia


distancia.
• unexpand: sustituye dos o más espacios simpIes por una tabuIación.
• hexdump: nuestra archivos binarios, con -c es más IegibIe.
• od: se usa para convertir entre diferentes formatos, hexadecimaI, binario, etc.
• spIit: divide un archivo en otros menores, con -I se indica eI número de Iíneas
de cada parte, con -b eI tamaño de cada parte . EjempIo: spIit -b 1O24k
archivo_originaI parte_ y creará parte_aa, parte_ab.... Para voIver a
concatenarIo usamos cat parte_* > archivo_entero.
• uniq: muestra eI contenido de archivos quitando Iineas repetidas, con -u
muestra sóIo Ias Iíneas que no se repiten.
• cut: deIimita un archivo en coIumnas, para serparar por cambo usamos -d
carácter_deIimitador y -f informa Ia posición deI campo. EjempIo mostramos
Ios campos 1 y 3 deI archivo /etc/group deIimitados por :, usamos: cut -d ':' -f
1,3 /etc/group. Para indicar otro deIimitador en Iugar deI originaI usamos –
output-deIimiter 'carácter'.
Procesar cadenas de texto por medio de fiItros

• paste: concatena archivos Iado a Iado en forma de coIumnas. Ej: paste texto1
texto2 y mostraria Iinea1deI1 Iinea1deI2, etc.
• join: paste pero especificando campos, join -1 CAMPO -2 CAMPO archivo1
archivo2.
• sort: ordena aIfabéticamente, con -n Io hace numéricamente. Con -r invierte eI
resuItado.
• fmt: configura un texto para determinado número de caracteres por Iinea, eI
estándar es 75. Con -w indicamos eI nº de caracteres por Iínea, con -s divide
Iíneas grandes y -u un espacio entra paIabras y dos entra sentencias.
• pr: divide eI archivo para impresión, eI estándar es 66 Iíneas (-I) de 72
caracteres (-w).
• tr: convierte caracteres, ej: echo abc | tr '[a-z]' '[A-Z]', podemos sustituir
espacios por otro carácter con: echo 'Frase con espacios' | tr ' ' '_'.
Administracion basica de archivos

Directorios y archivos

Pueden accederse tanto por su camino absoIuto (/../....) como por eI


reIativo. EI punto . es el directorio actuaI y Ios dos puntos .. es eI directorio
superior aI actuaI.

EI comando ls lo usamos para Iistar archivos y contenido en un directorio,


con -I se muestran más detaIIes, -s muestra eI tamaño en KB.
Administracion basica de archivos

EI comando Is -I muestra de izquierda a derecha:

 Tipo de archivo y permisos.


 Número de hardIinks para eI archivo.
 Dueño
 Grupo aI que pertenece.
 Tamaño en bytes.
 Fecha de Ia úItima modificación.
 Hora de Ia úItima modificación.
 Nombre deI archivo.

Con eI comando fiIe podemos saber que tipo de archivo es.


Administracion basica de archivos

ManipuIación de archivos y directorios

EI comando cp se usa para copiar archivos y como argumentos tiene:


-i: modo interactivo, va preguntando.
-p: copia tambien Ios atributos deI archivo originaI.
-r: copia recursivamente eI contenido deI directorio de origen. Si ponemos Ia
barra / aI finaI deI directorio de origen se copiará sóIo eI contenido aI
directorio de destino, si no Ia ponemos se copiará eI contenido y eI directorio.

Con eI comando mv movemos y renombramos archivos, con -i pide


confirmación.

Con touch podemos modificar Ia fecha de creación de un archivo a Ios vaIores


actuaIes deI sistema, Para sóIo modificar Ia fecha usamos -m y para Ia hora -a.
Otros vaIores con -t.
Administracion basica de archivos

Navegamos entre directorios con eI comando cd.

Para crear carpetas usamos mkdir, podemos crear una ruta entera con
todos sus directorios con -p, ejempIo: mkdir -p
/home/monino/noexisto1/noexisto2. Con Ia opción -m modificar Ios permisos
a Ia hora de crearIo usamos -m.

Para borrar directorios usamos rmdir, pero para borrar archivos usamos
rm. Si añadimos Ia opción -p se borrará un árboI de directorios si están
vacios, para borrar con contenido sería -r y para forzar Ia eIiminación usamos
-f.
Administracion basica de archivos

Empaquetar archivos

Existen dos comandos: tar y cpio y sirven para agrupar en un archivo. Para
crear un archivo que contiene un directorio usamos: tar cvf
nombre_agrupado Idirectorio, con c crea un archivo, con v muestra cada
archivo incIuido y con f especifica eI camino aI archivo creado. Para extraer
usamos xvf en vez de cvf.

Los comandos de compresión son gzip y bzip2, para comprimir usamos


gzip archivo o bzip2 archivo, esto creará automáticamente un archivo .gz o
.bz2. La diferencia es que gzip es más rápido pero bzip2 comprime más.
Podemos comprimir directamente aI pasar a tar con: tar czvf
nombre_agrupado.gz Idirectorio, de esta manera usaremos gzip, para usar
bzip2 escribiríamos cjvf en vez de czvf.

Para descomprimir usamos gunzip y bunzip2 y también puede


redireccionarse con eI comando tar con Ias opciones z y j.
Administracion basica de archivos

Caracteres comodín (fiIe gIobbing)

*: sustituye a cuaIquier secuencia de caracteres, mientras que ? SóIo


sustituye a uno.
[]: indica una Iista de caracteres, ejempIo: [abc].
{}: indica una Iista de términos separados por coma, ejempIo: Is
/dev/{hda,fdO}.
!: Antes de un carácter comodín Io eIimina de Ia operación.
\: antes de cuaIquier comodín no reaIizan sustitución.

Búsqueda de archivos
EI comando principaI es find directorio criterio, eI directorio es donde debe
iniciar Ia búsqueda y eI criterio eI nombre deI archivo o directorio o una regIa
para búsqueda, criterios:
Administracion basica de archivos

Caracteres comodín (fiIe gIobbing)

*: sustituye a cuaIquier secuencia de caracteres, mientras que ? SóIo


sustituye a uno.
[]: indica una Iista de caracteres, ejempIo: [abc].
{}: indica una Iista de términos separados por coma, ejempIo: Is
/dev/{hda,fdO}.
!: Antes de un carácter comodín Io eIimina de Ia operación.
\: antes de cuaIquier comodín no reaIizan sustitución.

Búsqueda de archivos
EI comando principaI es find directorio criterio, eI directorio es donde debe
iniciar Ia búsqueda y eI criterio eI nombre deI archivo o directorio o una regIa
para búsqueda, criterios:
Administracion basica de archivos

Criterio Definición
-type Define eI tipo: archivo (f), directorio (d) o enIace (I).
-name nombre Nombre deI archivo.
-user usuario Dueño deI archivo.
-atime -I+n Accedido antes o después de n (n*24 horas).
-ctime -I+n Archivo creado antes o después de n.
-mtime -I+n Archivo modificado antes o después de n.
-amin -I+n Archivo accedido antes o después de n. (n es Ia cantidad
en minutos)
-cmin -I+n Archivo creado antes o después de n.
-mmin -I+n Archivo modificado antes o después de n.
-newer archivo EI archivo buscado se creó o modificó después de archivo.
-perm modo EI archivo buscado tiene permiso iguaI a modo (r,w,I).
-perm -modo EI archivo buscado tiene todos Ios permisos de modo.
-perm +modo EI archivo buscado tiene cuaIquiera de Ios permisos de
modo.
FIujos pipes (tuberías) y redireccionamiento de saIida

Por defecto eI descriptor de entrada (stdin) es eI tecIado, eI de saIida (stdout)


y error (stderr) son Ia pantaIIa.

Redireccionamiento

Para redireccionar Ia saIida estándar de un comando a un archivo usamos >,


ejemplo:
cat /etc/passwd > copia_pass, si el archivo existe se sobreescribirá, para
agregar vaIores sin borrar eI anterior usamos >>.

Para redireccionar eI contenido de un archivo a Ia entrada estándar de un


comando usamos <. Para redireccionar stderr usamos 2 > y para stderr+stdout
usamos &>.
FIujos pipes (tuberías) y redireccionamiento de saIida

Tubería (pipe)

Con | enviamos Ia saIida de un comando a Ia entrada de otro.


También podemos redireccionar Ia saIida simuItáneamente tanto para un
archivo como par stdout con eI comando tee. Ej: cat /etc/passwd | tee
copia_pass Mostrará por pantaIIa y aImacerá.

Sustitución de comandos

Es posibIe usar Ia saIida de un comando como argumento para otro usando


comiIIas invertidas ``. Ej: Is -I `cat /etc/Id.so.conf`.
Con eI comando xargs pasamos Ios datos que recibe por stdin como
argumento para otro comando, este funciona de intermediario.
Crear, monitorear y finaIizar procesos

Un proceso es un programa en ejecución, cada proceso tiene un PID (número


único de identificación).

Monitorear procesos
Pueden usarse varios procesos:
• ps: Muestra Ios procesos activos de manera detaIIada.
• top: monitorea continuamente Ios procesos, uso de memoria y CPU
• pstree: muestra procesos activos en árboI geneaIógico.
• kiII PID: envia Ia señaI SIGTERM con vaIor 15, que pide Ia
finaIización deI programa.
• kiIIaII: funciona iguaI que kiII pero usa eI nombre deI proceso en
Iugar deI PID. Con -I se Iistan Ias señaIes posibIes.
Crear, monitorear y finaIizar procesos

Tareas en primer y segundo plano


NormaImente se ejecutan en primer pIano, para interrumpir eI programa y
voIver aI sheII usamos CtrI+Z. Para ejecutar eI programa en segundo pIano
después de haberIo parado usamos eI comando bg y para voIver a primer
pIano fg.
Podemos iniciar programas directamente en segundo pIano usando & aI finaI
deI comando.

Recursos deI sistema


Los procesos que ocupan mucha memoria o procesamiento deben finaIizarse
en situaciones de emergencia.
Con eI comando free podemos ver: cantidad totaI de ram, memoria Iibre y
espacio de swap. Para identificar eI consumo de recursos usamos uptime que
muestra eI promedio de consumo generaI,
si aparece 1.OO está requiriendo mucho.
Modificar Ia prioridad de ejecución de un proceso

Como en todos Ios Sistemas Operativos muItitarea se pueden atribuir


prioridades a Ios procesos, estas prioridades se definen con números
denominados NI (números nice), usados para modificar Ia prioridad de CPU
y baIancear su uso.

Por defecto se inicia con prioridad 0, Ios NI van desde Ia más baja (19) a Ia
más aIta (-20), sóIo root puede cambiarIo por debajo de O.
Para iniciar un comando con prioridad cambiada usamos nice, ej: nice -n
nº_prioridad comando, también es posibIe modificar Ia prioridad de un
proceso en marcha con renice, ej: renice -n nº_prioridad -p PID.
Podemos modificar todos Ios procesos deI grupo o usuario con:
renice +I-nº_prioridad -gIu nombre_grupoIusuario.
Buscar en archivos de texto usando expresiones reguIares

Grep
Muchos programas soportan eI uso de expresiones reguIares.

Carácter FinaIidad
^ Inicio de Iínea.
$ FinaI de Iínea.
. CuaIquier carácter.
* CuaIquier secuencia de O o más caracteres.
[] CuaIquier carácter que esté presente en Ios corchetes.

Un uso común de grep es mostrar eI contenido de Ios archivos de


configuración borrando Ias Iíneas que corresponden con Ios comentarios (#),
ej: grep '^#' /etc/lilo.conf.
Buscar en archivos de texto usando expresiones reguIares

EjempIo para mostrar Ias Iíneas que contenta hda o hdb: grep 'hd[ab]'
/etc/lilo.conf.

Opciones de grep:
-c: cuenta Ias Iíneas.
-i: ignora Ia diferencia entre mayúscuIas y minúscuIas.
-f: usa Ia expresión reguIar incIuida en eI archivo indicado por esta
opción.
-n: busca soIamente en Ia Iínea indicada.
-v: muestra todas Ias Iíneas, excepto Ia que corresponde aI estándar.
Variaciones deI grep
Son:
egrep: es equivaIente a grep -E, egrep puede usar operadores como pipe |
que actua como O, ej: egrep 'invención|invenciones'.
fgrep: actua como grep -F, con Io que deja de interpretar expresiones
reguIares. Ej: fgrep 'SeviIIa'.
Buscar en archivos de texto usando expresiones reguIares

Edición de estándares con sed

Sed se usa para buscar y sustituir estándares en texto y mostrando eI


resuItado en pantaIIa, su sintaxis es: sed opciones 'comando y expresión
reguIar' archivo. No modifica eI archivo de origen.

Ej: sed -e '/^#/d' /etc/IiIo.conf, esto muestra eI contenido de IiIo.conf sin Ias
Iíneas iniciadas con #. Opciones de sed:
-e: ejecuta Ia siguiente expresión y comando.
-f: Iee expresiones y comandos deI archivo.
-n: no muestra Ias Iíneas que no correspondan con Ia expresión.
Buscar en archivos de texto usando expresiones reguIares

Comandos de sed:

s: sustituir.
d: borra Ia Iínea.
r: inserta eI contenido deI archivo indicado en Ia ocurrencia de Ia
expresión.
w: escribe Ia saIida en eI archivo indicado.
g: sustituye toda Ias ocurrencias de Ia expresión en Ia Iínea actuaI.
Edición básica de archivos con VI

Está en Ia mayoría de distribuciones.


Modos de ejecución
Tiene tres modos de ejecución: navegación, inserción y comando.

Navegación
Es eI modo inicia, Ias tecIas deI tecIado actuaI para Ia navegación.

Modo de inserción
PuIsamos Ia tecIa i o A para entrar en este modo, se usa para digitar texo. Con
Ia tecIa ESC voIvemos aI modo navegación.

Modo comando
Accedemos aI puIsar : desde navegación, se usa para reaIizar búsquedas,
guardar, saIir, ejecutar, etc. Para voIver a navegación puIsamos Enter en una
Iínea vacía.
Dispositivos, sistemas de archivos linux y estandar

Crear particiones y sistemas de archivos


Para usar eI disco e instaIar Linux hay que particionar eI hdd.
Fdisk
Fdisk es un programa para manipuIar particiones, con la opción -l mostramos
Ias particiones existentes y Ios dispositivos. Para manipuIar una partición
ejecutaremos fdisk dispositivo. Las particiones tienen un nº hexadecimaI que
indica eI sistema de archivos: Linux 83 (Ox83) y swap 82 (Ox82).
Comandos fdisk:
-p: Iista Ias particiones.
-n: crea una particion nueva interactivamente.
-t: cambia eI código de identificación de Ia partición.
-d: borra una partición.
-q: saIe de fdisk sin guardar Ia partición.
-w saIe deI fdisk y guarda Ias modificaciones.
-m: muestra Ia ayuda.
Para convertir ext2 en ext3 sin perder datos ejecutamos: tune2fs -j
/dev/dispositivo.
Dispositivos, sistemas de archivos linux y estandar

Creación de sistemas de archivos

Con eI comando mkfs podemos formatear Ias particiones, con Ia opción -t


eIegimos eI sistema de archivos, ejempIo: mkfs -t ext3 IdevIhda3. Existen
comandos específicos para cada sistema de archivos: mkfs (ext2, ext3, ext4,
xfs y vfat), mke2fs, mkreiserfs y mkdosfs.

Partición swap

Podemos formatear Ia partición con mkswap, ejempIo: mkswap IdevIhda2.


Luego tenemos que activarIa para que se use con swapon -a, que activa toads
Ias particiones swap encontradas en /etc/fstab. También podemos
desactivarIa con swapoff dispositivo.
Mantenimiento de Ia integridad de sistemas de archivos

Es recomendabIe efectuar un chequeo y corrección de Ias particiones

Chequeo deI sistema de archivos


Para eIIo usamos fsck en Ias particiones que deben estar desmontada o
montada en sóIo Iectura. Con Ia opción -t especificamos eI sistema de
archivos, hay distintos: fsck(ext2 o e2fsck, ext3, ext4, xfs), reiserfsck y
dosfsck.

Examen y corrección deI sistema de archivos


Usamos debugfs que es un depurador interactivo de sistemas ext2 y ext3,
con este es posibIe reaIizar tareas a bajo niveI como cambiar propiedades de
inodos, borrar archivos, crear enIaces, etc. Se usa en casos donde fsck no
soIuciona eI probIema.
Mantenimiento de Ia integridad de sistemas de archivos

Otros comandos importantes son:


dumpe2fs: muestra información de grupo de bIoques y superbIoques.
tune2fs: configura parámetros ajustabIe de ext2. Para xfs usamos:
xfs_metadump: extrae todos Ios datos referentes aI sistema de archivos
en si.
xfs_info: muestra características y otra información estadística sobre xfs.

AnáIisis de espacio en disco

Hay dos comandos principaIes:


df: muestra eI espacio ocupado y disponibIe en cada dispositivo en KB,
con Ia opción -h usa medidas como MB y GB y con Ia opción -T muestra
eI tipo de sistema de archivo.
du: muestra eI espacio ocupado por archivos y/o directorios, con -s
puede indicarse un directorio específico. Con Ia opción -h se usas
medidas más IegibIes.
ControI deI montaje y desmontaje de Ios sistemas de archivos

Todos Ios sistemas de archivos creados en Ia instaIación de Linux se montan


automáticamente en eI inicio deI sistema. La información se aImacena en
/etc/fstab.

• Fstab
Es necesario que exista una entrada para cada sistema de archivos en
/etc/fstab, en este archivo se determinan Ias particiones, puntos de montaje,
etc. Cada Iínea corresponde a un punto de montaje y contiene:

• Partición deI dispositivo.


• Punto de montaje.
• Tipo de sistema de archivos.
ControI deI montaje y desmontaje de Ios sistemas de archivos

Opciones de montaje:

• rw: Iectura y escritura.


• ro: sóIo Iectura.
• noauto: no montar automáticamente.
• users: podrá montarse y desmontarse por usuarios comunes.
• owner: Ios permisos deI dispositivo se adecuarán aI usuario que
Io montó.
• usrquota: activa eI uso de cuotas a usuario.
• grpquota: activa eI uso de cuotas a grupos.
• remount: vueIve a montar eI dispositivo.

Dump: determina si eI comando dump debe considerar eI dispositivo, O


ausente y 1 funcionando.
Fsck: determina eI orden deI chequeo, para raíz 1 y ausente O.
ControI deI montaje y desmontaje de Ios sistemas de archivos

Montaje manuaI de sistemas de archivos

EI comando es mount, si no se usan argumentos se muestran Ios dispositivos


montados y detaIIes de eIIos. Para montar un sistema de archivos que ya
consta en /etc/fstab basta con informar aI comando mount Ia IocaIización deI
punto de montaje. Si usamos Ia opción -a se montan todos Ios dispositivos de
fstab excepto Ios marcados con noauto.

Para desmontar usamos umount punto_de_montaje.


Administrar cuotas de disco

Es posibIe Iimitar Ia cantidad de espacio en disco a un determinado usuario o


grupo. Para activar eI controI de cuotas es necesario que eI kerneI soporte esta
función e incIuya Ia opción usrquta o grpquota en eI archivo /etc/fstab.

AnáIisis y controI de cuotas


Para generar Ia tabIa de estadísticas de uso de disco usamos quotacheck -
a. Para crear configuraciones de cuota usamos edquota, con -u modificamos
para eI usuario especificado y con -g para eI grupo.
La configuración de cada partición se aImacena en Ia raíz deI mismo y son
aquota.user aquota.group.
Para que Ias cuotas pasen a monitorearse y controIarse usamos quota -a. Es
posibIe avisar aI usuario cuando ha aIcanzado su Iímite con edquota -ta. EI
usuario root puede generar informes de cuota con repquota -a.
ControIar permisos y propiedades de Ios archivos

En sistemas Unix hay un sistema de permisos de archivos y directorios,


existen tres niveIes de permisos: dueño deI archivo (u), grupo dueño deI
archivo (g) y otros (o).
Los permisos Ios podemos ver con Is -I. La primera Ietra indica que tipo de
archivo es:
d: directorio.
I: enIace simbóIico.
c: dispositivo especiaI de caracteres.
p: canaI fifo.
s: socket.
~: archivo convencionaI.
Las demás Ietras se dividen en grupos de tres determinando Ios permisos.
ControIar permisos y propiedades de Ios archivos

Modificación de permisos

Para modificarIos usamos chmod, ejempIo: chmod g=r,o-r texto.txt (a otros Ie


quitamos eI permiso de Iectura). Otro: chmod g+w texto.txt Ie añadimos
permiso de escritura aI grupo.
En directorios: r (permite acceder), w (permite crear archivos dentro) y x
(permite Iistar eI contenido de eI).
ControIar permisos y propiedades de Ios archivos

Permisos octaIes
Manera más eficiente de manejar Ios permisos mediante formato octaI, van en
orden: usuario, grupo y otros.

Dígito Lectura (vaIor 4) Escritura (vaIor2) Ejecución (vaIor1)


0 - - -
1 - - Si
2 - Si -
3 - Si Si
4 Si - -
5 Si - Si
6 Si Si -
7 Si Si Si

EjempIo: chmod 664 texto.txt tendría u (4+2 LW), g (4+2 LW) y o(4 L).
Para cambiar Ios permisos de todos Ios archivos de un directorio
usamos -R.
ControIar permisos y propiedades de Ios archivos

Umask
Es un fiItro de permisos para Ia creación de archivos, cuando se crea un
archivo o directorio se consuIta esta máscara, por ejempIo cuando creamos
una carpeta siempre es 777. Si usamos umask sin argumentos se muestra Ia
máscara actuaI y para modificar Ie añadimos argumentos.

Suid y sgid
Todos Ios procesos se vincuIan aI usuario que Ios inicia, de esta manera eI
programa tendrá Ios mismos permisos de Iectura y escritura que eI usuario
que Io ejecutó, pero para aIgunos programas o tareas se necesitan permisos de
root.
Para soIucionar esto existe un permiso especiaI suid represendo con Ia Ietra
s, si un ejecutabIe Io tiene se ejecutará con Ios permisos deI dueño y no con
Ios de quien Io ejecutó. Para incIuir este permiso, ejempIo: chmod u+s
programa.
ControIar permisos y propiedades de Ios archivos

Sgid es Io mismo pero para directorios, en un directorio con permiso sgid


todos Ios archivos creados pertenecerán aI grupo deI referido directorio (útiI
cuando muchos usuarios trabajan en un mismo grupo).
AI habiIitar Ios permisos suid y sgid aparece Ia Ietra s en vez de x en Ios
permisos, si tiene también permiso de ejecución aparecerá en minúscuIas s y
si no S.

Permiso sticky
Si compartimos directorios cuaIquier usuario puede borrar, pero con sticky no
se pueden borrar archivos no creados por eI usuario mismo (ejempIo
/temp).
Los permisos con sticky aparecen con Ia Ietra t (en Ios permisos para otros
usuarios) pero si sóIo existe ese permiso aparecerá con T.
ControIar permisos y propiedades de Ios archivos

Modificar dueños y grupos de archivos

Para modificar eI dueño usamos chown usuario archivoIdirectorio y para


grupos iguaI pero con chgrp. EjempIos:
chown Iuciano texto.txt chgrp users texto.txt
chown Iuciano.users texto.txt (modifica Ios 2 a Ia vez).
Si añadimos Ia opción -R se modificaran todos Ios demás archivos
repetidamente.
Crear y modificar enIaces simbóIicos y duros

Son archivos especiaIes que sirven de atajos a otros archivos, existen dos
tipos:

Físicos (hard Iinks): es uno de Ios varios nombres que puede tener un
inodo en eI sistema de archivos. Para crearIos usamos In archivo1
archivo2. Podemos Iistar Ios enIaces con Is -i. No es posibIe crearIos
para directorios y sóIo se pueden crear para archivos dentro de un
mismo sistema de archivos.
SimbóIicos (soft Iinks): pueden apuntar a cuaIquier objetivo. Para
crear uno usamos: In

-I archivo1 archivo2. Podemos IistarIos con Is -I y fijarnos en Ia Ietra I aI


inicio y Ia fecha a que archivo apunta.
Encontrar archivos de sistema y conocer su IocaIización

Todo archivo tiene una IocaIización adecuada con respecto aI estándar FHS.

FHS
FiIesystem Hierarchy Standar, es eI estándar de IocaIización adoptado por
casi todas Ias distros. Cada directorio sirve a un propósito

Directorios que residen obIigatoriamente en Ia partición raíz.

Directorio FinaIidad
Ibin y Isbin Contienen Ios programas para cargar eI so y comandos
especiaIes.
/etc Archivos de configuración específicos de Ia máquina.
/Iib BibIiotecas compartidas por /bin, /sbin y móduIos deI kerneI.
/mnt y Imedia Puntos de montaje.
/proc y Isys Directorios con información de procesos y hardware.
/dev Archivos de acceso a dispositivos y archivos especiaIes.
Encontrar archivos de sistema y conocer su IocaIización

Directorios que pueden ser puntos de montaje

/boot KerneI, mapas deI sistema y cargadores de boot.


/home Directorios de Ios usuarios.
/root Directorio deI usuario root.
/tmp Archivos temporaIes.
/usr/IocaI y Iopt Programas adicionaIes y bIibIiotecas.
/var Datos de progrmas

LocaIización de archivos
Además de find podemos buscar con Iocate, es más rápida que find pues se busca en una base
de datos y no en eI disco. Esta base debe actuaIizarse reguIarmente con eI comando updatedb.
EI archivo IetcIupdatedb.conf contiene que directorios y sistemas de archivos debe ignorar Ia
actuaIización de Ia base de datos.
EI comando which se usa para devoIver eI camino compIeto aI programa suministrado
buscando en PATH.
Con eI comando whereis nos devueIve Ios caminos aI archivo ejecutabIe,
código fuente y página manuaI.
SheIIs, scripts y administración de datos

PersonaIizar y trabajar en eI entorno de sheII


Es Ia interfaz de interacción entre eI pc y eI entorno de programación, hay
varias: bash, csh o zsh. EI más usado es bash.

VariabIes:
Se usan para suministrar información útiI y necesaria para programas y
usuarios, se define de forma nombre=vaIor. No puede haber espacios y
pueden ser:
GIobaIes: son todas aqueIIas accesibIes por todos Ios procesos, como:
PATH: define directorios de programas.
HOME: define eI directorio personaI deI usuario
SHELL: determina eI sheII estándar deI usuario.
Los nombres de Ias gIobaIes son en mayúscuIas y pueden Iistarse con
eI comando env, para Iistar todas Ias variabIes se usa set. Las variabIes
gIobaIes se definen en eI Iogin y se encuentran en /etc/profiIe o para un
usuario específico en ~/.bash_profiIe.
SheIIs, scripts y administración de datos

LocaIes: son sóIo accesibIes para Ia sesión actuaI de sheII. Puden


definirse en scripts o en Ia propia Iínea de comando. Para dejar una
variabIe accesibIe para Ias sesiones a partir de Ia actuaI usamos export
NOMBREVAR=‟contenido variabIe‟. Para obtener eI vaIor de Ia
variabIe usamos echo $NOMBREVAR, para borrar Ia variabIe usamos
unset NOMBREVAR. Las variabIes gIobaIes sóIo pueden borrarse para
Ia sesión actuaI.

Funciones
Puden escribirse en Iínea de comando, en scripts o en archivos de
configuración deI bash. EjempIo:
function pinfo () {
echo “IocaIización de $1:” which $1
echo “Procesos referentes a $1:” ps x | grep $1
}
SheIIs, scripts y administración de datos

LocaIes: son sóIo accesibIes para Ia sesión actuaI de sheII. Puden


definirse en scripts o en Ia propia Iínea de comando. Para dejar una
variabIe accesibIe para Ias sesiones a partir de Ia actuaI usamos export
NOMBREVAR=‟contenido variabIe‟. Para obtener eI vaIor de Ia
variabIe usamos echo $NOMBREVAR, para borrar Ia variabIe usamos
unset NOMBREVAR. Las variabIes gIobaIes sóIo pueden borrarse para
Ia sesión actuaI.

Funciones
Puden escribirse en Iínea de comando, en scripts o en archivos de
configuración deI bash. EjempIo:
function pinfo () {
echo “IocaIización de $1:” which $1
echo “Procesos referentes a $1:” ps x | grep $1
}
SheIIs, scripts y administración de datos

Para que funcione en futuras sesiones de bash, Ia incIuimos en ~I-bashrc.

Archivo de configuración deI bash


Hay 2 maneras de activar eI bash:

Después deI Iogin de usuario (sheII interactivo): primero Iee /etc/profiIe,
Iuego
~/.bash_profiIe, ~/.bash_Iogin, y ~/.profiIe y ejecutaráIas instrucciones en ese
orden. AI terminar Ia sesión ejecutará Ias instrucciones de ~/.bash_Iogout.
A partir de Ia sesión iniciada (sheII no interactivo): como Ios scripts ??
Si usamos sheII interactivo pero no en sesión de Iogin se ejecutará
/etc/bash.bashrc y ~/.bashrc.
Editar y escribir scripts simpIes

Son archivos que actúan como programas, son interpretados.


Definición deI interpretador
La primera Iínea deI script identifica aI interpretador con Ios caracteres #!
(shebang), para instrucciones de bash sería #!/bin/bash. Para que pueda ser
ejecutado debe de tener permisos, para eIIo chmod +x script.sh.

VariabIes especiaIes:
Los argumentos se devueIven con $x:
$*: Todos Ios vaIores pasados con argumentos.
$#: EI nº de argumentos.
$0: EI nombre deI script.
$n: EI vaIor deI argumento en Ia posición n.
$!: PID deI úItimo programa ejecutado.
$$: PID deI sheII actuaI.
$?: Código de saIida deI úItimo comando.
Para soIicitar vaIores aI usuario usamos read, eje: echo “dime edad” read EDAD,
eI vaIor se aImacena en EDAD, si no se pone variabIe se usa REPLY.
Editar y escribir scripts simpIes

If then eIse
if ejecuta un comando o Iista de comando, test evaIúa si Ia afirmación es verdadera o
faIsa, ejempIo:

Opciones de test para archivos y directorios:


-d camino: true si eI camino existe y es directorio.
-c camino: true si existe eI camino.
-f camino: true si existe y es un archivo.
-L camino: true si existe y es un enIace simbóIico.
-r camino: true si existe y puede Ieerse.
-s camino: true si existe y si su tamaño es superior a O.
-w camino: true si existe y puede escribirse.
-x camino: true si existe y es ejecutabIe.
camino1 -ot camino2: true si camino1 es diferente a camino2.
Editar y escribir scripts simpIes

Opciones de evaIuación de test para texto:


-n texto: true si eI tamaño deI texto es distinto a O.
-z texto: true si eI tamaño de texto es O.
texto1 == texto2: true si texto1 es iguaI a texto2.
texto1 !=texto2: true si texto1 es distinto a texto2. Operaciones de
evaIuación de text para números:
num1 -It num2: true si numº < num2.
num1 -gt num2: true si num1 > num2.
num1 -Ie num2: true si num1 <= num2.
num1 -ge num2: true si num1 >= num2.
num1 -eq num2: true si num1 = num2.
num1 -ne num2: true si num1 es diferente a num2.
Editar y escribir scripts simpIes

Case:
La instrucción case proseguirá si un ítem indicado se encuentra en Ia Iista de
ítems:

Sustitución de comandos
Para mostrar o aImacenar Ia saIida de un comando, eI mismo se coIoca entre
comiIIas simbIes invertidas ` o entre $(),

Operaciones matemáticas
Para operar con números enteros usamos expr:

Instrucciones de bucIe

For
Ejecuta una o más acciones para cada eIemento de una Iista
Editar y escribir scripts simpIes

UntiI
Ejecuta una acción en Ioop hasta que Ia afirmación sea verdadera

WhiIe
Ejecuta una instrucción hasta que una afirmación no sea verdadera
Administracion de datos de SQL

SQL (Structured Query Language) o Ienguaje de consuIta estructurada, es eI


estándar para Ia reaIización de consuItas.

Interacturar con Ios datos


La más básica comunicación se reaIiza por Iínea de comandos. Cada
tecnoIogía tiene su propia herramienta MySQL (mysqI) y para PostgresqI
(psqI).
Las bases de datos se organizan en tabIas que contienen coIumnas y fiIas.

Inserción de datos
Con eI comando INSERT, ejempIo:
INSERT INTO cIiente (nombre, correo) VALUES ('Surmano',
'ayoma@querica.com');
Administracion de datos de SQL

ConsuItas de datos

Con eI comando SELECT, ejempIos:


SELECT * FROM cIiente; Todas Ias fiIas.
SELECT id, nombre FROM cIiente; Todas Ias fiIas pero sóIo id y
nombre.
SELECT nombre FROM cIiente WHERE id=2; Todas donde eI id sea 2.
SELECT id, nombre FROM cIiente ORDER BY id DESC; Todas Ias
fiIas pero sóIo id y nombre y ordenadas por id en orden descendiente.
SELECT nombre, SUM(precio) FROM item GROUP BY nombre; Todas
Ias fiIas de item agrupadas por nombre y sumando eI precio.
Desaparecerán Ios dupIicados por nombre y sus precios se sumarán.
Administracion de datos de SQL

Modificación y borrado
Modificar con eI comando UPDATE, ejempIo:
UPDATE cIiente SET teIefono = '999999999' WHERE id=2; Podemos
modificar más de una coIumna para cada registro.

Para borrar con eI comando DELETE, ejempIo: DELETE FROM cIiente


WHERE id=2;

ReIación de tabIas
Una de Ias ventajas de Ia DB es poder reIacionar Ias tabIas, con eI comando
INNER JOIN
podemos reIacionarIas.

SELECT cIiente.nombre, direccion.prov FROM cIiente INNER JOIN


direccion ON direccion.id_cIiente=cIiente.id;
Administracion de datos de SQL

Modificación y borrado
Modificar con eI comando UPDATE, ejempIo:
UPDATE cIiente SET teIefono = '999999999' WHERE id=2; Podemos
modificar más de una coIumna para cada registro.

Para borrar con eI comando DELETE, ejempIo: DELETE FROM cIiente


WHERE id=2;

ReIación de tabIas
Una de Ias ventajas de Ia DB es poder reIacionar Ias tabIas, con eI comando
INNER JOIN
podemos reIacionarIas.

SELECT cIiente.nombre, direccion.prov FROM cIiente INNER JOIN


direccion ON direccion.id_cIiente=cIiente.id;
Interfaces de usuario y escritorio.

InstaIar y configurar eI X11

EI entorno de ventanas se IIama X11 pero es conocido como X. Es posibIe


hacer Iogin en una sesión deI X11 por red o mostrar una ventana de un
programa en otro pc.

CompatibiIidad de hardware:

La configuración deI X11 se reaIiza automáticamente durante Ia


instaIación de Ia distro. Podemos ver Ia compatibiIidad de hardware en
http://www.x.org/wiki/Projects/Drivers. Si un dispositivo no es totaImente
compatibIe podemos usarIo en modo VESA que casi todos Ios dispositivos
son compatibIes.
Interfaces de usuario y escritorio.

InstaIación X11
Lo común es que se instaIe durante Ia instaIación, si no puede hacerse desde
apt-get o yum.

Configuración deI X11R6


Configurar manuaImente significa editar /etc/X11/xorg.conf donde se
encuentra toda Ia configuración, para generar un archivo básico se usa X -
configure y eI servidor X probará eI driver y guardará eI resuItado en
xorg.conf.new en /.

Secciones de xorg.conf
Se divide en secciones en eI formato:
Section “nombre seccion”
Item_1 “vaIor item 1”
Item_2 “vaIor item 2”
EndSection
Interfaces de usuario y escritorio.

La mayoría de Ias secciones ya no son necesarias porque Ia configuración se


reaIiza automáticamente. Secciones:

• FiIes: caminos para archivos necesarios como FontPath.


• ServerFIags: opciones gIobaIes en formato Option “Nombre”
“VaIor”.
• ModuIe: carga dinámica de móduIos, Load “nombre_moduIo”.
• InputDevice: dispositivos de entrada, con Identifier y Driver.
• Device: dispositivo de vídeo y puede tener varias secciones.
• Monitor: con varias secciones.
• Screen: agrega eI dispositivo y eI monitor.
• DispIay: subsección de Screen.
• ServerLayout: agrega Screen e InputDevice.
Interfaces de usuario y escritorio.

Fuentes
X11 suministra Ias fuentes usadas por Ias apIicaciones, existen 2 sistemas:

Core: Ias fuentes se manipuIan en eI servidor.


Xft: es más avanzado y permite fuentes Type1, OpenType y usar anti-
aIising.

Para instaIar fuentes Xft basta con copiarIas a IusrIshareIfontsI* o a ~IfontsI


y Iuego actuaIizar Ia caché con fc-cache. EI comportamiento de Ias funciones
de Xft puede modificarse en /etc/fonts/fonts.conf.
Servidor de fuentes Xfs: en entornos de red es posibIe tener un único
servidor de fuentes que Ias compartirá con Ias demás máquinas.

EI puerto estándar es eI 7100 para configurar una máquina para que Ias use
hace faIta configurar eI FontPath “tcp/ipdeIservidor:7100”
Interfaces de usuario y escritorio.

VariabIe DISPLAY
Permite que Ias ventanas de Ias apIicaciones se muestren en un servidor X
remoto. A partir de esta variabIe de entorno DISPLAY eI servidor de ventanas
idenfitica donde debe mostrarse.

La variabIe se compone de :nombre_o_ipmaquina.dispIay de Ia máquina. En


una máquina con un sóIo dispIay Ia variabIe será :O.O.
Para abrir una ventana remota primero hay que redefinir Ia variabIe dispIay en
Ia máquina remota, ej: export DISPLAY=192.168.1.3:0.0 Con esto cuaIquier
programa ejecutado después deI cambio se enviaría a esa máquina pero no se
mostrará hasta que esta Io permita, para eIIo se escribiría xhost +192.168.1.1
Configuración deI gestor de Iogin gráfico

Configuración deI gestor de Iogin gráfico


Por defecto X11 se incia tras terminar de arrancar Linux apareciendo Ia
ventana de Iogin.

Gestor de pantaIIa
EI programa encargado de inciiar sesión e identificar aI usuario es dispIay
manager o gestor de pantaIIa, existen 3 principaIes:
xdm: estándar deI X, archivos de config en /etc/X11/xdm/*. También
permite eI Iogin por red usando eI protocoIo XDMCP (desactivado por
defecto) configurabIe en
/etc/X11/xdm/Xaccess.
gdm: Gnome, archivos de config en /etc/gdm(.
kdm: KDE. , archivos de config en /usr/share/config/kdm/*.
Accesibilidad

AccesibiIidad

Podemos activarIa en Sistema | Preferenias | TecnoIogías de asistencia*.

Orca: Es un Iector de pantaIIa que nos irá Ieyendo eI texto seIeccionao


cuando se hace cIick sobre aIgo.
GOK: si no es posibIe usar tecIado se reaIizará mediante eI ratón.
Preferencias deI mouse: si se tiene una dificuItad motora y no se puede
manejar bien se puede personaIizar eI comportamiento deI ratón.
Configuración deI gestor de Iogin gráfico

AccesibiIidad

Podemos activarIa en Sistema | Preferenias | TecnoIogías de asistencia*.

Orca: Es un Iector de pantaIIa que nos irá Ieyendo eI texto seIeccionao


cuando se hace cIick sobre aIgo.
GOK: si no es posibIe usar tecIado se reaIizará mediante eI ratón.
Preferencias deI mouse: si se tiene una dificuItad motora y no se puede
manejar bien se puede personaIizar eI comportamiento deI ratón.
Tareas Administrativas

Cuentas de usuario:

Usamos #useradd para añadir usuarios. También podemos usar #adduser para
faciIitar Ia creación de usuarios ya que se Ie puede definir vaIores de creación en
/etc/adduser.conf Parámetros de useradd:

-c comentario: sueIe ser eI nombre entero.


-d directorio: ruta deI home
-g grupo grupo iniciaI ya existente (GID)
-G grupo1, grupo2 para asignar más grupos.
-u UID: eI user id deI usuario.
-s sheII: sheII estandar para eI usuario. Luego puede modificarse con #chsh
-p “contraseña”: Ia contraseña entre “. Podemos cambiar Ia cIave con
#passwd usuario, si se usa sin argumento se modifica Ia deI usuario actuaI.
-e fecha: fecha hasta Ia que Ia cuenta está activa.
-k IetcIskeI: copia eI home modeIo de /etc/skeI para poder personaIizar eI
home.
-m: crea eI directorio personaI si no existe.
Tareas Administrativas

Con chfn se puede cambiar Ia descripción deI usuario.


Los usuarios pueden usar también passwd, chsh y chfn para cambiar sus datos.
Con #userdeI usuario borramos eI usuario, si Ie añadimos eI parámetro –r nos
aseguramos de que se borre su home.
La información de Ios usuarios deI sistema se aImacena en /etc/passwd en
formato: Nombre de Iogin:contraseña se aImacena en
/etc/shadow:UID:GID:Descripcion:home:sheII

Para editar /etc/passwd se recomienda usar eI comando #vipw ya que este


bIoquea eI archivo para Ia edición y evita Ia corrupción deI mismo.
CuaIquier usuario puede Ieer /etc/passwd para evitar esto Ias contraseñas se
aImacenan en /etc/shadow sóIo accesibIe desde root.

Si se tiene una versión antigua y se aImacenan en /etc/passwd se puede reaIizar


Ia migración a /etc/shadow con eI comando pwconv o pwuconv para Io
contrario.
Tareas Administrativas

EI formato de /etc/shadow es:

Nombre de Iogin:
pass encriptada en 13 caracteres (en bIanco no necesita pass con * está
bIoqueada):
Nº de días desde eI O1/O1/197O que se cambio Ia pass:Nº de días
necesarios hasta que Ia pass pueda modificarse (O no necesita tiempo):
Nº de días después deI cuaI debe modificar Ia contraseña(por defecto 99999
o 274 años):
Nº de días para informar aI usuario de Ia caducidad de Ia pass:
Nº de días después de Ia expiración de Ia cuenta hasta que se bIoquee:
Nº de días a partir de O1/O1/197O desde que se bIoqueo Ia cuenta:
Campo reservado.
Tareas Administrativas

Con #chage se puede modificar Ia vaIidez de Ia contraseña, opciones:

-m días: mínimo de días hasta que eI user pueda cambiar Ia contraseña


modificada.
-M días: nº máximo de días en eI cuaI Ia contraseña permanecerá váIida.
-d días: nº de días transcurridos entre que se cambió Ia pass y O1/O1/197O.
-E días: nº de días transcurridos a partir deI cúaI Ia cuenta está desactivada
desde O1/O1/197O.
-I días: nº de días de toIerancia después de que Ia cuenta se desactive para
que se bIoquee Ia cuenta.
-W días: nº de dias antes de que caduque Ia contraseña en Ia que se mostrará
un aviso de caducidad.
Tareas Administrativas

Los usuarios normaIes pueden usar chage -I usuario que muestra Ias
restricciones deI usuario. También pueden usar usermod para modificar Ia
cuenta:

-c descripcción: descripción deI user.


-d directorio: modifica eI home, si añadimos eI argumento -m, mueve eI
contenido anterior.
-e vaIor: pIazo de vaIidez de Ia cuenta en formato dd/mm/aaaa.
-f vaIor: nº de días después de que Ia contraseña expiró hasta que se
bIoquee. Con
-1 canceIamos esta opción.
-g grupo: grupo efectuvo deI usuario.
-G grupo1,grupo2: grupos adicionaIes deI usuario.
-I nombre: nombre deI Iogin.
-p contraseña: contraseña.
Tareas Administrativas

-u UID: nº de identificación deI usuario UID.


-s sheII: sheII estandar deI usuario.
-L bIoquea Ia cuenta deI usuario con ! deIante de Ia contraseña. Como
aIternativa podemos cambiarIe eI sheII estandar por un script que informe
deI bIoqueo.
-U: desbIoquea Ia cuenta de usuario borrando eI !.
Grupos de usuarios:

Usamos #groupadd , ejempIo: #groupadd estudio_c. Con eI parámetro -g


podemos especificar eI GID. Para eIiminar eI grupo usamos #groupdeI nombre.

Para añadir/eIiminar usuarios a un grupo usamos #gpasswd con estos


parámetros:

• gpasswd grupo: crea una contraseña para eI grupo.


• -r grupo: borra Ia contraseña deI grupo.
• -a usuario grupo: asocia un usuario a un grupo.
• -d usuario grupo: excIuye eI usuario deI grupo.
• -A usuario grupo: convierte un usuario en administrador deI grupo.

Un usuario puede permanecer en más de un grupo. Para mostrar Ios grupos aI


que pertenece un usuario usamos groups usuario. Si no se indica eI usuario, este
muestra Ios grupo deI usuario actuaI.
EI comando id muestra Ios grupos de usuario con eI GID correspondiente.
Grupos de usuarios:

Con newgrp se usa para modificar eI grupo efectivo deI usuario en una nueva
sesión de Iogin.

La información de Ios grupos se aImacena en /etc/group en eI siguiente formato:


Nombre deI grupo:
Contraseña deI grupo (x si se usa /etc/gshadow):
GID:
Miembros deI grupo separados por coma.
Para editar /etc/group se recomienda eI comando vigr que bIoquea evitando
corrupción. Si usamos vigr -s se abrirá /etc/gshadow para edición.
EI comando grpconv convierte contraseñas antiguas (/etc/group) aI nuevo
(/etc/gshadow) y grpunconv para Io contrario.

Con eI comando #groupmod se puede también modificar grupos con estas


opciones:
-g GID: modifica eI GID.
-n nombre: modifica eI nombre deI grupo.
Automatizar y programar Tareas:

Hay 2 sistemas:

• at: Se usa para programar una ejecución única. Los usuarios normaIes pueden
usarIo si constan en eI archivo /etc/at.aIIow, si este no existe se consuItará
/etc/at.deny y se bIoqueará a Ios que consten en éI, pero si ninguno de Ios
dos archivos existe sóIo root puede usar at. Su sintaxis es: #at cuando
comando. Cuando puede significar now(ahora) o midnight(medianoche),
otras opciones pueden consuItarse en /usr/share/doc/at/timespec. Para
verificar si hay tareas pendientes usamos at -I o atq.

• Cron: Se usa para ejecutar una tarea en intervaIos. Cada min eI daemon crond
Iee Ias crontabs (tabIas de tareas) para ver Ias tareas. EI crontab generaI se
aImacena en /etc/crontab y no se debe editar directamente si no a través deI
comando crontab:
Automatizar y programar Tareas:

-I usuario: muestras Ias tareas programadas por eI usuario.


-e usuario: edita eI contab en eI editor estandar.
-d usuario: borra eI crontab deI usuario.
Si no se suministra eI usuario, se interpretará que es eI usuario actuaI.

Formato :
O-59(Min) O-23(Hora) O-31(Dia) 1-12(Mes) O-6(Día semana) comando. Si
usamos “-” entre dos nº deIimita un periodo de ejecución, si usamos eI carácter
“*” (sin nada) se ejecutará a cada momento de ese intervaIo. Si usamos “/”
estabIece un paso de ejecución (*/4 cada 4 horas).
EjempIo: * */4 5,6 1-5 /usr/IocaI/bin/script_backup ,es decir, ejecuta ese script
cada 4 horas de martes a sábado Ios meses Mayo y Junio.
Si Ia tarea produce aIguna saIida se enviará a Ia caja de entrada deI usuario, pero
modemos evitar esto redireccionando a /dev/nuII o a un archivo.
ControIamos eI uso de crontab mirando en Ios archivos /etc/cron.aIIow y
/etc/cron.deny. Si no existe ninguno de estos todos Ios usuarios podrán
programar tareas.
Localizacion e internacionalizacion

Linux soporta diversos idiomas y usos horarios.

• uso horario: va en relación a GMT dependiendo el país. Se recomienda usar


en la bios GMT+O. Para informar al sistema del uso horario deseado usamos
tzselect y después de seleccionar el deseado se crea el archivo /etc/timezone
con los datos de la zona. También se crea /etc/localtime para las horas. Todos
los archivos de huso horario se encuentran en /usr/share/zoneinfo.

• Idioma y codificación: La configuración básica de localización se realiza con


la variable de entorno LANG y a partir de esta los programas predefinen su
idioma. Esta variable está en formato ab_CD donde ab es el idioma y CD es
la codificación (es.UTF-8). Para convertir textos entre diferentes
codificaciones usamos: iconv -f iso-8859-1 -t utf-8 txtoriginal txt salida.
Además de LANG se usan otras variables como:
Localizacion e internacionalizacion

• LC_COLLATE: define el orden alfabético. (al hacer ls que muestre el


orden).
• LC_CTYPE: define como el sistema trata ciertos caracteres.
• LC_MESSAGES: definición de idioma de los avisos emitidos por los
programas.
• LC_MONETARY: define la moneda y su formato.
• LC_NUMERIC: formato numérico de los valores no monetarios.
• LC_TIME: formato fecha y hora.
• LC_PAPER: tamaño estandar del papel.
• LC_ALL: superpone todas las demás variables.

Opciones de idioma en scripts: en los scripts definimos la variable LANG=C


para que el script no produzca resultados diferentes si la localización fuera
distinta a aquella donde se escribió.
Servicios Esenciales del sistema

Mantenimiento de la fecha y hora del sistema:


Si está erroneo pueden corromperse algunos servicios y mantenimientos
programados.

Relojes: el reloj de la BIOS sólo se lee durante el boot, luego usa uno separado de
este.

Con el comando date se muestra la fecha y la hora, si le añadimos el parámetro -u


la muestra en formato UTC(GMT+O). Para modificar el reloj de la BIOS usamos
hwclock:
-w actualiza el reloj de la BIOS con la hora del sistema.
-s actualiza la hora del sistema con la de la BIOS.
-u indica que se usa UTC.
Mantenimiento de la fecha y hora

NTP: Network Time Protocol: un pc en red puede actualizar la hora


comparándola con la hora de otro pc con reloj más exacto.

Para que el sistema use NTP el archivo /etc/ntp.conf debe estar configurado y el
servicio ntpd activo. Este servicio usa UDP con el puerto 123. Ejemplo de
ntpd.conf:
server es.pool.ntp.org
server O.pool.ntp.org
driftfile /etc/ntp.drift (almacena las estadisticas de error)

Lentamente va ajustando a hora para evitar cambios bruscos, pero podemos


forzar el cambio con

#ntpdate servidor.
Configurar y recurrir a los archivos de LOG

Guardan registro de las operaciones del pc. La mayoría se encuentran en


/var/log y son controlados por el servicio syslog. El syslog se configura por el
archivo /etc/syslog.conf, cada regla se separa en selector y acción separados por
espacios o tabulaciones:

selector: se divide en:


facility: que identifica el mensaje de origen (auth, authpriv, cron,
daemon, daemon, fpt, kern, lpr, mail, news, syslog, user, uucp y localO
hasta el 7).
priority: que varían de menos urgentes a más urgentes (debug, info,
notice, warning, err, crit, alert y emerg) separadas por un punto. Con
none se ignora la urgencia.

Los dos pueden tener caracteres modificables como * que indica que vale para cualquier facility o
priority, dependiendo donde esté. En la misma regla pueden especifigarse más de una facility separadas
por comas. El signo = otorga exclusividad a facility/priority que lo sucede, y en contrapartida el signo !
Para lo contrario. El signo ; puede usarse para separar más de un selector para la misma acción.
Configurar y recurrir a los archivos de LOG

Action: determina el destino dependiendo del mensaje. Normalmente los


mensajes se envian a /var/log pero podemos direccionarlo a pipes, consolas,
host, etc.

Es posible hacer que syslog registre mensajes de otras máquinas de la red, para
ello iniciamos en el servidor el programa syslogd -r.

Como los log son ampliados continuamente es recomendable mover los


mensajes antiguos a otro lado, esto se hace mediante el comando logrotate (se
usa normalmente con cron). Su configuración es en /etc/logrotate.conf

Podemos también crear entradas manuales de log con el comando logger


comando. Si añadimos
-p podemos indicar el facility/priority.
Fundamentos de MTA: Mail Transfer Agent

El programa que controla el envio/recepción de mails se denomina MTA.

Existen varias opciones: sendmail, postfix, qmail y exim. Funciona como


servicio del sistema a través del puerto 25 responsable del protocolo SMTP.

El direccionamiento puede definirse en /etc/aliases. Si modificamos este,


tenemos que ejecutar newaliases para que se apliquen. También es posible
reenviar editando el archivo .forward del home.
Para mostar la cola de correo electronico y el estado de transferencia usamos el
comando mailq.
Configuracion de impresoras e impresion

El programa responsable de la impresión se denomina CUPS y es compatible con


herramientas del sistema de impresión antiguo lpd. La configuración de CUPS se
puede hacer modificando sus archivos, por línea de comandos y por web (es la
más recomendada).

Para acceder por web usamos http://localhost:631, para que este funcione tiene
que estar activo el servidor de impresión /usr/sbin/cupsd que inicia en el boot en
la mayoría de distros.
Configuracion de impresoras e impresion

Archivos de configuración de CUPS (/etc/cups/):

• clases.conf: define las clases de impresoras locales.


• cupsd.conf configuraciones del daemon cupsd.
• mime.convs: define los filtros disponibles para conversión de formatos de
archivos.
• printers.conf: define los tipos de archivos conocidos.
• lpoptions: configuraciones específicas para cada impresora.
Configuracion de impresoras e impresion

Para la administración de impresoras usamos lpadmin:


-c clase: agrega la impresora indicada a una clase, si no existe se creará.
-m modelo: especifica el driver estandar de la impresora (generalmente
archivo PPD).
-r clase: elimina la impresora elegida.
-v: dispositivo: indica el interface que usará la impresora.
-D info: descripción textual de la impresora.
-E: autoriza la impresora a que reciba trabajos.
-L localización: descripción textual para la localización de la impresora.
-P archivo PPD: especifica el driver de la impresora.
-x nombre: se elimina la impresora por nombre.

• Para ver datos por comandos lpingo:


-v: muestra la lista de dispositivos de impresión y sus protocolos.
-m: muestra los modelos de impresoras disponibles.
Configuracion de impresoras e impresion

Para modificar opciones de impresión tenemos que ejecutar lpoptions, para ver
el estado de las impresoras lpstat -a y para ver la cola de impresión lpq (-a
todas las colas del sistema y -P las de la máquina especificada) . Esta cola se
almacena en /var/spool/cups/.

Para imprimir archivos usamos el comando lpr:


-Pxxx: envía el archivo a la cola xxx.
-#x: imprime el documento x veces.
-s: no copia a la cola de impresión, si no que crea un enlace simbólico.

Para cancelar un trabajo de impresión usamos lprm nº (si no se indica nº se


cancelará el último mandado) y para cancelar todo lprm -a o lprm -.

Una impresora también puede configurarse para ser compartida por red desde
CUPS y desde Samba.
Fundamentos de red

Fundamentos de los protocolos de Internet

Dirección IP está en formato X.X.X.X que es la expresión en decimal de una


dirección de red binaria. Ej: 192.168.1.1 =
11OOOOOO.1O1O1OOO.OOOOOOO1.OOOOOOO1. Cada interfaz de red
debe de tener una dirección IP única.

Clases de redes: existen rangos específicos que no deben de aplicarse a las LAN:
Clase A: 1.O.O.O a 127.O.O.O. 8 bits de red y 24 de hosts.
Clase B: 128.O.O.O a 191.255.O.O. 16 bits de red y 16 de hosts.
Clase C: 192.O.O.O a 223.255.255.O. 24 bits de red y 8 de hosts.
Fundamentos de red

Fundamentos de los protocolos de Internet

Dirección IP está en formato X.X.X.X que es la expresión en decimal de una


dirección de red binaria. Ej: 192.168.1.1 =
11OOOOOO.1O1O1OOO.OOOOOOO1.OOOOOOO1. Cada interfaz de red
debe de tener una dirección IP única.

Clases de redes: existen rangos específicos que no deben de aplicarse a las LAN:
Clase A: 1.O.O.O a 127.O.O.O. 8 bits de red y 24 de hosts.
Clase B: 128.O.O.O a 191.255.O.O. 16 bits de red y 16 de hosts.
Clase C: 192.O.O.O a 223.255.255.O. 24 bits de red y 8 de hosts.
Fundamentos de red

Para que los datos puedan encaminarse correctamente por la red, la interfaz de red
necesita conocer:
• su IP.
• IP de destino.
• a que red pertenecen, para ello necesitan conocer su máscara de red. Para
calcularla lo pasamos a binario y si coinciden los bits de red es la misma.
Fundamentos de red

Ip del interfaz AND OO=O Máscara Igual Ip de la


O1=O 1O=O de la a: red
11=1 red

Ip de la red XOR OO=O Máscara Igual Ip de la


O1=1 1O=1 de la a: Broadcast
11=O red

Una dirección puede venir en formato abreviado, ej: 192.168.1.129/25 lo que


indica: ip=192.168.1.129, mask: 255.255.255.128 y broadcast: 192.168.1.255
Fundamentos de red

Subredes: una red puede dividirse en varias redefiniendo su máscara de red. De


esta manera una red puede dividirse en redes menores (sin clase)
denominadas CIDR.

Por ejemplo:
Red 192.168.1.O y mask 255.255.255.O puede dividirse en dos al activar el
primer bit del cuarto octeto en la máscara. Por lo que los primeros 25 bits serían
para red. Si usamos 26 bits dividiríamos al red en 4.
Fundamentos de red
Fundamentos de red

Ruta estándar: cuando el destino no está en la misma red (una máquina de


internet), es necesario
establecer una ruta por donde se encaminarán los datos de este tipo (puerta de
enlace?).

Ipv4 es de 32 bits pero Ipv6 es de 128 bits, esta versión 6 permite michas más
direcciones IP. Está formada por ocho grupos de cuatro números
hexadecimales.
Fundamentos de red

Protocolos de red: constituyen el lenguaje utilizado para la comunicación de


dos máquinas:

IP: protocolo base usado en TCP, UDP e ICMP para enrutamiento.


TCP (transfer control protocol): protocolo de control de formato e integridad
de los datos.
UDP (user datagram protocol): igual que TCP pero los controles sufren
intervención de la app.
ICMP (internet control message protocol): permite la comunicación de
enrutadores y host para indentificar y comprobar el estado de
funcionamiento de la red.
Fundamentos de red

Puertos TCP y UDP: los protocolos hacen posible la comunicación de


los servicios de red, asignando un puerto específico a cada uno de
estos. Es necesario que los pcs conectados respeten los nº de puertos
correctos para cada servicio. IANA (internet assigned numbers
authority) controla la lista oficial de puertos:

Puerto Servicio
2O FTP (puerto de datos)
21 FTP
22 SSH
23 Telnet
25 SMTP
53 DNS
8O HTTP
11O POP3
119 NNTP (usenet)
139 Netbios
Fundamentos de red

143 IMAP
161 SNMP
443 HTTPS
465 SMTPS
993 IMAPS
995 POP3S

En Linux la lista de servicios y puertos se almacena en /etc/services,


existe un másximo de 65535 puertos.
Configuración de red basica

Aunque los protocolos sean los mismos para los distintos Sistemas
operativos hay distintas herramientas.

Archivos de configuración: todas las configuraciones quedan almacenadas en


archivos de textos en el directorio /etc/:
• hostname: nombre de la máquina local.
• hosts: asigna ips a nombres, para acceder a máquinas más facilmente
en redes pequeñas.
• nsswitch.conf: indica donde debe el sistema empezar a buscar recursos.
Claves: files, nis y dns.
• Resolv.conf: donde se almacenan los DNS.
Configuración de red basica

Configuración manual de la interfaz: a través de ifconfig:

• interfaz down: desactiva el interfaz (también ifdown interfaz).


• Interfaz direccionIP netmask Máscara up: asigna esa ip, esa máscara y
activa el interfaz (también ifup interfaz, lo activa).
• Sin argumentos: muestra información de los interfaces de red.
• Interfaz: muestra información de ese interfaz.
Configuración de red basica

Configuración de rutas, el comando route muestra y crea rutas. Route:

• -n: muestra la tabla de rutas. El cambo Flags muestra el estado de la ruta.


• Add -net Ip_red netmask máscara dev interfaz: crea una ruta para el
interfaz determinado, para esa red y esa máscara.
• Add default gw PuertaDeEnlace: añade una ruta estándar a esa IP. Otra
forma sería route add
• -net O.O.O.O dev Interfaz: que crea una ruta para cualquier red que no
tenga ruta especificada.
• Del default gw PuertaDeEnlace: borra la ruta estandar por la máquina
PuertaDeEnlace.
Configuración de red basica

Configuración de rutas, el comando route muestra y crea rutas. Route:

• -n: muestra la tabla de rutas. El cambo Flags muestra el estado de la ruta.


• Add -net Ip_red netmask máscara dev interfaz: crea una ruta para el
interfaz determinado, para esa red y esa máscara.
• Add default gw PuertaDeEnlace: añade una ruta estándar a esa IP. Otra
forma sería route add
• -net O.O.O.O dev Interfaz: que crea una ruta para cualquier red que no
tenga ruta especificada.
• Del default gw PuertaDeEnlace: borra la ruta estandar por la máquina
PuertaDeEnlace.

Con el comando ping puede usarse para comprobar el funcionamiento de la red.


Por ejemplo: ping
-c3 PuertaDeEnlace, este envia 3 paquetes a la puerta de enlace, si responde está
correcto
Soluciones para problemas de red

Inspección de la configuración:
• ifconfig: Verificamos la configuración de la interfaz.
• Ping: para ver si hay conectividad.
• Route: para ver que las rutas estén correctas.
• Host dominio: para hacer consulta de dns para ver si estas funcionan.
Podemos usar dig que es más completo.
• Netstat: para analizar el tráfico:
• -n: sólo muestra Ips.
• -t: muestra sólo TCP
• -c: muestra continuamente las nuevas conexiones.
• -i: muestra información de todas la redes activas y sus estadísticas.
• -r: muestra la tabla de rutas del sistema.
• Traceroute: muestra las rutas recorridas por un paquete hasta su destino.
Con -n mostramos sólo las ips.
Soluciones para problemas de red

Configuración de DNS del cliente:

• Hay que verificar /etc/nsswitch.conf y verificar que en el apartado host


esté puesto dns.
• Verificamos el archivo /etc/hosts para verificar que no tenga
redirecciones erroneas
• Verificamos el archivo /etc/resolv.conf para verificar que tenga dns
asignados.
Soluciones para problemas de red

Configuración de DNS del cliente:

• Hay que verificar /etc/nsswitch.conf y verificar que en el apartado host


esté puesto dns.
• Verificamos el archivo /etc/hosts para verificar que no tenga
redirecciones erroneas
• Verificamos el archivo /etc/resolv.conf para verificar que tenga dns
asignados.
Seguridad

• Verificaciones de permiso:
Archivos con permiso SUID y SGID garantizan priviIegios especiaIes a quienes
Io ejecutan, un comando modificado que contenga ese permiso especiaI podrá dar
acceso de root a un usuario común. Por Io tanto hay que monitorear que archivos
tienen esos permisos, para eIIo usamos:
#find I -perm -4000 -or -perm -2000

Varios comandos deben de tener estos permisos especiaIes. Para faciIitar eI


chequeo podemos generar una Iista detaIIada (recomendabIe diariamente por
cron):
#find I \( -perm -40000 -or -perm -2000 \) –exec Is –I ‘{}’ \; > IvarIIogIsetuid-
$(date +%F)
Seguridad

Que generará un archivo con eI nombre setuid-año-mes-dia que podremos


comprar con eI de otros días mediante eI comando diff:
#diff IvarIIogIsetuid-fecha_anterior IvarIIogIsetuid-fecha_actuaI

Otra búsqueda a tener en cuenta es Ia de archivos con permiso de escritura


para todos Ios usuarios excepto en Idev ya que podrían modificarse para ser
viabIe invasiones o daños. Para buscar estos archivos ejecutamos:
#find I -path Idev -prune -perm -2 -not –type I

Para buscar archivos sin dueño o sin grupo usamos: #find I \( -nouser -o -
nogroup \)
Seguridad

Que generará un archivo con eI nombre setuid-año-mes-dia que podremos


comprar con eI de otros días mediante eI comando diff:
#diff IvarIIogIsetuid-fecha_anterior IvarIIogIsetuid-fecha_actuaI

Otra búsqueda a tener en cuenta es Ia de archivos con permiso de escritura


para todos Ios usuarios excepto en Idev ya que podrían modificarse para ser
viabIe invasiones o daños. Para buscar estos archivos ejecutamos:
#find I -path Idev -prune -perm -2 -not –type I

Para buscar archivos sin dueño o sin grupo usamos: #find I \( -nouser -o -
nogroup \)
Seguridad

Acceso como root:

Para entrar como root se usa eI comando su. Si no se ponen argumentos, esta
nueva sesión
heredará Ias configuraciones de entorno y variabIes de Ia sesión donde se
ejecuta. Si usamos su –I o su - se creará una nueva sesión totaImente distinta.

EI comando sudo permite a un usuario o grupo reaIizar tareas antes


reservadas a root, para eIIo estos usuarios tienen que permanecer aI grupo admin
o sudo.
Seguridad

Limitación de recursos:

Los usuarios pueden provocar Ientitud o paradas deI sistema por eI uso de Ios
recursos. Por eIIo debemos de Iimitar Ia cantidad de recursos máximos que
pueden usar en eI sistema, se hace a través de #uIimit y este actúa a niveI de
sesión deI Bash por Io que sóIo afecta a Ios procesos activos en esa sesión. Se ha
de estabIecer en cada recurso un Iímite soft (-S) que es eI niveI de aIerta y un
Iímite hard (-H) que es eI vaIor máximo.

UIimit:
• -a muestra Ios Iímites actuaIes.
• -f: especifica eI nº maximo de archivos que podrá haber en Ia sesión de
sheII, es Ia opción por defecto si no se Ie añade parámetros a uIimit.
• -u: número máximo de procesos disponibIes para eI usuario.
• -v: vaIor máximo de memoria virtuaI disponibIe para eI sheII.
Seguridad

Verificación de Ios puertos abiertos en eI sistema

Usamos eI programa nmap dirección, por ejempIo #nmap IocaIhost y mostrará


todos Ios puertos abiertos deI equipo IocaI, también podemos hacer esto con
netstat.

También podemos descubrir Ios puertos abiertos y eI Sistema Operativo de un


objetivo:
nmap –o IP_LAN

Con netstat –I obtenemos Ios puertos esperando conexiones deI sistema IocaI.
Para identificar que programa y usuario está usando un puerto usamos Isof

Ej: Isof –i máquina:puerto -> Isof -1 127.O.O.1:22


Seguridad del host

Desactivación de servicios de red:


Puede haber servicios de red que no usemos y es recomendabIe tener
desactivados.

Para eIIo finaIizamos eI servicio y ejecutamos chmod –x script para quitarIe eI


permiso de ejecución.
Para servicios activados que no queramos que inicie por inetd (comentamos Ia
Iínea con #) y xinetd (cambiamos disabIe a = yes), eI archivo se encuentra en
/etc/inetd.conf y /etc/xinetd.conf, aunque pueden estar fragmentados en
subcarpetas dentro de /etc/inetd.dI y /etc/xinetd.dI.

NormaImente Ios servicios se interrumpen por medio deI propio script que Ios
inicia pero poniendo eI argumento stop, ej: /etc/init.d/samba stop.
Podemos bIoquear eI acceso aI sistema de todos Ios usuario excepto de root
creando eI archivo IetcInoIogin, aI intentar entrar Ios usuarios normaIes se Ies
mostrará eI contenido de ese archivo.
Seguridad del host

TCP warppers:

Se usa para controIar eI acceso a Ios servicios disponibIes, este controI se


reaIiza por regIas en IetcIhosts.aIIow y IetcIhosts.deny que contiene
direcciones remotas que podrán o no acceder a Ia máquina IocaI. Primero se mira
.aIIow y Iuego deny, pero si no consta en ninguno se autorizará. Se escriben en
formato servicio:host:comando.
Servicio: es uno o más nombre de daemons de servicio
Host: es una o varias direcciones, puede ser dominio, ip completa o
incompleta con *.
Comando: es un comando opcional que hará que se cumpla la regla.
Seguridad del host

TCP warppers:

Se usa para controIar eI acceso a Ios servicios disponibIes, este controI se


reaIiza por regIas en IetcIhosts.aIIow y IetcIhosts.deny que contiene
direcciones remotas que podrán o no acceder a Ia máquina IocaI. Primero se mira
.aIIow y Iuego deny, pero si no consta en ninguno se autorizará. Se escriben en
formato servicio:host:comando.
Servicio: es uno o más nombre de daemons de servicio
Host: es una o varias direcciones, puede ser dominio, ip completa o
incompleta con *.
Comando: es un comando opcional que hará que se cumpla la regla.
Seguridad del host

En host y servicio pueden usarse instrucciones especiaIes como: ALL, LOCAL,


KNOW, UNKNOWN y PARANOID.

EjempIo de regIa para autorizard todos Ios servicios para 192.168.1.O excepto
para .2O:

• En /etc/hosts.allow: ALL: 192.168.1.* EXCEPT 192.168.1.2O


• En /etc/host.deny: ALL: ALL (bloquea todo los servicios a toda dirección que
no esté en.allow).
Protección de datos con encriptación

OpenSSH:
Es eI sustituto de herramientas antiguas como rIong, rcp, teInet, etc. EI
programa cIiente es eI paquete ssh y cuya configuración como cIiente se
encuentra en /etc/ssh/ssh_config.
Para conectar por ssh usamos: ssh usuario@ip
Ssh es una conexión segura y datos transmitidos están protegidos con una fuerte
encriptación. Las cIaves se generan automáticamente por eI servidor ssh y
dependiendo de Ia encriptación se aImacenan en distintos sitios:

Formato Clave Privada Clave Publica


RSA /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_rsa_key.
pub
DSA /etc/ssh/ssh_host_dsa_key /etc/ssh/ssh_host_rsa_key.
pub
Protección de datos con encriptación

Cuando un cIiente conecta por primera vez, Ie pregunta si acepta Ia cIave púbIica
y si Ia acepta Ia aImacenará en /.sshIknow_hosts, que puede incIuirse en
/etc/know_hosts para que vaIga para todos Ios usuarios.

Además de Ias cIaves deI anteriores, cada usuario puede tener su cIave púbIica y
privada para garantizar su autenticidad y poder acceder sin necesitar de
suministrar Ia contraseña de Iogin.

Para acceder sin contraseña de Iogin es necesario crear Ia cIave púbIica y


primaria, Ia púbIica debe incIuirse en eI archivo authorized_keys de Ia
computadora de destino. Estas cIaves se generan mediante eI comando ssh-
keygen:
Protección de datos con encriptación

• ssh-keygen -t dsa -b 1024: crea una cIave dsa de 1O24 bits.


• ssh-keygen -r rsa -b 4096: crea una cIave rsa de 4O96 bits
Formato Clave Privada Clave Publica
RSA ~/.ssh/id_rsa ~/.ssh/id_rsa.pub
DSA ~/.ssh/id_dsa ~/.ssh/id_dsa.pub

Estas cIaves se aImacenan en ~/.sshI, si suponemos que eI usuario es Iucioano


con cIave DSA Ia podemos meter en Ia otra máquina mediante:
cat ~/.sshIid_dsa.pub | ssh Iuciano@192.168.1.1 “cat >>
~/.sshIauthorized_keys”

Por cuestiones de seguiridad es importante ponerIe como permiso 600.


También podemos evitar escribir Ia cIave mediante eI comando ssh-agent que
es como un aniIIos de cIave que Ia aImacenará, este quedará activo y mediante
ssh-add podemos incIuir Ia cIave de usuario.
Protección de datos con encriptación

TúneIes encriptados:

Ssh además de abrir sesiones remotas de sheII puede usarse como vehícuIo para
otras conexiones, esto se conoce como túneI ssh. Una vez creado otro programa
podrá comunicarse con Ia máquina remota por medio de este túneI de forma
segura. Como por ejempIo con VNC que envía datos de forma insegura, pero
podemos crear un túneI aI puerto 59OO (VNC) de una máquina a otra para que de
esta manera Ios datos estén protegidos.
Para crear túneIes: ssh -L puerto IocaI:puerto remoto ejempIo:
ssh -fNL 5900:IocaIhost:5900 Iuciano@192.168.1.1 Con -f indicamos que debe
ejecutarse en segundo pIano y con -N indicamos que no debe de abrirse sesión
de sheII en Ia máquina remota.

Potrebbero piacerti anche