Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
linuxbasico [2019/04/16 17:06] fmolinuevo [3.2. [ ] Proceso de arranque: systemd, targets, comandos: systemctl, service, chkconfig] |
linuxbasico [2024/12/18 07:34] (actual) fmolinuevo [Bibliografía] |
||
|---|---|---|---|
| Línea 3: | Línea 3: | ||
| ===== Introducción ===== | ===== Introducción ===== | ||
| - | El propósito de este curso es brindar los conocimientos mínimos de Linux, tanto técnicos como informativos, que permitan al alumno administrar básicamente un sistema GNU/Linux. Incluye conocimientos sobre distribuciones basadas en Debian, en CentOS y algunas otras, así como ideas y conceptos de BSD Unix. Se incluirá también información sobre servidores, demonios y bases de datos, así como nociones de seguridad. | + | El propósito de este curso es brindar los conocimientos mínimos de Linux, tanto técnicos como informativos, que permitan al alumno administrar básicamente un sistema GNU/Linux. Incluye conocimientos sobre distribuciones basadas en Debian, en Rocky y algunas otras, así como ideas y conceptos de BSD Unix. Se incluirá también información sobre servidores, demonios y bases de datos, así como nociones de seguridad. |
| El objetivo de esta página wiki es suministrar un resumen de lo que se enseñará durante la cursada, en especial comandos y consejos prácticos. | El objetivo de esta página wiki es suministrar un resumen de lo que se enseñará durante la cursada, en especial comandos y consejos prácticos. | ||
| Línea 86: | Línea 86: | ||
| * Arch | * Arch | ||
| - | * CentOS | ||
| * Debian | * Debian | ||
| * Gentoo | * Gentoo | ||
| * RedHat | * RedHat | ||
| + | * Rocky | ||
| * SuSE | * SuSE | ||
| * Slackware | * Slackware | ||
| Línea 105: | Línea 105: | ||
| * The Linux Documentation Project (español): http://es.tldp.org/ | * The Linux Documentation Project (español): http://es.tldp.org/ | ||
| * Manuales varios: http://www.alcancelibre.org/staticpages/index.php/manuales-indice | * Manuales varios: http://www.alcancelibre.org/staticpages/index.php/manuales-indice | ||
| - | * Wiki de CentOS: http://wiki.centos.org/es | + | * Wiki de Rocky: https://wiki.rockylinux.org/ |
| * AXR Sistema de documentación: https://doc.axrglobal.com/ | * AXR Sistema de documentación: https://doc.axrglobal.com/ | ||
| * Instalación de Arch: https://wiki.archlinux.org/index.php/Installation_guide_%28Espa%C3%B1ol%29 | * Instalación de Arch: https://wiki.archlinux.org/index.php/Installation_guide_%28Espa%C3%B1ol%29 | ||
| Línea 115: | Línea 115: | ||
| * Debian Reference: https://www.debian.org/doc/manuals/debian-reference/ | * Debian Reference: https://www.debian.org/doc/manuals/debian-reference/ | ||
| * Wiki oficial de Debian: https://wiki.debian.org/ | * Wiki oficial de Debian: https://wiki.debian.org/ | ||
| - | * Sitio oficial de CentOS: http://www.centos.org/ | + | * Sitio oficial de Rocky: http://www.rockylinux.org/ |
| - | * CentOS Documentation: https://docs.centos.org/en-US/docs/ | + | * Rocky Documentation: https://docs.rockylinux.org/ |
| * Red Hat Documentation: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/ | * Red Hat Documentation: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/ | ||
| * The Linux Documentation Project: http://www.tldp.org/ | * The Linux Documentation Project: http://www.tldp.org/ | ||
| Línea 185: | Línea 185: | ||
| - | ==== 2.4. [ ] Instalación de CentOS: gráfica, texto, particionamiento ==== | + | ==== 2.4. [ ] Instalación de Rocky: gráfica, texto, particionamiento ==== |
| - | CentOS puede ser instalado de varias maneras diferentes, cada una con sus ventajas y desventajas. | + | Rocky puede ser instalado de varias maneras diferentes, cada una con sus ventajas y desventajas. |
| Primero, se debe elegir un medio de instalación, que puede ser un CDROM o un DVD. En el segundo caso, los paquetes disponibles son más abundantes que en el primero. Además, puede instalarse desde un CD mínimo, o desde la red, utilizando un CD netinstall. | Primero, se debe elegir un medio de instalación, que puede ser un CDROM o un DVD. En el segundo caso, los paquetes disponibles son más abundantes que en el primero. Además, puede instalarse desde un CD mínimo, o desde la red, utilizando un CD netinstall. | ||
| - | En cualquier caso, luego se pueden agregar más paquetes, de todos los disponibles para CentOS, así como instalar software extra de todo tipo y de diversas fuentes. | + | En cualquier caso, luego se pueden agregar más paquetes, de todos los disponibles para Rocky, así como instalar software extra de todo tipo y de diversas fuentes. |
| La instalación recomendada es la gráfica, dado que la de texto tiene escasa funcionalidad. Por ejemplo, no permite realizar un particionamiento adecuado. | La instalación recomendada es la gráfica, dado que la de texto tiene escasa funcionalidad. Por ejemplo, no permite realizar un particionamiento adecuado. | ||
| Línea 201: | Línea 201: | ||
| El esquema de particionamiento recomendado es altamente variable dependiendo de las necesidades y del destino que se le de al sistema. | El esquema de particionamiento recomendado es altamente variable dependiendo de las necesidades y del destino que se le de al sistema. | ||
| - | CentOS recomienda un mínimo de 5GB en la partición raíz. | + | Rocky recomienda un mínimo de 5GB en la partición raíz. |
| Para una **estación de trabajo**, con un disco moderno de 500GB o más, se puede instalar todo en una sola partición para la raíz, y un espacio de swapping. Por ejemplo: | Para una **estación de trabajo**, con un disco moderno de 500GB o más, se puede instalar todo en una sola partición para la raíz, y un espacio de swapping. Por ejemplo: | ||
| Línea 211: | Línea 211: | ||
| - swapping: si el sistema dispone de mucha RAM, digamos de 16 a 64GB, se puede crear una partición para intercambio de unos 8 a 16GB, obteniendo de 24 a 80GB totales de memoria. Obviamente lo ideal es que el sistema no utilice en forma intensiva el swapping. Un servidor adecuadamente dimensionado y administrado puede no necesitar intercambio. | - swapping: si el sistema dispone de mucha RAM, digamos de 16 a 64GB, se puede crear una partición para intercambio de unos 8 a 16GB, obteniendo de 24 a 80GB totales de memoria. Obviamente lo ideal es que el sistema no utilice en forma intensiva el swapping. Un servidor adecuadamente dimensionado y administrado puede no necesitar intercambio. | ||
| - | - raíz: para CentOS se necesita un mínimo de 5GB. De otra manera el instalador no permitirá continuar | + | - raíz: para Rocky se necesita un mínimo de 5GB. De otra manera el instalador no permitirá continuar |
| - /tmp: el directorio temporal es muy importante, y su tamaño y uso dependerá de para qué se use el sistema. Básicamente recomiendo unos 4GB. | - /tmp: el directorio temporal es muy importante, y su tamaño y uso dependerá de para qué se use el sistema. Básicamente recomiendo unos 4GB. | ||
| - /usr: aquí se instalarán binarios, archivos de datos varios, algunos archivos de configuración, manuales y algunas otras cosas como imágenes e íconos. Generalmente es suficiente con 4 a 10GB. | - /usr: aquí se instalarán binarios, archivos de datos varios, algunos archivos de configuración, manuales y algunas otras cosas como imágenes e íconos. Generalmente es suficiente con 4 a 10GB. | ||
| Línea 222: | Línea 222: | ||
| * https://www.debian.org/distrib/ | * https://www.debian.org/distrib/ | ||
| * https://www.debian.org/releases/stable/installmanual | * https://www.debian.org/releases/stable/installmanual | ||
| - | * http://www.centos.org/docs/ | + | * https://docs.rockylinux.org/ |
| - | * http://wiki.centos.org/ | + | * https://wiki.rockylinux.org/ |
| - | * http://www.centos.org/download/ | + | * https://rockylinux.org/download |
| ===== 3. Conociendo el funcionamiento de Linux ===== | ===== 3. Conociendo el funcionamiento de Linux ===== | ||
| Línea 295: | Línea 295: | ||
| systemctl reboot.target | systemctl reboot.target | ||
| + | |||
| + | Para conocer cuál es el target por default del sistema, que puede variar según el uso que se le dé al equipo: | ||
| + | |||
| + | systemctl get-default | ||
| + | |||
| + | Cambiar el target a emergency para realizar tareas de mantenimiento: | ||
| + | |||
| + | systemctl isolate emergency.target | ||
| + | |||
| + | Luego de las tareas de mantenimiento, para volver al estado por default sin reiniciar el equipo: | ||
| + | |||
| + | systemctl default.target | ||
| + | |||
| + | Detener el demonio SSH: | ||
| + | |||
| + | systemctl stop ssh.service | ||
| + | |||
| + | Iniciar el demonio SSH: | ||
| + | |||
| + | systemctl start ssh.service | ||
| Reiniciar el demonio SSH: | Reiniciar el demonio SSH: | ||
| systemctl restart ssh.service | systemctl restart ssh.service | ||
| + | |||
| + | Ver el estado de todos los servicios: | ||
| + | |||
| + | systemctl status | ||
| Ver el estado del servicio MySQL: | Ver el estado del servicio MySQL: | ||
| Línea 308: | Línea 332: | ||
| systemctl --failed | systemctl --failed | ||
| - | Habilitar un servicio, o deshabilitarlo: | + | Habilitar un servicio, deshabilitarlo o revisar su estado: |
| systemctl enable postgresql.service | systemctl enable postgresql.service | ||
| systemctl disable postgresql.service | systemctl disable postgresql.service | ||
| + | systemctl status postgresql.service | ||
| Línea 321: | Línea 346: | ||
| * Reiniciar: shutdown -r now | * Reiniciar: shutdown -r now | ||
| * Apagar: shutdown -h now | * Apagar: shutdown -h now | ||
| - | * telinit: para cambiar de runlevel. P. ej. para cambiar a runlevel 1: telinit 1 | + | * telinit: para cambiar de runlevel. P. ej. para cambiar a runlevel 1 para realizar tareas de mantenimiento: telinit 1 |
| Los servicios del sistema pueden iniciarse, reiniciarse y detenerse con el comando **service**. La configuración respecto a qué servicio se iniciará o detendrá automáticamente en los diferentes runlevels, se realiza con el comando **chkconfig**. | Los servicios del sistema pueden iniciarse, reiniciarse y detenerse con el comando **service**. La configuración respecto a qué servicio se iniciará o detendrá automáticamente en los diferentes runlevels, se realiza con el comando **chkconfig**. | ||
| Línea 341: | Línea 366: | ||
| chkconfig --level 2345 sshd off | chkconfig --level 2345 sshd off | ||
| + | //Nota//: Estos comandos aún funcionan en las distribuciones modernas con systemd, pero siempre llaman a systemctl, y se debería dejar de usarlos | ||
| ==== 3.3. [ ] Permisos, usuarios y grupos ==== | ==== 3.3. [ ] Permisos, usuarios y grupos ==== | ||
| Línea 377: | Línea 403: | ||
| ==== 3.5. [ ] Servidores: definición, demonios, posibilidades, iniciando y deteniendo demonios ==== | ==== 3.5. [ ] Servidores: definición, demonios, posibilidades, iniciando y deteniendo demonios ==== | ||
| - | Además de al equipo físico, se llama **servidor** a un proceso que brinda servicios de diferente índole. También se lo denomina **demonio**. | + | Además de al equipo físico, se llama **servidor** a un proceso que brinda servicios de diferente índole. También se lo denomina **demonio**. Los demonios son ejecutables que pueden tomar distintos nombres según la distribución, pero que generalmente es el mismo código de una a otra. |
| - | Ejemplos son los servicios Apache, Samba, NFS, Bind9, DHCP, y muchos otros. Así, el servicio HTTP provisto por Apache, es brindado por el demonio **httpd**; el servicio DNS ofrecido por Bind9, es brindado por el demonio **named**. | + | Ejemplos son los servicios Apache, Samba, NFS, Bind9, DHCP, y muchos otros. Así, el servicio HTTP provisto por Apache, es brindado por el demonio llamado **httpd** en Red Hat y derivados, mientras que en Debian y derivados se llama **apache2**; el servicio DNS ofrecido por Bind9, es brindado por el demonio **named** en las distribuciones derivadas de Red Hat, y **bind9** en las derivadas de Debian. |
| El objetivo del servidor físico es centralizar la información, así como la configuración, de los servicios que son provistos a las estaciones cliente. | El objetivo del servidor físico es centralizar la información, así como la configuración, de los servicios que son provistos a las estaciones cliente. | ||
| - | En la mayoría de los Linuxes modernos, los servicios se controlan con el comando service. | + | En la mayoría de los Linuxes modernos, los servicios se controlan con el comando **systemctl** provisto por **systemd**. |
| - | Para ver el estado de un servicio: | + | Para ver el estado del servicio SSH: |
| - | service sshd status | + | systemctl status ssh |
| Para detenerlo e iniciarlo: | Para detenerlo e iniciarlo: | ||
| - | service sshd stop | + | systemctl stop ssh |
| - | service sshd start | + | systemctl start ssh |
| + | |||
| + | Si se desea deshabilitar o habilitar un servicio o demonio Apache al inicio del sistema, en Debian: | ||
| + | |||
| + | systemctl disable apache2 | ||
| + | systemctl enable apache2 | ||
| + | |||
| + | Es importante recordar que el servicio, el nombre del demonio, puede variar de una distribución a otra. | ||
| ==== 3.6. [ ] Servicios más comunes en un servidor: Samba, NFS, httpd, DHCP, proxy, firewall, SSH, mail, impresión, DNS, FTP, VPN, bases de datos, virtualización ==== | ==== 3.6. [ ] Servicios más comunes en un servidor: Samba, NFS, httpd, DHCP, proxy, firewall, SSH, mail, impresión, DNS, FTP, VPN, bases de datos, virtualización ==== | ||
| Línea 471: | Línea 504: | ||
| * Red Hat System's Administrator Guide: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/index.html | * Red Hat System's Administrator Guide: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/index.html | ||
| * Filesystem Hierarchy Standard: http://www.pathname.com/fhs/ | * Filesystem Hierarchy Standard: http://www.pathname.com/fhs/ | ||
| + | * Debian SystemD: https://wiki.debian.org/systemd | ||
| + | * RedHat SystemD: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/chap-managing_services_with_systemd | ||
| + | * ArchLinux SystemD: https://wiki.archlinux.org/index.php/systemd | ||
| ===== 4. KDE ===== | ===== 4. KDE ===== | ||
| Línea 639: | Línea 675: | ||
| Linux tiene un excelente sistema de logs o registros. En general son archivos de texto que se actualizan inmediatamente ante un evento. Se guardan en /var/log y se utilizan para identificar inconvenientes de todo tipo, desde errores de programas y servicios a fallas en hardware o ruteo de correo electrónico, así como para monitorear actividad normal como el envío de correo electrónico, faxes, spoolers de impresión, etc. | Linux tiene un excelente sistema de logs o registros. En general son archivos de texto que se actualizan inmediatamente ante un evento. Se guardan en /var/log y se utilizan para identificar inconvenientes de todo tipo, desde errores de programas y servicios a fallas en hardware o ruteo de correo electrónico, así como para monitorear actividad normal como el envío de correo electrónico, faxes, spoolers de impresión, etc. | ||
| - | Ante cualquier falla en el sistema, se recomienda revisarlos a conciencia. El demonio encargado de guardarlos se llama **rsyslogd** en CentOS. Algunos servicios, como ejemplo MySQL, graban por sí mismos los registros, aunque suelen enviar algún dato a syslog también. | + | Ante cualquier falla en el sistema, se recomienda revisarlos a conciencia. El demonio encargado de guardarlos se llama **rsyslogd** en Rocky. Algunos servicios, como ejemplo MySQL, graban por sí mismos los registros, aunque suelen enviar algún dato a syslog también. |
| Para revisarlos, se puede usar algún visualizador como **less**. Para hacerlo en tiempo real, se puede utilizar la siguiente línea: | Para revisarlos, se puede usar algún visualizador como **less**. Para hacerlo en tiempo real, se puede utilizar la siguiente línea: | ||
| Línea 645: | Línea 681: | ||
| tail -F /var/log/messages | tail -F /var/log/messages | ||
| - | Algunos archivos de registro que se encuentran en /var/log en CentOS son: | + | Algunos archivos de registro que se encuentran en /var/log en Rocky son: |
| * **dmesg**: información de inicio del kernel, hasta que init toma el control | * **dmesg**: información de inicio del kernel, hasta que init toma el control | ||
| Línea 880: | Línea 916: | ||
| === Rangos de direcciones IP privadas para cada clase === | === Rangos de direcciones IP privadas para cada clase === | ||
| - | ***Clase A**: 10.0.0.0 a 10.255.255.255 (8 bits red, 24 bits hosts) | + | ***Clase A**: 10.0.0.0 a 10.255.255.255 (8 bits red, 24 bits hosts, 16777214 hosts disponibles), 1 red clase A |
| - | ***Clase B**: 172.16.0.0 a 172.31.255.255 (16 bits red, 16 bits hosts). 16 redes clase B contiguas | + | ***Clase B**: 172.16.0.0 a 172.31.255.255 (16 bits red, 16 bits hosts, 65534 hosts disponibles). 16 redes clase B contiguas |
| - | ***Clase C**: 192.168.0.0 a 192.168.255.255 (24 bits red, 8 bits hosts). 256 redes clase C contiguas | + | ***Clase C**: 192.168.0.0 a 192.168.255.255 (24 bits red, 8 bits hosts, 254 hosts disponibles). 256 redes clase C contiguas |
| Si bien a bajo nivel la conexión entre equipos se realiza utilizando direcciones IP, para simplificar el trabajo humano y no tener que recordar los números de direcciones, se utilizan nombres de host y un sistema de resolución de nombres en su correspondiente dirección IP: Domain Name Service (DNS). | Si bien a bajo nivel la conexión entre equipos se realiza utilizando direcciones IP, para simplificar el trabajo humano y no tener que recordar los números de direcciones, se utilizan nombres de host y un sistema de resolución de nombres en su correspondiente dirección IP: Domain Name Service (DNS). | ||
| Línea 903: | Línea 939: | ||
| # The primary network interface | # The primary network interface | ||
| auto eth0 | auto eth0 | ||
| - | # iface eth0 inet dhcp | ||
| iface eth0 inet static | iface eth0 inet static | ||
| address 192.168.11.1 | address 192.168.11.1 | ||
| Línea 910: | Línea 945: | ||
| broadcast 192.168.11.255 | broadcast 192.168.11.255 | ||
| dns-nameservers 192.168.11.11 192.168.11.12 | dns-nameservers 192.168.11.11 192.168.11.12 | ||
| - | dns-search fmsi | + | dns-search axrglobal |
| gateway 192.168.11.254 | gateway 192.168.11.254 | ||
| </code> | </code> | ||
| - | === CentOS === | + | Si se configura la interfaz con DHCP, el archivo interfaces se reduce a: |
| + | |||
| + | <code> | ||
| + | # The loopback network interface | ||
| + | auto lo | ||
| + | iface lo inet loopback | ||
| + | |||
| + | # The primary network interface | ||
| + | auto eth0 | ||
| + | iface eth0 inet dhcp | ||
| + | </code> | ||
| + | |||
| + | === Rocky === | ||
| - | La configuración de red en CentOS se encuentra en el archivo /etc/sysconfig/network y en el directorio /etc/sysconfig/network-scripts/ dentro de varios archivos y scripts de configuración. | + | La configuración de red en Rocky se encuentra en el archivo /etc/sysconfig/network y en el directorio /etc/sysconfig/network-scripts/ dentro de varios archivos y scripts de configuración. |
| Los archivos más importantes allí dentro son ifcfg-lo y ifcfg-eth0. A continuación, un ejemplo de configuración de ifcfg-eth0 para utilizar una IP fija: | Los archivos más importantes allí dentro son ifcfg-lo y ifcfg-eth0. A continuación, un ejemplo de configuración de ifcfg-eth0 para utilizar una IP fija: | ||
| Línea 1136: | Línea 1183: | ||
| - | ==== 14.2. [ ] CentOS: rpm, yum ==== | + | ==== 14.2. [ ] Rocky: rpm, yum ==== |
| - | CentOS es un sistema operativo basado en el código fuente de Red Hat Enterprise Linux. El sistema de paquetes de software que utiliza se llama Red Hat Package Manager (RPM). Éste permite instalar, desinstalar y revisar el software instalado en el equipo, con una alta confiabilidad, y de manera modular. | + | Rocky es un sistema operativo basado en el código fuente de Red Hat Enterprise Linux. El sistema de paquetes de software que utiliza se llama Red Hat Package Manager (RPM). Éste permite instalar, desinstalar y revisar el software instalado en el equipo, con una alta confiabilidad, y de manera modular. |
| Se utilizan para ello dos comandos principales: **rpm** y **yum**. El primero es el comando más importante, mientras que el segundo es un frontend que utiliza rpm para realizar tareas automáticas como resolver dependencias, instalar y desinstalar, a la vez que simplifica el bajar paquetes, realizar búsquedas de software y otras tareas habituales. | Se utilizan para ello dos comandos principales: **rpm** y **yum**. El primero es el comando más importante, mientras que el segundo es un frontend que utiliza rpm para realizar tareas automáticas como resolver dependencias, instalar y desinstalar, a la vez que simplifica el bajar paquetes, realizar búsquedas de software y otras tareas habituales. | ||