Fedora & Redhat Linux
Byron Díaz Padilla
[email protected]
!
17:30-21:30 Hrs.
!
R:19:00 Hrs.
!
!
Presentación
•Nombre
!
•Empresa
!
•Puesto
!
•Conocimiento de Linux
!
•Expectativas del curso
!
•Cuales son sus hobbies?
!
Un vistazo a Fedora y Red Hat
Enterprise Linux
!
¿Qué es Linux?
!
Las raices de Linux en Unix
!
Principales ventajas de linux
!
Qué es RHEL y Fedora
!
Como elegir entre Fedora y RHEL
!
La cultura del Software Libre
¿Que es Linux?
•
Modelo de desarrollo:
!
Software
libre y código abierto
•
Núcleo:
!
Linux
•
Licencia:
!
GNU
GPL y otras
GNU/LINUX
GNU/Linux es uno de los términos empleados para
referirse a la combinación del núcleo o kernel libre
similar a Unix denominado Linux, que es usado con
herramientas de sistema GNU.
!
La historia del núcleo Linux esta fuertemente
vinculada a la del proyecto GNU.
En 1991 Linus Torvalds empieza a trabajar en un
reemplazo no comercial para MINIX que mas
adelante acabaría siendo Linux.
Caracteristicas
•GNU/Linux es utilizado por el 80% de los principales 500
servidores del mundo.
•Otro informe le da una cuota de mercado de 90% en los
500 mayores supercomputadores.
•Con que cada vez va más en aumento en el mercado el
sistema GNU/Linux también es usado en el segmento de
las computadoras de escritorio, portátiles, computadoras
de bolsillo, teléfonos móviles, videoconsolas y otros
dispositivos.
•IBM Roadrunner, la supercomputadora más potente de
(2008, 2009) TIANHE 1A 2010 y TIANHE-2 2013
funciona bajo una distribución GNU/Linux
!
http://es.wikipedia.org/wiki/TOP500
Software Libre
!
Se basa en cuatro libertades
!
Ejecutar el programa con cualquier propósito
!
Estudiar y modificar el programa
!
Copiar y distribuir el producto
!
Mejorar el programa y publicar las mejoras
MPL
BSD
Características de Linux
!
Multitarea
!
Multiusuario
!
Sistema de memoria virtual (SWAP)
Estructura de un sistema
!
Kernel
!
Módulos
!
Shell o Consola
Video
Distribuciones
Fedora o RHEL
!
!
Fedora
!
Proyecto de RedHat
!
Ciclo rápido de actualizaciones
!
No hay soporte de parte de RedHat
!
http://docs.fedoraproject.org
RedHat
!
Ciclo de actualizaciones largo
!
Multiples opciones de soporte por RedHat
!
Documentación y capacitación de RedHat
Linux y la administración Pública
•
Alemania
•
Argentina
•
Australia
•
Brasil
•
España
•
Chile
•
China
•
Cuba
•
México
•
Perú
•
República Dominicana
•
Ecuador
•
El Salvador
•
Uruguay
•
Venezuela
•
Entre otros y cada día se suman más.
Instalación de fedora
Entornos Gráficos
!
•Consola
•GNOME
•KDE
•LXDE
•Xfce
•XF
•Entre otros
Formato de Paquetes
•
Actualmente existen 2 formatos de paquetes.
!
Debian
•
.deb
!
Red Hat
•
.rpm
Directorios en Linux
Carpeta /dev
Devices (Dispositivos)
!
/
!
/dev
Hda
! Sda
! Eth
! Wlan
! Cdrom
! Cdrw
! Dvd
!
Carpeta /dev
Devices (Dispositivos)
!
/dev/hda1
1ª partición primaria
!
/dev/hda2
2ª partición primaria
!
/dev/hda3
3ª partición primaria
!
/dev/hda4
4ª partición primaria ó partición extendida
!
------- hasta hda4 tanto primarias como extendidas -------
!
/dev/hda5
1ª partición lógica
!
/dev/hda6
2ª partición lógica
!
...
!
Las particiones lógicas empiezan desde 5 en adelante
Carpeta /home
Carpeta de usuarios
!
/
!
/home
Usuario1
! Usuario2
! …
! Usuarion
!
Carpeta media
Montajes Automaticos
!
/
!
/media
Miusb
! Cdrom
! DiscoDuroX
! Windows7
!
!
!
!
Para montajes con modo gráficos.
Carpeta /mnt
Montajes Manuales
!
/
!
/mnt
MiDiscoduro
! MiUsb
! Tarjetas SD
!
!
!
!
Para montajes con terminales.
Carpeta /tmp
Archivos Temporales
!
/
!
/tmp
!
!
!
!
Directorio temporal que se almacena
información de todos los usuarios.
Se borra al salir de linux.
Carpeta /etc
Carpeta de Configuraciones
!
/
!
/etc
Httpd.conf
! Samba.conf
! Xorg.conf
! Lftp.conf
! Lftp.conf
!
!
!
!
Se encuentran todas las configuraciones.
Por ejemplo si queremos modificar la configuración de
Samba tan solo hay que editar el archivo de texto /etc/
Carpeta /bin
Comandos para todos los usuarios
!
/
!
/bin
Ls
! Ln
! Nano
! Pwd
! Ping
!
!
!
Comandos esenciales para que funcione Gnu/
Linux que puedan usar todos los usuarios.
Carpeta /sbin
Comandos para Super Usuarios
!
/
!
/sbin
Fdisk
! Ifconfig
! Modprobe
! Fsck
!
Carpeta /usr
Configuraciones de aplicaciones de los usuarios
!
/
!
/usr
/bin
! /etc
! /lib32
! /lib64
! /share
!
!
!
!
Se encuentra la gran mayoría de los archivos
existentes en un sistema Linux.
Documentación,ejecutables, etc.
Carpeta de /root
Carpeta del administrador (root)
!
/
!
/root
Documentos
! Imagenes
! Escritorio
! Videos
!
Carpeta /var
Variables del sistema
!
/
!
/var
Logs
! Variables del sistema
! Variables de Aplicaciones
!
Carpeta /boot
Arranque del sistema
!
/
!
/boot
!
/grub
!
Grub.conf
!
!
Aquí está todo lo relacionado con el arranque
del sistema.
Carpeta /proc
Archivos virtuales y procesos del Kernel
!
/
!
/proc
!
!
!
!
Sistema de archivos virtual de información de
procesos y del kernel de la serie 2.4 y 2.6.
Carpeta /opt
Paquetes opcionales
!
/
!
/opt
Adobe
! Teamviewer
! Google
!
!
!
!
Paquetes de programas y aplicaciones
opcionales instalados manualmente.
Conociendo el escritorio Gnome
!
Preferencias
!
Aplicaciones preferidas
!
Descansa pantallas
!
Cambiando el tema
!
Iconos en el pánel
!
Applets
!
Paneles
!
Lanzadores de Aplicaciones
Gnome …
!
Propiedades de los páneles
!
Dispositivos removibles
!
Cambio de Escritorio
KDE
!
Conociendo Konqueror
!
Conociendo Dolphin
!
Buscando archivos
!
Barra de tareas
!
Cambiando el escritorio
!
Lanzadores
!
Atributos de los páneles
La línea de comandos
!
id – información del usuario en que estoy
!
ls – lista de archivos
!
ls -l lista de archivo con detalle
!
pwd – muestra la ruta en que me encuentro
!
cd – para ingresar a una carpeta
!
cd /etc – ingresa de cualquier parte a la
carpeta etc, cd / regresa al root.
!
cd – regresa a la carpeta anterior
!
cd ../../ - regresa 2 carpetas
Permisos de Archivos
!
3 grupos
!
Propietario
!
Grupo
!
Otros
Tipo de Archivo
!
- Archivo común
!
d Directorio
!
c Dispositivo de caracteres (tty o impresora)
!
b Dispositivo de Bloque (usualmente disco
rígido o CD-ROM)
!
l Enlace simbólico
!
s Socket
!
p Pipe
Tipo de Permisos
!
r Permiso de lectura
!
!
w Permiso de escritura
!
!
x Permiso de ejecución
Comando chmod
!
Cambia los permisos de un archivo.
!
u – usuario
!
g – grupo
!
o – otro
!
a – todos
!
!
Chmod a+rwx nombrearchivo
!
Chmod g-rwx nombrearchivo
Comando chmod
!
400 Lectura por parte del dueño
!
200 Escritura por parte del dueño
!
100 Ejecución por parte del dueño
!
040 Lectura por parte del grupo
!
020 Escritura por parte del grupo
!
010 Ejecución por parte del grupo
!
004 Lectura por parte de los otros
!
002 Escritura por parte de los otros
!
001 Ejecución por parte de los otros
Comando chmod
!
chmod 742 nombre archivo
!
chmod 777 nombre archivo
!
chmod 711 nombre archivo
Mas Comandos
!
who – Muestra información del usuario que esta
conectado.
!
-umH
!
ps – ae muestra todos los procesos de los usuarios
!
alias listado='ls -l' – modificar un comando
!
unalias listado - Quitar los alias
!
echo – muestra información en terminal.
!
touch – cambia la fecha de modificación de archivo.
!
nano
Mas comandos …
!
!
!
date – muestra la fecha
cat list | sort -n | nl | -d - muestra el listado de
un archivo
history - muestra el historial
!
# - Muestra los primeros # comandos
!
!# - Ejecuta el comando #
!
!! - Ejecuta el último comando
!
!?ech - Ejecuta el comando que inicie “ech”
Variables de entorno
!
VAR=”contenido”
!
VAR='contenido'
!
VAR=`comando`
!
VAR=$(comando)
!
VAR=$[operacion]
!
VAR=$((operacion))
!
env
!
Export
Modificando proxy
!
Export http_proxy=http://192.168.16.2:8080”
!
Export ftp_proxy=”ftp://usuario:
[email protected]:8080”
!
Mayusculas y minusculas.
Operaciones en background
!
Comando &
!
Comando
!
Ctrl + z
!
Jobs – procesos en segundo plano
!
fg – procesos en primer plano
!
bg – procesos en segundo plano
Archivos de configuración de bash
!
/etc
!
/profile
!
/bashrc
!
~/.bashrc
!
~/.bash_profile
!
~/.bash_logout
Variable de entorno para prompt
!
PS1
!
\! comando actual
!
\# numero de comando ejecutado
!
\$ prompt de usuario
!
\W directorio de trabajo
!
\[ inicio de caracteres no imprimibles
!
\] fin de caracteres no imprimibles
PS1 ...
!
\\ contradiagonal
!
\d día
!
\h nombre del host
!
\n nueva líneal
!
\### caracter en octal sustituyendo los #
!
\s la actual shell
!
\u usuario actual
!
\w path completo
!
PS1="$(date +%H:%M:%S)[\u@\h \w]\$"
Tuberías
Expandiendo comandos
!
!
ls -l /etc | less
!
cat archivo.txt | nl
!
nl < ejemplo > ejemplo2 – copia a ejemplo 2
con numeracion
Redirección de archivos
!
ls /etc/ > listaEtc.txt
!
nl nombrearchivo – escribe con lineas
!
ls /usr/bin >> listado.txt
!
!
!
> crea un archivo y si existe lo reemplaza
>> añade a un archivo existente sino no existe
lo crea.
Creación de archivos y directorios
!
!
mkdir carpeta – crea una carpeta
mkdir carpeta/{a,b,c,d} – crea una carpeta y
subcarpetas
!
mkdir carpeta/{a,b,c,d}/{uno,dos,tres,cuatro}
!
rmdir carpeta – borra una carpeta
!
rm -rf carpeta – borra recursivamente una
carpeta
!
tree uno/ - muestra el arbol del directorio
!
touch
!
file
Moviendo y copiando archivos
!
mv origen destino
!
cp original copia
El editor vi o vim
!
h, l = izquierda, derecha
!
j, k = abajo, arriba
!
w b = izq y der por palabra
!
0 ó ^ = inicio de linea
!
$ final de linea
!
dw borrar palabra
!
d0 borrar hasta el comienzo
!
d$ borrar hasta el final
vi o vim...
!
ZZ guardar y salir
!
:w guardar
!
:q salir
!
:q! salir sin guardar
!
I, i insertar
!
R, r reemplazar
!
o nueva linea
!
/ , ? buscar texto
Script
!
Es un conjunto de código ejecutable
!
Se inicia con que interprete se ejecuta
!
#! /bin/bash
!
#son los comentarios
!
Se inicia el script
!
Se guarda con extension .sh → opcional
!
Y se le asignan permisos de ejecución
!
chmod +x nombredelscript
Operaciones Lógicas
!
-lt Menor que
!
-le Menor o igual que
!
-gt Mayor que
!
-ge Mayor o igual que
!
-eq Igual a
!
-ne No igual a
!
-o OR
!
-a AND
!
! NOT
Algunos tips para los scripts
!
!
read
!
Para leer datos del usuario
!
-n indica que se guarda hasta que se presiona enter
if [ $VAR == “cadena” ]; then
comandos
fi
!
$0 nombre del script
!
$1 primer parametro
!
$2 segundo parametro
If con script
!
if [ "$1" = "hola" ]; then
!
ordenes
!
elif [ ]; then
!
ordenes
!
else ordenes
!
fi
Case en script
!
case variable in
!
a) comandos ;;
!
b*) comandos ;;
!
*) comandos ;;
!
esac
For en script
!
!
!
!
for var1 in 0 1 2 3 4 ;
do
ordenes
done
Until do en script
!
until comando do
!
comandos
!
done
Funciones en script
!
[function] nombre() {
!
!
}
comandos;
Terminando un script
!
Si al final del script ponemos:
!
!
Al ejecutarse correctamente, esa variable la
podremos ver con:
!
!
exit
echo $?
Y esto nos asegura que el script se ejecuto
hasta esa línea.
Trabajo con ventanas de texto
!
Screen
!
Ctrl + A
c crea nueva terminal
! n siguiente
! p anterior
! d desconectar
!
Trabajo con ventanas
!
Opciones
!
-t <nombre>
!
-ls listar
Instalación de software
!
Paquetes de CD/DVD
!
Repositorios de Fedora
!
Repositorios de terceros
!
Paginas de proyectos
!
Freshmeat
!
SourceForge
!
rpmFind
!
rpm.pbone
Sitios que proveen paquetes RPM
!
RPMForge.net
!
!
Livna.org
!
!
http://dag.wieers.com/packages
FreshRPMs
!
!
http://rpm.livna.org
DAG
!
!
http://rpmforge.net
www.freshrpms.net
ATRPMs
!
http://atrpms.net/dist/f11
Paquetes en fedora rpm
yum list | less
!
!
Nombre paquete
!
Version
!
# de compilación o empaquetado
!
Version de fedora
!
Arquitectura
!
!
i686
!
x86_64
!
noarch – para cualquier arquitectura de unix
canna-libs-3.7p3-28.fc12.i686.rpm
UsandoYellowdog Updater Modified (YUM)
!
yum
!
install – instala un paquete
!
search – busca un paquete
!
deplist – muestra las dependencia de un paquete
!
erase – borra un paquete
!
update – actualiza uno o varios paquetes
!
check-update – chequea si hay actualizaciones de
paquetes
!
localinstall – instala un paquete que bajamos
!
list – muestra un paquete o grupo de paquetes
yum deplist
dependencias
!
Yum deplist compiz
!
Yum deplist yum
!
Yum deplist wine
Instalando paquetes con yum
!
yum install screen
!
yum install gcc
!
yum install gimp
!
yum install inkscape
Actualizando el kernel con yum
!
yum list kernel | grep “^kernel”
!
uname -a – version del kernel
!
yum search kernel | grep “^kernel”
!
!
yum install kernel-devel kernel-headers
!
yum update kernel
Eliminando el kernel con yum
NOTA:
NO desinstales el kernel linux-image-generic ya
que es necesario para recibir actualizaciones
del kernel.
!
1. Listar los paquetes existentes:
yum list linux-image
dpkg --get-selections | grep linux-image
!
2. Purgar la version de kernel que deseemo:
sudo aptitude purge paquete
clear
75
La herramienta rpm
Funciones de la herramienta:
!
Instalar
!
Actualizar
!
Remover y desinstalar
!
Consultar la base de datos para obtener
información
!
Verificar paquetes
!
Verificar archivos instalados
Comprobaciones que hace rpm
Verifica el espacio en disco antes de hacer alguna
instalación
Si existen los archivos no serán reemplazados
!
rpm -K archivo.rpm – para verificar el archivo.
Puede verificar integridad mediante MD5
Opciones de instalación
rpm -i archivo.rpm – instala un paquete
rpm -iv archivo.rpm – instala con barra de
progreso
rpm -ivh archivo.rpm – con señalizacion
!
--force – reemplaza archivos si existe
!
--nodeps – no verifica las dependencias
!
--repalcefiles – ignora conflictos
!
!
Repositorios:
!
nano /etc/yum.repos.d/fedora.repo
Repositorios
[fedora] ==> Identificación del Repositorio
name ==> Descripción del repositorio
baseurl ==> aquí ponemos el URL que apunta al directorio
donde residen los repositorio.
!
mirrorlist ==> identifica que un URL que apunta a un
archivo que contiene una lista de baseurls.
Donde esto podemos sustituido por el baseurl.
!
enable ==> puede ser 1 o 0. Esto le indica a yum que lo
puede utilizar o no. (1=SI 0=NO)
!
gpgcheck ==> puede ser 1 o 0. Esto le indica a yum si debe
o no realizar una verificación de la firma GPG.
!
gpgkey ==> aquí se debe poner un URL el cual contiene la
llave ASCII GPG del repositorio.
79
Actualización de paquetes
rpm --upgrade archivo.rpm
rpm -u archivo.rpm – verifica que este instalado
rpm -Fvh archivo.rpm – actualiza si ya esta
instalado
rpm -vh --freshen archivo.rpm
Desinstalación de paquetes
rpm -e nombre
rpm --uninstall nombre
!
--nodeps – no verifica las dependencias y lo desinstala.
Consultas a la BD
Búsqueda de paquetes
!
rpm -q compiz
!
rpm --query compiz
!
rpm -qa – consulta todos los paquetes.
Búsqueda de archivos
!
rpm -qf /etc/yum.conf – mira a que paquete
pertenece determionado archivo.
Lista de archivos que instalo el paquete
!
rpm -ql yum
Lista de archivos que contiene un paquete
!
rpm -qlp compiz....rpm
Consultas a la BD
Obtención de información de un paquete
instalado
!
rpm -qi yum
Obtención de información de un paquete no
instalado
!
rpm -qip compiz...rpm
Verificación de archivos si hay algún cambio o no
esta instalado
!
rpm -V nombre
Verificación de archivos de paquetes
!
rpm -Vp archivo.rpm
Comando Tar
!
Crea un paquete
!
tar -cf paquete.tar arhivo1 ... archivoN
!
!
Listar archivos de paquete
!
tar -tvf paquete.tar
!
!
Extrae todos los archivos de un paquete
!
tar -xf paquete.tar
84
Comando Tar
!
Agrega archivos de paquetes
!
tar -uf paquete.tar archivo1 ... archivon
!
!
!
Para agregar un directorio a un archivo .tar ya
existente
tar –rvf archivo.tar /path/directorio/
85
Comprimir o Descomprimir [tar]
!
Comprimir
!
1. Empaquetar
!
!
tar -cf archivo.tar nombrefichero
2. Comprimir
!
gzip fichero – para gz
!
bzip2 fichero – para bz2
!
!
Extrae – descomprime - desenpaqueta
!
tar -xvzf compiz.tar.gz - gzip
!
tar -xvjf compiz.tar.bz2 - bzip2
Instalación desde Código fuente
Localización de archivos fuente
!
sourceforge.net
!
code.google.com
!
freshmeat.net
Tipos de paquetes
!
archivo.tar.gz
!
archivo.tar.bz
Pasos para la instalación
Obtener el código fuente
Descomprimir el código fuente en un directorio
temporal
Leer la documentación
!
README
!
INSTALL
./configure
Make
Make install
Corriendo aplicaciones de otros SO
!
!
DOS
!
Dosbox - instalar
!
DOSEmu
!
Motools
Windows
!
WINE
!
Cedega
!
CrossOver
Corriendo aplicaciones de otros SO
!
!
Windows...
!
Win4Lin
!
QEMU
!
VirtualBox
!
VMWare
Macintosh
!
ARDI
!
MacOnLinus
Publicando con Fedora y RHEL
!
OpenOffice.org
!
StarOffice
!
AbiWord
!
KOffice
!
Groff
!
Latex
!
Lyx
Multimedia con Fedora
!
The Gimp
!
Inkscape
!
Scribus
!
Xmss
!
Audacity
!
Otros
ALSA
!
!
ALSA = Advanced Linux Sound Architecture
Es un componente del núcleo Linux destinado
a sustituir a Open Sound System, licenciado
bajo GNU General Public License.
!
!
Reconoce automaticamente las tarjetas
!
!
Archivos de informacion de ALSA
!
/proc/asound/devices
!
/proc/asound/cards
Dispositivos de audio
!
/dev/dsp
!
/dev/audio0
!
/dev/audio1
!
/dev/cdrom
!
/dev/mixer
!
/dev/sequencer
!
/dev/midi
!
/dev/snd/*
Archivos de configuracion de audio
y comando de prueba
!
!
Archivo de configuracion de audio
!
/etc/asound.conf
!
/usr/share/alsa/alsa.conf
Comando de prueba de speakers
!
speaker-test -c4 – c4= 4 canales o 4 altavoces
!
speaker-test -s – prueba un solo altavos
!
speaker-test -t wav=archivo.wav – con archivo wav
Audio
!
Programa de mezclado de audio
!
Soporta varias placas de sonido simultáneamente
!
Incorporado en el kernel
!
alsamixer
!
alsamixer -V capture – modo captura
!
alsamixer -c #detarjeta – configura # tarjeta
!
Control de volumen
!
!
gnome-volume-control
Audio configuracion
system-config-soundcard
Impresoras cups
!
Servidor CUPS
!
Protocolo IPP (Internet Printing Protocol)
!
cupsd – servicio de CUPS
!
service cups status – estado del servicio
!
service cups restart – reiniciar el servicio
!
service cups start – iniciar el servicio
Impresoras cups
herramientas de administración
!
system-config-printer
!
localhost:631
!
!
Archivo de configuracion de cups
!
/etc/cupsd.conf
!
/etc/cups/cupsd.conf
!
!
Archivo de configuracion de impresoras
!
/etc/printers.conf
!
/etc/cups/printers.conf
Impresoras cups
line printer lp
!
Definir impresora por default:
!
export PRINTER=lp0
!
ls /dev/lp* – lista las impresoras
!
!
lp0, lp1 .. lpn – impresoras puerto paralelo
!
lpusb0, lpusb1...lpusbn – impresoras puerto usb
!
!
!
echo “Mensaje ” > /dev/lp0 – envia a impresion el
mensaje.
lpr archivo.txt
Impresoras cups
!
lpr file.ps
!
-P NombreImpresora
!
-#5 - 5 copias
!
!
Con tuberia
!
$ cat archivo.txt | lpr – lo manda a impresora
!
$ cat archivo.txt | lp
!
$ cat archivo.txt > lp – lp enlace simbolico
!
lpq
!
Ve la cola de impresión
Impresoras cups
remover trabajos
!
lprm -U usuario – cancela el trabajo de un
usuario en especifico
!
!
lprm – cancela todos los trabajos de impresion
del usuario
!
!
lprm 70 – cancela el trabajo de impresion # 70
!
!
lprm -P lp0 – elimina los trabajos de lp0
Impresora cups
Linea de Comando lpc
!
lpc
!
Linea de comandos para manipular impresoras
!
? ayuda
!
Status – estado de impresora
!
Q – quit salir
!
!
lpc status
Comprendiendo la Administración del
sistema
!
!
su – Set User para cambiar de usuario
su cambia el usuario actual a root si
perteneciera al grupo root
!
su – para cambiar al usuario root = su - root
!
sudo [SUperuser DO]
!
Ejecutar un programa con los privilegios de root
!
/etc/sudoers
Configuración de sudoers
!
Sintaxis
!
%admin - Todos los usuarios del grupo admin
!
ALL= - Desde cualquier Host/IP
!
(ALL) - Puede ejecutar cualquier usuario
!
!
Usuario/grupo equipo=(regla) comando
!
juan ALL= /sbin/mount /sbin/ifconfig
!
%grupo ALL= /sbin/mount
/etc/sudoers
!
!
Agregando un usuarios a sudoers y que no
tenga password
NombreUsuario ALL=NOPASSWD:ALL
!
!
Agregamos usuarios que pida usuarios
!
NombreUsuario ALL = PASSWD:ALL
!
!
Tiempo antes que pida la contraseña
!
Defaults timestamp_timeout = 0
Configuración de sudoers
# Alias de Usuarios!
!
User_Alias! FULLTIMERS = millert, mikef, dowdy!
User_Alias! PARTTIMERS = bostley, jwfox, crawl!
User_Alias! WEBMASTERS = will, wendy, wim
106
Configuración de sudoers
# Usuarios!
root! ! ALL = (ALL) ALL!
%wheel! ! ALL = (ALL) ALL!
!
!
# FULLTIMERS: Pueden correr cualquier cosa sobre
cualquier maquina sin password!
FULLTIMERS! ALL = NOPASSWD: ALL!
!
!
# MEDIOTIEMPO: sysadmins pueden correr cualquier cosa
pero van a necesitar Password!
PARTTIMERS! ALL = ALL
107
Configuración de sudoers
#Host Alias!
Host_Alias! CUNETS = 128.138.0.0/255.255.0.0!
Host_Alias! CSNETS = 128.138.243.0, 128.138.204.0/24,
128.138.242.0!
Host_Alias! SERVERS = master, mail, www, ns!
Host_Alias! CDROM = orion, perseus, hercules
108
Configuración de sudoers
#Alias de Comandos!
Cmnd_Alias! KILL = /usr/bin/kill!
Cmnd_Alias! PRINTING = /usr/sbin/lpc, /usr/bin/lprm!
Cmnd_Alias! SHUTDOWN = /usr/sbin/shutdown!
Cmnd_Alias! HALT = /usr/sbin/halt, /usr/sbin/fasthalt!
Cmnd_Alias! REBOOT = /usr/sbin/reboot!
Cmnd_Alias! SHELLS = /usr/bin/sh, /usr/bin/csh
109
Configuración de sudoers
# Jack: Puede ejecutar cualquier cosa sobre la
maquina CSNETS!
jack!! CSNETS = ALL!
!
# Lisa: Puede ejecutar cualquier comando sobre CUNETS!
lisa!! CUNETS = ALL!
!
# OPERADOR: Puede ejecutar comandos de mantenimiento
en /usr/oper/bin/!
operator! ALL = KILL, PRINTING, SHUTDOWN, HALT,
REBOOT,/usr/oper/bin/
110
Configuración de sudoers
# users in the WEBMASTERS User_Alias (will, wendy,!
WEBMASTERS! www = (www) ALL, (root) /usr/bin/su www!
!
# Cualquiera puede montar y desmontar CDROM sobre
las maquinas que estan en el alias CDROM!
ALL! ! CDROM = NOPASSWD: /sbin/umount /CDROM,\!
! ! /sbin/mount -o nosuid\,nodev /dev/cd0a /CDROM
111
Archivos de configuración
!
/etc/passwd
!
/etc/group
!
/etc/profile
!
/etc/login.defs
Significado de los codigo de
usuarios
!
root:x:0:0:root:/root:/bin/bash
!
smbguest:x:1001:1001:Samba guest account:/dev/null:/dev/null
!
root: Nombre de la cuenta (Login)
!
X: que tiene password o clave de acceso encriptada
!
500: UID de esta cuenta
!
501: GID del grupo principal al que pertenece la cuenta
!
usuario pepito: Nombre del usuario
!
/home/usuario1: Directorio de trabajo de usuario
!
/bin/bash: Interprete de comando (shell) de usuario pepito
!
/bin/false indica que la consola esta desactivada
Añadiendo usuarios y grupos
!
useradd – agrega y actualiza usuarios
!
-m crea una carpeta
!
-e tiempo de expiracion (YYYY-MM-DD)
!
!
-f numero de días que expira la cuenta
definitivamente
!
-p cuentas con password
!
-u -valor numerico del id del usuario
!
-U crea un usuario y un grupo con el mismo id
!
-g id del grupo
!
-D coloca valores por default
useradd -g dipaby -d /home/dipaby -s /bin/bash
-m -k /etc/skel dipaby
Añadiendo usuarios y grupos
!
!
adduser – agrega usuarios y grupos
passwd nombreusuario -cambia de password al
usuario.
!
passwd - cambia el password al root
!
groupadd – agrega un grupo
!
groupadd -g 601 mi-grupo
!
usermod -g 601 usuario, usuario2 .. usuarion
!
groups – muestra a que grupo pertenecemos
!
Interfaces gráficas para la administración.
!
/etc/group – especifica que usuario a que grupo
pertenece
Configuración de contraseñas
!
Chage
!
!
!
!
!
!
-l NombreUsuario - lista las caracteristicas de
expiracion de contrasenas.
-m mínimo numero de días entre cambio de
contraseñas
-M máximo de días durante el cual es válida una
contraseña
-d ultimo numero de días desde que fue cambiado
(desde 1/1/1970)
-W cantidad de dias de aviso de cambio de
contraseñas
chage -d 0 miusuariofinal -m 10 -M 20 -W 7
Modificación de cuentas
!
usermod
!
-l login
!
-d directorio home
!
-s shell por defecto
!
-u uid
!
-c comentario
!
-e fecha en que expira la cuenta
!
-g grupo principal
!
-G Grupos adicionales
!
-L bloqueo de usuario
!
-U desbloquea un usuario
Borrado de cuentas
!
userdel
!
-r borra archivos del home
!
!
!
userdel miusuario – borra al usuario del sistema
userdel -r miusuario – borra del sistema y su
carpeta home
Montaje manual de dispositivos
!
# mount
!
# umount
!
# mount -l - listado de dispositivos montados
!
# /etc/mtab – todos los dispositivos montados
!
# /etc/fstab – caracteristicas de las particiones
!
# mount /dev/fd0 /mnt/floppy
!
# mount /dev/cdrom /mnt/cdrom
!
# umount /dev/fd0
!
# umount /dev/cdrom
Montando y desmontando sistema
de archivos
!
# fdisk -l
!
# mount -t ext3 -o rw /dev/sda2 /mnt/linux
!
# mount -t vfat -o defaults /dev/sdb1 /mnt/windows
!
# mount -t vfat -o rw /dev/floppy /mnt/disquet
!
# mount -t iso9660 -o ro,exec /dev/sdc /mnt/cdrom
!
# mount -t vfat -o rw /dev/sda1 /mnt/pendrive
!
!
# umount /dev/sda2
!
# umount /dev/sdb1
!
# umount /dev/sdc
Comprendiendo /etc/fstab
!
Nombre del dispositivo
!
Punto de montaje
!
Tipo de sistema de archivos
!
Opciones
!
Copias de seguridad con dump (0=no 1=si)
!
Comprobación de consistencia al iniciar (fsck)
!
!
/dev/sda2 /mnt/linux ext3 rw,user,auto 0 0
!
/dev/sdb1 /mnt/windows vfat defaults,auto 0 0
!
/dev/sdc /mnt/cdrom iso9660 ro,user,noauto,exec 0 0
!
/dev/sda1 /mnt/pendrive vfat rw,user,auto 0 0
Sistemas de archivos en el fstab
!
EXT2 Sistema de ficheros sin registro para Linux
!
EXT3 Sistema de ficheros con registro para Linux
!
VFAT Sistema de Windows ( versión 95, 98 )
!
NTFS Sistema de Windows ( versión NT, 2000, XP )
!
NFS Sistema distribuido de Sun
!
ISO9660 Sistema estándar para CD-ROM
!
JFS
!
REISERFS Sistema de ficheros con registro para Linux
!
SWAP Espacio de intercambio para Linux
!
Sistema de ficheros con registro de IBM
XFS Sistema de ficheros con registro de Silicon
Graphics
Administración de discos en consola
!
!
Administración de particiones
!
fdisk
!
cfdisk
!
Parted
Formateo de discos
!
mkfs -t
ext3
! reiserfs
! jfs
! xfs, etc
!
!
Creación de swap
!
mkswap
Mantenimiento del sistema de Archivos
!
Verificar configuraciones
!
Corregir daños simples
!
Configurar el sistema para optimo rendimiento
!
Restricciones de usuarios
!
Habilitar cuotas
Información del sistema de archivos
!
!
Obteniendo información de Ext2
!
dumpe2fs [opciones] partición
!
dumpe2fs -h /dev/sda1 – Descripcion de la particion
Datos importantes
!
Mount count
!
Max mount count
!
Check interval
!
Journal
!
Filesystem features
!
Filesystem stalte
Ajustando parámetros del sistema de
archivos
!
tune2fs [opciones] partición
!
Opciones
-c num Máximo numero de montajes antes de verificar
! -C num Numero actual de montajes
! -i intevalo Tiempo entre chequeo, donde intervalo es un
número seguido de d (días), w (semanas), m (meses)
! -j Añadir Journal
! -m porcentaje Reservar un espacio para el usuario root
!
!
!
tune2fs -c 10 -i 1m /dev/sda1
La Bitácora (Journal)
!
!
!
!
!
Previene inconsistencias
Tiene una estructura que describe las operaciones
pendientes
Antes de escribir al disco se guarda en el journal
Cuando las operaciones están completas se borran
del journal
Si se encuentran inconsistencias se deja el disco a
su estado anterior
Chequeo del sistema de archivos
!
fsck [opciones] [-t tipo] [particion]
!
Opciones:
!
-a Verifica todos los archivos
!
-c Barra de progreso
!
-v Salida en modo verboso
!
-n Efectúa el chequeo en modo demostración
!
fsck -a -c -v -t ext4 /dev/sda3
Monitorizando el espacio en disco
!
df [opciones] [archivos]
!
Opciones
!
-a Incluir todos los sistemas de archivos
!
-h Usar unidades en escalas
!
-k, -m unidades en Kilobytes y Megabytes
!
-i Estado de i-nodos
!
-l solo sistemas locales
!
- T imprimir sistemas de archivos
Monitorizando por directorio
!
du [opciones] [directorio]
!
Opciones:
-a Ver todos los archivos
! -c Generara suma total
! -h Usar unidades en escalas
! -k, -m unidades en Kilobytes y Megabytes
! -l Contar enlaces
! --max-detph=n Niveles de ingreso a directorios
! -s suma sin colocar directorios
! -x solo el sistema actual
!
Montaje de particiones
Montar un árbol de archivos de un dispositivo en
algún punto del árbol principal /
!
/etc/fstab para montar dispositivos al iniciar el
sistema
!
umount [opciones] [-t tipo] [-o opciones del tipo]
[dispositivo] [punto de montaje]
!
!
Opciones:
!
-a monta todos los dispositivos listados en fstab
!
-r monta como solo lectura
Montaje de particiones
!
!
Opciones (mount):
!
-v monta y despliega información
!
-w monta como lectura/escritura
!
-t especifica el tipo de sistema de archivos
/etc/mtab
!
Contiene la lista de dispositivos montados en el
sistema
Opciones de tipo de montaje
!
Uso de umount
umount [opciones] [t tipo] [particion | punto de
montaje]
!
!
Opciones:
!
-a desmonta todo lo contenido en fstab
!
-f Forza el desmontaje
!
!
-r si no se puede desmontar se monta de nuevo
con la opción solo lectura
-t tipo desmonta particiones de un tipo específico
Montaje permanente
!
/etc/fstab
!
Sintaxis
!
Dispositivo
!
Punto de montaje
!
Sistema de archivos
!
Opciones
!
Volcado u Operaciones de respaldo
!
Orden de verificación
Sintaxis fstab
!
Dispositivo
!
!
Punto de montaje
!
!
Indica el dispositivo o partición que se montará
Indica el punto donde se montará el dispositivo
Sistema de archivos
!
Indica el tipo de sistema de archivos que tiene el
dispositivo
Sintaxis fstab
!
Opciones de montaje
!
!
!
Opciones de montaje para el dispositivo y su
sistema de archivos
Operaciones de respaldo
!
1 si puede efectuar tareas de respaldo
!
0 no hará tareas de respaldo
Orden de verificación
!
!
Indica el orden en que los discos serán revisados al
cargar el sistema operativo
/dev/sdb1 /mnt/discob ext4 usrquota,grpquota 1 1
Profundizando en algunos comandos
!
ls [opciones] [dirección]
!
Opciones
--color
! -d no ingresa a los directorios cuando se usa wildards
! -p despliega el tipo de archivo
!
!
!
!
!
!
/ directorio
@ enlace simbólico
= socket
| tubería
-R lista recursiva
Profundizando en algunos comandos
!
cp [opciones] fuente destino
!
Opciones
!
-f fuerza copia
!
-i interactivo
!
-p preserva propietario y permisos
!
-R recursivo
!
-u copia solo si el archivo destino es distinto
Profundizando en algunos comandos
!
touch [opciones] archivos
!
Opciones:
!
-a solo cambia el tiempo de acceso
!
-m solo cambia el tiempo de modificiación
!
-c no crear si no existe
!
-t MMDDhhmm
Herramientas administrativas
!
system-config-bind – DNS
!
system-config-httpd – Apache
!
system-config-nfs – compartir archivos
!
system-config-samba – samba
!
system-config-gtk – Autenticacion
!
system-config-date – Fecha
!
system-config-display – cambios serivdor x
!
system-config-securitylevel – SELinux
!
system-config-lvm – LVM
Herramientas administrativas
!
gdm – Control de login
!
system-config-printer – CUPS
!
gnome-utils - Logs
Tar
!
-c crear
!
-A agregar tar
!
-r agregar archivos no tar
!
-t listar archivos
!
-x extraer
!
-g archiva en modo incremental
!
-l solo una partición del disco
!
-v modo verboso
Herramientas para localización
!
find <dirección> <expresión>
!
Expresión
!
!
!
-name búsqueda por nombre
-iname búsqueda por nombre sin distinción de
mayuscula/minuscula
-size n tamaño en bloques de 512 bytes,
c en byte
! k en kilobytes
!
Usando restricciones
# /etc/host.allow
# Permitir correo a todo el mundo
in.smtpd : ALL
!
# ftp y finger sólo a host en mi dominio !
# y una máquina específica
in.ftpd,in.fingerd : LOCAL, mihost.encasa.com
!
# Permito telnet para los host listados en un fichero !
# y la red 192.168.
in.telnetd : /etc/telnet.hosts, 192.168.
144
Usando restricciones
!
/etc/hosts.allow
!
/etc/hosts.deny
!
Sintaxis
!
Daemon-list : client-list
!
Daemon-list puede usar nombres de /etc/services
!
Client-list puede utilizar rangos de ip
ALL permite acceso a todas las computadoras
! EXCEPT causa una excepción en la regla
!
!
servicio: host: acción
!
ALL: 127.0.0.1
!
portmap : localhost : allow
Administración de Cuotas
Restringe por grupos o usuarios la capacidad de
datos guardados.
!
!
/etc/fstab
!
/dev/sdd1 /mnt/discod /ext4 usrquota,grpquota 1 1
!
mount -o remount /dev/sdd1
!
mount -a
quotacheck -avug – chequea si hay particiones
con quotas.
!
!
!
[m] opcional si queremos remontar
quotaon -avug - activa las quotas
Administración de Cuotas
!
edquota -u usuario
!
!
Soft limit = espacio que usara
Hard limit = espacio que usará junto con período de
gracia
!
Soft limit = cantidad de archivos
!
Hard limit = cantidad maximo
!
edquota -t tiempo de gracia 7days
!
repquota -a punto de montaje
!
!
export EDITOR=nano
Backups
!
Tar
!
Cpio
cpio
!
!
Copy-out mode
!
-o
!
ls | cpio -ov > directory.cpio
Copy-in mode
!
-i
!
cpio -idv < directory.cpio
Monitorear la actividad en la red
!
Usar herramientas para buscar actividad en la
red
!
netstat -ap – listado de programas que esten
listening
!
netstat -lp – listado de interfaces que esten listening
!
nmap -sT ip – escaneo de puertos con TCP
!
nmap -sU ip – escaneo de puertos con UDP
Configuración de la red
!
Ifconfig
!
Eth
!
Up
!
Down
!
!
ifconfig eth1 172.16.1.230 netmask 255.255.255.0
Entendiendo el proceso de Carga
!
Bios
!
MBR
!
Boot Loader – grup, lilo y otros
!
Kernel y sus modulos
!
Montar la partición / - archivo /etc/fstab
!
Ejecutar /sbin/init
!
/etc/inittab
Niveles
!
!
!
/etc/inittab
0 - halt – kernel, modulos, drivers
1 - Single user mode – servicios simples de
usuario
!
2 – Multiuser - sin red
!
3 - Full multiuser mode – con red
!
4 – unused – definidos por el usuario
!
5 – X11 – interfaz grafica
!
6 - reboot – salida del sistema
Identificación de los servicios
!
Sintaxis básica /etc/inittab
!
!
id:runlevel:acción:proceso
Id 1-4 caracteres que identifican la función
runlevel Los runlevels en que está activo,
pueden ser varios
!
acción Acción de como se comportará el
proceso
!
!
proceso Proceso que debe ser ejecutado
Inicio del sistema SysV
!
/etc/init.d/rc
!
/etc/init.d/
!
/etc/rcx.d/
!
Inicia todos los scripts que inician con S
!
Para todos los que tengan K
!
chkconfig --list
!
Modificar runlevels
!
chkconfig --list <runlevels> <script> <on|off>
!
chkconfig --add <script>
!
chkconfig --level 345 httpd off
Configurando un proxy
!
yum install squid
!
/etc/sysconfig/squid
SQUID_OPTS=”-D -a 8080 -X”
! -D inicia sin tener internet
! -a #puerto alternativo del 3128
! -X chequea el archivo squid.conf
!
!
squid -k reconfigure
!
!
Recarga la configuración sin apagar el servicio
squid -k shutdown
!
Apaga el servidor hasta que no haya mas
conexiones
Configurando squid
!
Cache en memoria
!
cache_mem 10 MB
!
!
Usar siempre una tercera parte del maximo que se le
desea dar
!
Listas de acceso
Acl nombre tipo [cadena | archivo]
! acl localnet src 192.168.1.0/255.255.255.0
! http_access allow localnet
!
Configuración de SAMBA
!
Server Message Block / CommonInternet File
System (SMB/CIFS)
!
Compartición entre varios SO que soportan este
sistema de archivos
!
Soporte de usuario y contraseña
!
Configurable mediante PAM
!
Compartición de archivos e impresoras
!
smbd
!
nmbd
!
Swat
Instalación de samba
!
!
Yum install samba samba-common samba-swat
samba-client system-config-samba
Habilitar swat
!
chkconfig swat on
!
service xinetd reload
!
http://localhost:901
Configuración del Servidor Samba
!
/etc/smb.conf
!
/etc/samba/smb.conf
!
!
testparm /etc/samba/smb.conf -chequea
http://localhost:901
Configuración de compartición de
archivos
!
Sintaxis en el archivo de configuracion
!
[nombre_carpeta]
Comment = descripción
! Path = /ruta/hacia/directorio
! Read only = [yes|no]
!
!
prueba de una carpeta compartida
!
smbclient //localhost/nombre_carpeta
Compartición de impresoras
!
Sintaxis del archivo de configuración
!
[nombre_impresora]
Comment = descripción
! Printable = [yes|no]
! Path = /path/cola/impresion
!
Añadir usuarios a samba
!
cat /etc/passwd | mksmbpasswd.sh > /etc/
samba/smbpasswd
!
smbpasswd usuario
!
smbstatus
!
Para ver el estado de samba
Navegación de directorios
!
smbclient -L ip
!
smbclient localhost – lista las caracteristicas del
host
!
smbclient //maquina/directorio -U usuario
!
smbclient //localhost/home/publico -U miusuario
!
Comparte el directori publico con miusuario
Configuración de un firewall
Firewall
Configuración del firewall
Software:
!
Ipfwadm (kernel 2.0.x)
!
Ipchains (kernel 2.4.x)
!
Iptables (kernel 2.6.x)
GUI
!
Firestarter
!
Guarddog
!
FirewallBuilder
IPTables
Usando iptables
!
Input
!
!
Output
!
!
Cadenas de salida
Forward
!
!
Cadenas de entrada
Cadenas de reenvio
Estados de las cadenas
!
ACCEPT
(aceptar)
!
DROP (descartar)
Creando reglas de iptables
Opciones principales
!
-L lista las reglas establecidas
!
-t tabla indica que tabla obscopiar pegar vimervar
!
-F cadena borrar las reglas
!
-P cadena estado valor de estado por defecto
!
-A cadena añadir
Creando reglas de iptables
Reglas para hacer coincidir paquetes
!
-p, --protocol protocolo a usar
!
--sport, --source-port puerto de origen
!
--dport, --destination-port puerto de destino
!
!
-s, --source fuente del paquete, generalemte rango
de ip o red
-d, --destination destino del paquete, también por
ip o red
!
-I, --in-interface interface o tarjeta de entrada
!
-o, --out-interface interface o tarjeta de salida
Creando reglas de iptables
#iptables -A INPUT -s 0.0.0.0/0 -i eth0 -p tcp -dport 1:1024 -j DROP
#iptables -A INPUT -s 0.0.0.0/0 -i eth0 -p udp -dport 1:1024 -j DROP!
!
#iptables -I INPUT 1 -i lo -p all -j ACCEPT!
!
#iptables -A INPUT -p tcp --dport 22 -j ACCEPT!
#iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
171
Sistema de Base de datos MySQL
!
Yum install mysql mysql-client mysql-server
!
Configuración
!
!
Yum install mysql-administrator
!
/etc/my.cf
Asegurar la contraseña de root
!
!
mysqladmin -u root password 'nueva contraseña'
Probando configuraciones
!
/usr/share/doc/mysql-server-5.1.36/
Servidor DHCP
!
Configuración
!
/etc/dhcp/dhcpd.conf
!
man dhcp-options
!
Configuración de clientes
!
dhclient eth
!
!
service dhcpd start
Servidor DHCP
default-lease-time 600;
max-lease-time 86400;
option
option
option
option
subnet-mask 255.255.255.0;
broadcast-address 192.168.1.255;
routers 192.168.1.1;
domain-name-servers 192.168.1.1;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.2 192.168.1.200;
}
174
Administración de trabajos
calendarizados
!
El nombre cron viene del griego chronos que significa “tiempo”
!
Cron
!
/etc/cron.d/
!
/etc/crontab
Minuto [0-59]
! Hora [0-23]
! Día [1-31]
! Mes [1-12]
! Día de la semana [0-6]
! * cualquier valor
! , separa valores
! - crea rangos inclusivos
!
Creando trabajos cron para
Usuarios
!
crontab [-u user] [-l | -e | -r] archivo
!
-u especifica la tarea del usuario
!
-l lista un trabajo
!
-r remueve un trabajo
!
-e usa un editor para configurar un archivo
!
crontab -u admin -e
!
/etc/cron.allow
!
/etc/cron.deny
!
30 6 1,3,7,12,15,20 * *
/root/actualizar.sh
cron.deny
$ cat /etc/cron.d/cron.deny
daemon
bin
smtp
nuucp
listen
nobody
noaccess
jones
temp
visitor
177
cron.allow
$ cat /etc/cron.d/cron.allow
root
jones
smith
178
Servidor ftp
!
yum install proftpd
!
Configuración
!
!
/etc/proftpd
Service proftpd start
!
!
/var/ftp/ - Fedora
!
/home/ftp/ - Ubuntu
Servidor Web Apache
!
!
Servidor web
!
HTML
!
/var/www/htdocs
Archivos de configuracion
!
/etc/httpd/httpd.conf
!
/etc/apache/apache.conf
Trabajando con SELinux
!
Security-Enhanced Linux
!
Role-Based Access Control (RBAC)
!
!
Role
!
Type
!
Level
Archivo de log
!
/var/log/audit/audit.log
!
ls -Z
!
/usr/sbin/semanage login -l
Fedora Linux
Ing. Byron Díaz Padilla
[email protected]