Índice
- ¿Quieres ser administrador de sistemas Linux?
- NOTA:La siguiente presentación está diseñada para ser presentada por un presentador competente.
- Linux SysAdmin 101
- ¿Para quién es esta guía?
- ¿Qué es Linux?
- Distribuciones
- El (Bourne Again) Shell
- El sistema de archivos
- Herramientas de archivo
- Bash incorporado
- Redireccionamiento y canalizaciones
- Redireccionamiento y canalizaciones (cont.)
- Administración de usuarios
- Permisos
- Herramientas de disco
- Procesos
- Procesos (continuación)
- Redes y herramientas de red
- Paquetes de software, instalación
- Registros
¿Quieres ser administrador de sistemas Linux?
De vez en cuando, me piden que brinde un poco de capacitación para administradores de sistemas en ciernes o personas en el camino profesional para convertirse en un ingeniero calificado de Linux Sysadmin o DevOps (¡o al menos la parte de Operaciones!). Esta plataforma de diapositivas puede ser utilizado por usted mismo, pero está destinado a ser administrado en un entorno de clase. Incluye una serie de áreas principales que son importantes comandos que se deben conocer y formas de moverse por un sistema Linux. Cada sección va seguida de una serie de sesiones prácticas para que pueda hacer que su clase lo pruebe por sí mismo.
Consejo importante para el tutor :Esto me ha funcionado bien con clases más pequeñas (2-3 personas). Entré en una VM de Ubuntu Server y ejecuté tmux en ella. Luego le pedí a cada uno de los estudiantes que ingresaran (como el mismo usuario estudiante) y ejecutaran 'tmux adjuntar'. De esa forma, todos compartían el mismo terminal y el tutor también podía interactuar/ver sus terminales al mismo tiempo que ejecutaba las diapositivas desde su propia computadora portátil. Presento las diapositivas en un proyector o TV.
El esquema del curso incluye:
- ¿Qué es Linux, inc. muy breve historia.
- Distribuciones.
- El caparazón (otra vez de Bourne).
- El sistema de archivos UNIX.
- Comandos/herramientas basados en archivos
- Comandos incorporados de Bash
- Redireccionamiento y tuberías
- Administración de cuentas de usuario
- Permisos
- Herramientas de disco
- Procesos
- Redes
- Instalación de software/Paquetes
- Registros/Gestión de registros
NOTA:La siguiente presentación está diseñada para ser presentada por un presentador competente.
No se pudo iniciar esta presentación de diapositivas. Intente actualizar la página o verla en otro navegador.
Administrador de sistemas Linux 101
Una guía para principiantes sobre la administración de un servidor Linux
¿Para quién es esta guía?
- Estas diapositivas están destinadas a ser acompañadas por un presentador competente.
- Cualquier persona interesada en una carrera como profesional de Linux o Unix
- Avanzar en sus habilidades de Linux de usuario de escritorio a usuario avanzado
- Gente que quiere trabajar más en la línea de comandos
- Aprende comandos que quizás no conozcas
¿Qué es Linux?
Para obtener una descripción general rápida de Linux y su historia, consulte:
https://www.linuxnewbieguide.org
Sin embargo, en pocas palabras, Linux es un sistema operativo basado en UNIX hecho de los siguientes componentes principales:
- El núcleo
- El Shell (bash en el caso de este tutorial)
- El conjunto básico de herramientas GNU
- Y todas las demás aplicaciones, Firefox, ViM, etc.
Distribuciones
- Hay una serie de sabores diferentes de Linux.
- La mayor parte de esto difiere en la forma en que el sistema empaqueta el software.
- La configuración entre distribuciones puede ser ligeramente diferente.
- Las distribuciones más conocidas son:
- Debian y Ubuntu
- Red Hat, CentOS y Fedora
- Otras distribuciones como Linux Mint, openSuSE y Elementary a menudo se basan en las plataformas anteriores.
La concha (de Bourne otra vez)
- Toma los comandos del usuario
- Se puede usar como un lenguaje de secuencias de comandos (como un archivo por lotes)
- Puede usar expresiones regulares (por ejemplo, A* coincide con cualquier cosa que comience con A).
- Las expresiones regulares se tratan en sesiones más avanzadas.
El sistema de archivos
Aquí hay un ejemplo. Todo comienza en la raíz ( / ):
/ |-- bin | |-- bash | |-- touch |-- etc | |-- service.conf | `-- networking | |-- eth0.conf | `-- eth1.conf |-- home |-- var
Herramientas de archivo
- cd (cambiar de directorio, por ejemplo, cd /home/ajross, cd ../.. )
- pwd (directorio de trabajo de impresión)
- ls (directorio de lista, por ejemplo, ls -l /home/ajross/Desktop)
- tocar (crear un archivo vacío)
- tar (comprimir un archivo o directorio, por ejemplo, archivo tar cvfpz.tar *.txt)
- cat (muestra el contenido de un archivo)
- menos y más (muestra un archivo página por página)
- cp (copiar, por ejemplo, archivo cp /home/ajross )
- mv (mover o renombrar)
- mkdir (hacer un directorio)
- rm (eliminar un archivo o archivos)
- rmdir (eliminar un directorio vacío)
Práctico:
- Mostrar los archivos en cualquier directorio
- Cree un archivo vacío llamado test.txt
- Muestre el contenido de /etc/fstab y describa lo que está viendo
- Renombrar test.txt a otrotest.txt
- Cree una nueva carpeta llamada myfolder
- Mover otro test.txt a mi carpeta
Herramientas de archivo (continuación)
- ln:enlace simbólico (por ejemplo, ln -s /sourcefile /destination-alias-file)
- cuál (qué versión de un comando se ejecutará), por ejemplo, cuál -a vim
- whereis (basado en la ruta, brinda la ubicación de un archivo, por ejemplo, whereis vim).
- qué es, archivo (qué hace un comando, archivo – qué hace el archivo)
- buscar (p. ej., buscar . -user ajross –max- depth=2)
- cabeza, cola (muestra la parte superior e inferior de un archivo)
- unir, dividir (por ejemplo, unir a.txt b.txt)
- ordenar (por ejemplo, du -h /home | ordenar -h)
- du -h (muestra la utilización del tamaño del disco, por ejemplo:du -h /home –max- depth=2)
- df -h (muestra cuánto espacio hay libre en un sistema de archivos)
- uniq (por ejemplo:archivos uniq.txt o cat /var/log/error.log | uniq)
- wc, nl (recuento de palabras, por ejemplo:cat /var/log/error.log | wc -l , nl foo.txt)
- grep (busca contenido dentro de un archivo, por ejemplo:grep -i foo /var/log/error.log)
- lsof (enumera los archivos abiertos en el sistema, por ejemplo, lsof -n).
Práctico:
- Busque un archivo llamado sysctl.conf en la carpeta /etc
- Muestra el contenido de un archivo una página a la vez
- Muestra cuánto espacio ocupa la carpeta /var en el disco
- Explicar qué es un enlace simbólico
- Busque en el contenido de /var/log/kern.log la palabra usb
Integraciones Bash
- alias
- establecer / entorno (echo $PATH)
- salir/cerrar sesión
- eco
- reiniciar/detener/apagar/apagar
- historial (muestra los últimos comandos ejecutados)
- if, else, while etc..
- entre otros…
Práctico:
- Escribe las palabras "hola mundo" en la salida estándar.
- Muestra una lista de los últimos comandos ejecutados.
Redireccionamiento y tuberías
- Estándar salida (salida estándar – 1):
- echo hola> miarchivo.txt
- eco allí>> miarchivo.txt
- Estándar Entrada (entrada estándar):
- cat
otroarchivo.txt
- cat
- Estándar
Error (stderr – 2):- si haces ls /crapola, obtienes un error (el directorio no existe)
- ls /crapola 2> out.txt (redirige el error a un archivo llamado out.txt)
- Si desea una salida estándar y un error estándar:stderr (2) salidas combinadas con (y &) stdout (1).
- ls /crapola> fuera.txt 2>&1
- si haces ls /crapola, obtienes un error (el directorio no existe)
Redireccionamiento y canalizaciones (cont.)
- Tubo
- Coloca la salida de un comando en la entrada de otro. Muy útil.
- ls -l /etc | menos
- Tee le permite poner la salida en un archivo y la pantalla
- ls-l | te fuera.txt
- Coloca la salida de un comando en la entrada de otro. Muy útil.
Práctico:
- Muestra el número de palabras en /var/log/kern.log usando una canalización
- Coloque la salida de ls /var en un archivo de texto llamado ls.txt
- Agregue la salida de ls /var/log en el mismo archivo (es decir, no elimine las cosas que ya están allí).
Administración de usuarios
- La cuenta 'raíz' es el superusuario del sistema.
- Muchos archivos de configuración y sistema solo pueden ser editados/visualizados por root.
- Los permisos son la clave para proteger los archivos
- Dictan qué usuarios (y grupos de usuarios) pueden trabajar en archivos.
- Los usuarios locales se almacenan en /etc/passwd, con el archivo de contraseña en /etc/shadow
- Los grupos se almacenan en /etc/groups
- Se recomienda iniciar sesión en un servidor como un usuario normal y luego escalar a root con sudo (o su).
- passwd (para cambiar una contraseña)
- añadir usuario
- del usuario
Práctico:
- Mira la contraseña, la sombra y los archivos de grupo
- Intente editar el archivo shadow como un usuario normal
- Descubre por qué no puedes editarlo.
- Cambie su contraseña.
- Cree un usuario y elimine un usuario.
Permisos
- Explicar permisos:usuarios, grupos, otros, atributos
- chmod (cambiar los permisos del archivo, por ejemplo, chmod u+x file.sh)
- chown (cambiar la propiedad de un archivo, por ejemplo:chown user file.sh)
- chgrp (cambiar la propiedad del grupo de un archivo, por ejemplo:chgrp groupname file.sh)
- umask (permisos predeterminados para una carpeta)
- setuid (raíz):¡úselo con cuidado! archivo chmod u+s o g+s
- inmutable/adhesivo (chmod +i, chmod +t)
Práctico:
- Cree un archivo llamado test.sh con touch.
- Cambie los permisos a usuario=leer, escribir, ejecutar, agrupar y otros, sin permisos
- Cambie la propiedad en lugar de usted mismo para ser root. Intente acceder al archivo ahora.
- Vuelva a cambiar la propiedad a usted mismo y edite el archivo (nano test.sh)
- Agregue #!/bin/bash a la primera línea
- y repite hola mundo en la segunda línea
- Ejecute el script:./test.sh
- Elimine el bit ejecutable e intente ejecutar el script nuevamente.
Herramientas de disco
- e2fsck (comprobación del sistema de archivos)
- fdisk / cfdisk / parted (edición de particiones)
- mkfs (hacer un nuevo sistema de archivos)
- lvm, lvdisplay, lvextend... etc.
- Lista de montaje del sistema de archivos:/etc/fstab
Práctico:
- Ver la tabla de particiones actual.
- Ver los sistemas de archivos que serán montados por Linux
Procesos
- Los procesos son solo aplicaciones que se están ejecutando. Linux (como MacOS y Windows) es un sistema operativo de subprocesos múltiples
- En un sistema de una sola CPU, todas las aplicaciones generalmente están "suspendidas", excepto la aplicación "en ejecución" dividida en un intervalo de tiempo.
- Los procesos pueden estar en segundo plano o en primer plano.
- Puede enviar señales a procesos como SIGHUP, SIGKILL, etc.
- Para ver procesos, use el comando ps (p. ej.:ps aux, ps auxfwww para un árbol).
- Puedes ver el propietario, el estado, el recurso y otras cosas usando ps
- Puede ver los procesos que consumen más CPU usando el comando "superior". Iostat, vmstat muestran iops y virt mem.
- Puede matar procesos con kill, pkill (p. ej.:kill -9 12345, pkill apache2)
Procesos (continuación)
- La amabilidad del proceso altera la prioridad que tiene un proceso en general en el sistema (p. ej., renice, nice)
- El sistema de archivos /proc contiene toda la información sobre cada proceso en un formato sin procesar (por ejemplo, cat /proc/12345/status)
- Use Ctrl+Z para detener un proceso, bg al fondo, fg al primer plano, "comando y" fondos automáticos
- trabajos muestra sus procesos en segundo plano actuales. fg %4 pondrá en primer plano el cuarto comando en segundo plano.
- Los procesos que se ejecutan permanentemente se denominan servicios o daemons
- Para iniciar un servicio, utilice el comando "servicio" o "systemctl". Los sistemas antiguos usan /etc/init.d.
Práctico:
- Inicie un proceso, por ejemplo, cat (que no hará nada).
- Antecedentes del proceso.
- Encuentre el PID para el proceso. NB:¡Sea inteligente al respecto y filtre la salida de ps buscando solo cat!
- Elimine el proceso usando el PID que obtuvo.
- Reiniciar/detener/iniciar un servicio, diga rsyslogd.
Redes y herramientas de red
- ifconfig / ip
- /etc/sysconfig/network (redhat), /etc/networking (debian)
- ifconfig / ip
- ruta / ruta ip
- arp, ping, trazar ruta, netstat
- dhclient, dhcpd, bind
- /etc/resolv.conf
- /etc/hosts
- ssh, scp, sftp, rsync
- nfs, samba (SMB/CIFS)
- Apache, servidor HTTP simple de Python
Práctico:
- Mostrar las direcciones IP de la máquina
- Explicar qué es la interfaz lo
- Di cómo reiniciarías
Paquetes de software, instalación
- Instalar software en Linux es bastante fácil. Incluso más fácil que en Windows.
- Red Hat y Debian mantienen grandes "repositorios" de software.
- Las distribuciones basadas en Debian usan archivos deb (pero usan apt para instalarlos)
- Las distribuciones basadas en Red Hat usan rpm (pero son instaladas por yum o dnf)
- .tar/.tar.gz puede contener cualquier archivo, pero a menudo puede contener código fuente, que debe compilarse.
- ./configurar; hacer; hacer instalar
Práctico:
- Instalar el paquete cowsay con apt
- Corre vaquera
Registros
- /var/registro
- Algunas aplicaciones desagradables inician sesión donde les gusta. Grr, por ejemplo:/opt/app/log
- syslog/rsyslog
- dmesg/kern.log
- auth.log, lastlog, último, w
Práctico:
- Grep el auth.log para una frase, por ejemplo, inicio de sesión
- Averigüe cuántas líneas existe la frase en el archivo
- Analice el archivo una línea a la vez para ver problemas
- Haga lo mismo con los mensajes/syslog