Está en la página 1de 77

Manual de Administración de Sistemas

GNU/Linux Básico

Trabajo Final
Tecnicatura Universitaria en Software Libre
Universidad Nacional del Litoral
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

Licencias

Reconocimiento – Compartir Igual (by-sa): Se permite el uso comercial de la obra y de las


posibles obras derivadas, la distribución de las cuales se debe hacer con una licencia igual a la
que regula la obra original.

Página 2 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

Agradecimientos
Este manual contó con el invaluable aporte de muchos profesionales especializados que
controlaron, revisaron, aclararon, criticaron y sugirieron cambios del material expuesto, pero
el aporte más importante lo hizo mi compañera de vida quien me apoyo a lo largo de la
carrera que con esto llega a su fin, Gracias Loy.

Página 3 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

Índice

1. Fundamentos de este manual ................................................................................... 6


a. Datos del autor ............................................................................................... 6
2. Conceptos básicos..................................................................................................... 7
3. ¿Porque elegir Software Libre? ................................................................................. 8
a. Las cuatro libertades .................................................................................... 8
i. La libertad de ejecutar el programa para cualquier
propósito ............................................................................................ 8
ii. La libertad de estudiar cómo funciona el programa y de
adaptarlo a sus necesidades ............................................................. 8
iii. La libertad de redistribuir copias........................................................ 8
iv. La libertad de mejorar el programa y poner las mejoras
a disposición del público .................................................................... 8
b. ¿Qué es GNU/Linux? .................................................................................... 8
c. Similitudes de GNU/Linux con MS Windows ................................................ 9
d. Diferencias de GNU/Linux con MS Windows ................................................ 9
4. Metodología de trabajo ..............................................................................................11
5. Preparando nuestro entorno laboral ..........................................................................12
a. ¿Que distro usar? ..........................................................................................12
b. Probando antes de instalar ............................................................................12
c. ¿Para qué sirve una Máquina Virtual? ..........................................................12
d. Instalando un nuevo mundo ..........................................................................12
6. Abriendo las puertas a GNU/Linux ............................................................................23
a. Primeros Pasos, moviéndonos dentro de GNU/Linux ..................................23
b. Consola vs Entorno Gráfico ...........................................................................24
c. Personalizando mi entorno de trabajo...........................................................27
d. Qué es el superusuario en GNU/Linux y cuál es su importancia .................27
e. ¿Dónde consigo aplicaciones?......................................................................28
f. ¿GNU/Linux puede reemplazar todas las funcionalidades de mi
MS Windows? ................................................................................................29
7. Primeros conceptos de la Administración de Sistemas ............................................30
a. Sistema de archivos, descubriendo dónde están las cosas .........................30
i. Tipos de sistema de archivos ............................................................30
ii. Estructuras de directorios ..................................................................32
iii. Editores de archivos ..........................................................................33
b. Intérpretes de comandos ...............................................................................34
i. Comandos básicos ............................................................................34
c. Usuarios, cada uno con su tema ...................................................................36
i. Tipos de Usuarios ..............................................................................36
ii. Administrar Usuarios .........................................................................37
d. Tipos de Grupo, ¿para qué sirven?...............................................................41
i. Tipos de Grupos ................................................................................42
ii. Administrar Grupos ............................................................................42
e. Permisos, la base de todo. ............................................................................43
i. Permisos de Lectura, Escritura y Ejecución......................................44
ii. Permisos Especiales .........................................................................44

Página 4 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

iii. Cómo se Representan los Permisos .................................................44


8. Redes de datos, compartiendo es mejor ..................................................................46
a. Breve introducción a redes en GNU/Linux ....................................................46
b. Acceso remoto, ¿podemos visitar otros equipos? ........................................46
c. La importancia de la transmisión de datos....................................................49
d. Herramientas para una red saludable ...........................................................49
9. Copias de seguridad, protegiendo lo indispensable .................................................51
a. ¿Porque perder el tiempo en guardar información? .....................................51
b. Tipos de copias de seguridad........................................................................51
i. Copia de seguridad completa ............................................................51
ii. Copia de seguridad incremental ........................................................52
iii. Copia de seguridad diferencial ..........................................................52
c. ¿Qué política de copias de seguridad debo tomar? .....................................53
d. Tareas programadas, un asistente permanente ...........................................53
e. Utilitarios disponibles .....................................................................................55
10. Brindando servicios....................................................................................................59
a. ¿Qué es un servidor y cuantos tipos hay? ....................................................59
b. ¿Es conveniente invertir en servidores? .......................................................60
c. Servidores de Archivos, la fortaleza de nuestros datos ................................61
d. Servidores de Web, el mundo en nuestras manos .......................................63
e. Servidores de Base de Datos, la excelencia en servidores..........................65
f. Servidores Proxys, controlando lo incontrolable ...........................................67
11. Tareas automáticas ...................................................................................................70
a. Ansible, la herramienta de los profesionales ................................................70
12. Conclusión .................................................................................................................74
13. Apéndice ....................................................................................................................75
14. Bibliografía Web.........................................................................................................76

Página 5 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

Capítulo 1
Fundamentos de este manual
El siguiente manual es una obra creada para la finalización de la carrera de Tecnicatura
Universitaria en Software Libre perteneciente a la Universidad Nacional del Litoral. El mismo
es un trabajo recopilatorio de distintas obras o instructivos que deambulan por el universo,
pero que no siguen un orden en común.
Toda esta labor está preparada para guiar a los administradores de sistemas que no están
familiarizados con GNU/Linux o quienes quieren adentrarse en el mundo de la
administración de sistemas y no saben cómo hacerlo.
Dicho trabajo no pretende crear expertos ni eruditos en el tema, solo intenta capacitar y
ayudar a quien carezca de experiencia previa o que tenga conocimientos básicos en esta
área, abriendo una puerta para que cada uno desarrolle su propio camino dentro del mundo
del Software Libre.

a. Datos del autor


La autoría de este manual corresponde a Lucas Sebastián Villa, egresado en el año
2008 de la carrera de Analista en Informática Aplicada, perteneciente a la
Universidad Nacional del Litoral. Esta preparación académica fomento el inscribirse
a una segunda carrera en la misma universidad para poder profundizar los
conocimientos sobre la cultura libre que no son alcanzados dentro de la currícula de
la primera.
Ligado hace años a la implementación de sistemas basados en Software Libre,
participó de migraciones a GNU/Linux de múltiples servidores y cientos de puestos
de trabajo en todo el ámbito del Ministerio de Salud de la Provincia de Santa Fe.

Página 6 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

Capítulo 2
Conceptos Básicos
Todo el material aquí expuesto tiene la referencia hacia el sitio del cual fue extraído algún
tipo de información. No todo el contenido mostrado viene de creadores foráneos, sino que
también se ha producido contenido propio, resultado del aprendizaje de la carrera y
conocimientos previos.
A pesar de que hay muchas distribuciones de sistemas operativos libres, los utilizados para
este manual son en base a las distribuciones en Ubuntu y algunas de sus derivadas (Linux
Mint, Ubuntu Mate, etc.)

Página 7 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

Capítulo 3
¿Porque elegir Software Libre?
El software libre proporciona a nivel técnico y operativo una serie de ventajas para los
usuarios, algunos ejemplos claros de estas típicas ventajas que proporciona son los bajos
costes al eliminar las erogaciones monetarias derivadas de licencias privativas. También
puede ser la elevada fiabilidad al ser testeados, usados y corregidos continuamente en
diferentes entornos lo que conlleva a una mayor seguridad que presenta al ser pública su
especificación y estar sometido a constante revisión. Otro ejemplo es la gran flexibilidad que
da el poder modificar y adaptar el código a los requerimientos particulares del usuario. Por
último uno de los fundamentos más importantes es que posee un mantenimiento flexible y
competitivo al no estar monopolizado por una compañía.

a. Las cuatro libertades


Estas ventajas prácticas son consecuencia de la definición del software libre que
defiende los derechos de los usuarios, empresas y desarrolladores. Estos derechos
se presentan típicamente en cuatro libertades que la Free Software Foundation
describe
i. La libertad de ejecutar el programa para cualquier propósito.
Uno de los conceptos básicos es la posibilidad de utilizar el software libre
para cualquier propósito, sin restricciones ni prohibiciones. Cada usuario es
dueño de lo que hace con sus sistemas.
ii. La libertad de estudiar cómo funciona el programa y de adaptarlo a sus
necesidades.
Fijar restricciones legales o prácticas sobre la comprensión o modificación de
un programa, como la obligación de comprar licencias especiales, la firma de
acuerdos de no divulgación o para lenguajes de programación que tienen
múltiples formas o representaciones añadir dificultades a la comprensión y
edición de un programa (del código fuente) con el objetivo de que sea
inaccesible, también hace que el software sea privativo (que no sea libre).
Sin la libertad de modificar un programa, los usuarios continuarán a merced
de un único proveedor.
iii. La libertad de redistribuir copias
El software puede ser copiado y distribuido virtualmente sin coste. Si a
alguien no se le permite dar un programa a quien lo necesite generando una
réplica, entonces ese programa no es libre. Lo que no significa que esto no
puede hacerse por un precio, si es que así lo desea.
iv. La libertad de mejorar el programa y poner dichas mejoras a
disposición del público
No todos los programadores son igual de buenos en todos los campos. Y
algunas personas no saben programar. Esta libertad permite a aquellos que
no tienen el tiempo o las habilidades para resolver un problema, puedan
acceder indirectamente a la libertad de modificación. Esto también puede
realizarse a cambio de un cierto costo.

b. ¿Qué es GNU/Linux?
Según lo identifica el sitio Wikipedia, GNU/Linux, es un sistema operativo libre tipo
Unix; multiplataforma, multiusuario y multitarea. El sistema es la combinación de
varios proyectos, entre los cuales destacan GNU y el núcleo Linux. Su desarrollo es

Página 8 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

uno de los ejemplos más prominentes de software libre, todo su código fuente puede
ser utilizado, modificado y redistribuido libremente por cualquiera, bajo los términos
de la GPL (Licencia Pública General de GNU) y otra serie de licencias libres.
A pesar de que Linux denomina en la jerga cotidiana al sistema operativo, éste es en
realidad solo el kernel del sistema. La idea de hacer un sistema completo se
remonta a mediados de la década de 1980 con el proyecto GNU, así como una gran
cantidad de los componentes que se usan hoy en día, que van desde los
compiladores de GNU hasta entornos de escritorio. Sin embargo, tras la aparición de
Linux en la década de 1990 una parte significativa de los medios generales y
especializados han utilizado el término GNU/Linux para referirse al todo lo cual ha
sido motivo de polémicas.
A GNU/Linux se le encuentra normalmente en forma de compendios conocidos
como distribuciones o distros, a las cuales se les han adicionado selecciones de
aplicaciones y programas para descargar e instalar las mismas. El propósito de una
distribución es ofrecer GNU/Linux como un producto final que el usuario pueda
instalar, cumpliendo con las necesidades de un grupo de usuarios o bien del público
general.

c. Similitudes de GNU/Linux con MS Windows


Como sabe, la similitud más obvia es que ambos son sistemas operativos
multiusuarios, la idea de esta sección es la de dejar en evidencia que si bien son
mundos diferentes, las tareas a realizar se pueden hacer con ambos de igual
manera.
Como usuarios finales y estándar, básicamente lo que le solicitamos a nuestros
sistemas operativos es que nos permite usar aplicaciones de terceros o propias para
resolver nuestros problemas diarios, sean laborales o personales. Para ello, ambos
sistemas poseen soluciones, a veces idénticas (ej. Mozilla Firefox) o a veces muy
diferentes (ej. Konqueror - Internet Explorer), pero siempre el resultado es el mismo,
la tarea se puede realizar.
Ambos poseen entornos gráficos similares y el desenvolverse dentro de uno es muy
similar a la de hacerlo en el otro. Los dos poseen administradores de archivos,
aplicativos básicos y herramientas de administración del sistema que son similares y
en algunos casos iguales.
Lamentablemente las similitudes no son muchas, aunque como dije anteriormente,
con los dos sistemas puede realizar la misma tarea, hay veces que tenemos casos
excepcionales, lo que da pie al siguiente tema.

d. Diferencias de GNU/Linux con MS Windows


Si bien ya enumeramos algunas de las similitudes que comparten ambos sistemas
operativos, hay que aclarar que sus diferencias son lo más notorio, comenzando por
la instalación, para realizar esta tarea en GNU/Linux hay que realizar relativos
esfuerzos, aunque cada vez es una tarea más sencilla, pero se puede personalizar
completamente la instalación, a la hora de instalar Windows prácticamente no
podemos configurar nada, haciendo de esta manera la instalación de Windows más
fácil y cómoda.
En cuanto a la compatibilidad de Hardware, MS Windows es generalmente más
compatible con todo tipo de hardware que GNU/Linux. No obstante si bien cada vez
se acercan más ambos a la compatibilidad total, aún falta un largo trecho para lograr

Página 9 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

este cometido. De todas maneras gracias a que GNU/Linux goza de alta popularidad
ofrece una alta compatibilidad con diferentes componentes de Hardware a pesar de
no estar detrás de ninguna casa comercial.
Si hablamos de software la diferencia es en extremo más notable, GNU/Linux cuenta
con menos programas en algunos sectores, y tiene una menor aceptación en el
mundo empresarial, aunque gracias a apoyos de empresas como Sun Microsystems
o IBM se consiguieron avances importantes en los últimos tiempos. En contraparte
MS Windows posee una gran cantidad de software, ya que es el sistema operativo
más utilizado en las empresas y esto hace que los desarrolladores se centren más
en él.
Como consideraciones finales de este punto se deja en claro que a pesar de que MS
Windows parece ser mejor, pero GNU/Linux siempre se ha caracterizado por la
robustez de su sistema, ya que por ejemplo podemos estar meses sin que el equipo
presente fallas en su operatividad y si una aplicación falla, no se bloquea totalmente
el equipo. En MS Windows siempre de alguna manera u otra es necesario reiniciar el
sistema cuando se modifica o actualiza alguna configuración del mismo o si se tiene
funcionando largos periodos de tiempo, también es frecuente que se puede bloquee
al ejecutar alguna operación aparentemente sencilla.

Página 10 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

Capítulo 4
Metodología de trabajo
Este manual se centra básicamente en mostrar las bondades que posee el mundo del
software libre y todas las posibilidades que ofrece al momento de administrar sistemas.
Pero si no se lleva de manera organizada y con un orden preestablecido puede abrumar al
lector haciendo que se torne difícil la comprensión del mismo.
Es por eso que la metodología que se usará a lo largo del manual es simple, en primera
medida se deja aclarado que todos los temas que se van a ir tocando se pueden realizar
con una instalación de GNU/Linux a mano así se puede probar lo que se va aprendiendo,
ya que la informática no es para espectadores. Paso siguiente iremos viendo desde las
tareas más básicas a realizar como controlar o movernos por dentro de una computadora
hasta cuestiones más complejas que llevan a manejar cientos o miles de equipos con muy
poco esfuerzo.

Página 11 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

Capítulo 5
Preparando nuestro entorno de laboral
Antes de arrancar con cualquier tema debemos preparar nuestra área de trabajo. Para ello
vamos a necesitar una instalación de GNU/Linux limpia, o sea que no tenga nada más que
lo básico que se configura al momento de instalarlo

a. ¿Que distro usar?


Al ser código abierto, lo cual permite que cualquiera persona o empresa tenga
acceso a su código fuente y pueda manipularlo a su antojo siempre y cuando
respete las licencias, el sistema operativo GNU/Linux posee múltiples versiones de
muchas comunidades o empresas que desarrollan de maneras distintas las
aplicaciones que rodean al núcleo. Estas muchas ramificaciones se llaman
distribuciones, o más comúnmente conocidas como distros. Estas distros
normalmente son derivadas de otras anteriores. Una distro puede derivar en una o
más versiones nuevas que son llamadas forks. Un ejemplo claro a este caso es la
distro Debian que derivó en forks como ser Ubuntu y Linux Mint entre otros tantos. A
su vez Ubuntu deriva en Linux Mint también (Linux Mint deriva de Debian y también
de Ubuntu).
En este manual yo me apoyo en Ubuntu Mate, que está derivado de Ubuntu, para
realizar las tareas, por ser más amigable con los usuarios inexpertos.

b. Probando antes de instalar


Desde hace ya varios años la mayoría de las distros de GNU/Linux posee en su
disco de instalación la opción de Instalar o Ejecutar el sistema operativo. Esta
segunda opción nos da la posibilidad de probar GNU/Linux sin instalarlo en nuestra
computadora y así no modificar nada en nuestro sistema operativo actual.
Normalmente esta función la utilizan los usuarios de MS Windows para así conocer
levemente el mundo GNU/Linux, pero también lo hacen usuarios de unas distros
para probar otras.
Aunque esta forma de trabajo nos da una vista en general de lo que el sistema
puede ofrecernos, no se acerca en lo más mínimo a la experiencia de tener un
sistema instalado, configurado y personalizado.

c. ¿Para qué sirve una Máquina Virtual?


Una máquina virtual es un software que simula una computadora y puede ejecutar
programas como si fuese un equipo real.
Una característica esencial de las máquinas virtuales es que los procesos que
ejecutan están limitados por los recursos y abstracciones proporcionados por la
máquina real. Estos procesos no pueden escaparse de esta computadora virtual.
Uno de los usos domésticos más extendidos de las máquinas virtuales es ejecutar
sistemas operativos para probarlos. De esta forma podemos ejecutar un sistema
operativo que queramos probar (GNU/Linux, por ejemplo) desde nuestro sistema
operativo habitual (Mac OS X por ejemplo) sin necesidad de instalarlo directamente
en nuestra computadora y sin miedo a que se desconfigure el sistema operativo
primario.

d. Instalando un nuevo mundo

Página 12 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

A partir de este punto este manual se vuelve más práctico, ya que comenzaremos la
instalación del sistema operativo, incluyendo la preparación de la máquina virtual y
su parametrización.
Para comenzar con la instalación vamos a necesitar el instalador de Oracle VM
Virtualbox y la imagen de disco de Ubuntu Mate, los mismos se pueden descargar
desde el sitio oficial de cada uno de ellos, en caso de requerirse, los enlaces de
descarga se acompañan en el apéndice de este manual.
Con todos los requisitos a mano, es hora de comenzar con la tan ansiada
preparación de la máquina virtual (a partir de ahora VM, siglas de Virtual Machine).
Como se puede apreciar en la imagen 5.1, para el primer paso en la creación de una
VM debemos darle un nombre, así la podremos identificar entre las otras VMs que
tengamos en nuestro equipo real, paso siguiente y sobre todo muy importante, elegir
qué tipo de sistema operativo va a alojar nuestra naciente VM como también que
versión y de qué tipo es. Luego continuamos con la asignación de memoria RAM,
tener en cuenta que no podemos darle más de la que poseemos físicamente y
además de eso tampoco podremos darle toda la que tenemos, siempre se aconseja
optar por la memoria que recomienda el virtualizador. Para finalizar en este paso
seleccionamos que tipo de disco rígido queremos para esta VM.

5.1 - Parámetros iniciales para la creación de una máquina virtual

A continuación diagramamos nuestro disco rígido, como podemos ver en la imagen


5.2 tenemos varias opciones de creación y también el tamaño que vamos a darle.
Esto es algo que debemos prestar atención ya que es la forma en que esa
capacidad va a ser reservada, fija o dinámica. Si optamos por la manera fija estamos
reservando el total del tamaño por más que no lo usemos, es decir que bloqueamos

Página 13 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

del disco rígido físico el tamaño del virtual. En cambio sí usamos uno dinámico
vamos a ir ocupando espacio en el disco físico de manera gradual a medida que
vamos cargando información en el virtual. Luego de este paso ya solo aceptamos
con el botón correspondiente y nuestra VM ya se creará.

5.2 - Creación del disco rígido

Cuando ya tenemos la VM creada, solo nos resta una sola cosa más, montar la
imagen de instalación del sistema operativo Ubuntu Mate. Para ello debemos
seleccionar la VM que acabamos de crear y tocar el botón Configuración.
Luego de realizar esta acción se muestra una ventana como se puede apreciar en la
imagen 5.3 donde debemos seleccionar el acceso de Almacenamiento. Dentro de
este apartado tenemos la configuración del disco rígido recientemente creado y de
una unidad óptica virtual, que es donde debemos montar nuestra imagen del
instalador.
Desde esta sección podemos agregar más discos rígidos o más unidades ópticas de
ser necesario

Página 14 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

5.3 - Selección de la imagen de disco de instalación

Con todo listo, solo queda comenzar la instalación, presionamos el botón de iniciar la
VM recientemente creada y configurada y veremos cómo cobra vida, mostrando una
pantalla inicial (imagen 5.4) donde el instalador nos ofrece una selección de idiomas
y algo que es de destacar, nos da la posibilidad de elegir entre instalar el sistema
operativo o solo probarlo. Antes de continuar hay que aclarar que la opción de
probar si bien da una gran experiencia de lo que el sistema operativo puede hacer,
no es para nada similar a lo que es tenerlo instalado, ya que carece de una
configuración adecuada que solo se logra en la instalación, sin contar que los
recursos de hardware son utilizados de una manera para nada óptima. En este caso
seleccionamos la opción de instalar y pasamos al paso siguiente.

5.4 - Pantalla inicial de instalación

Página 15 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

El paso siguiente es sencillo, solo debemos seleccionar la distribución del teclado.


En la parte inferior tenemos la posibilidad de probar si la configuración seleccionada
es la correcta.

5.5 - Pantalla de selección de distribución del teclado

La nueva ventana es aún igual de sencilla, como podemos observar en la imagen


5.6, debemos seleccionar que tipo de instalación deseamos realizar. En este caso
elegimos la opción Normal, ya que la opción Mínima posee menos funciones para
hacer ágil la instalación. También se nos ofrece la posibilidad de instalar software
adicional de terceros para optimizar nuestro hardware, esto siempre queda a
evaluación en el momento de que se está instalando y no hay recomendación si se
debe realizar ahora o se puede realizar más adelante. Otras de las funciones que
posee este paso es la de descargar actualizaciones que pudieran existir al momento
de instalar, si bien ralentiza la instalación y requiere de una conexión a internet es
muy recomendable seleccionarla en este momento para así no tener que realizarlas
más adelante, ya que siempre se debe mantener el sistema operativo lo más al día
posible.

Página 16 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

5.6 - Pantalla de selección de tipo de instalación

Luego de las configuraciones básicas iniciales hemos llegado a la primera pantalla


que requiere un tratamiento más complejo. Como se puede apreciar en la imagen
5.7, tenemos que diagramar el particionado de nuestro disco rígido, seleccionando
qué tipo de instalación deseamos. Para ello tenemos algunas opciones por defecto y
una que nos permitirá hacer todo de forma manual. Obviamente como
administradores de sistemas que pretendemos ser, vamos a seleccionar la opción
que nos deja administrar a nosotros las particiones. Luego de dar la instrucción de
continuar, nos abre una ventana nueva.

Página 17 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

5.7 - Pantalla de tipo de instalación

En esta nueva ventana (imagen 5.8) que nos muestra el instalador podemos
apreciar que posee un listado de los dispositivos físicos de almacenamiento con los
que cuenta el equipo hardware, si bien en este caso solo vemos uno pero podrían
ser mas de acuerdo a la configuración de cada equipo.
El particionamiento no es una ciencia exacta, y mucho menos con las miles de
combinaciones que hay, pero una cosa si es cierta, separar el punto de montaje
/home del resto de las particiones nos ahorrará muchos problemas y dolores de
cabeza, sobre todo en actualizaciones, donde no perderemos ni un solo dato.
De todas maneras a medida que un administrador de sistema se va adentrando en
el mundo de preparación de equipos, se va haciendo cada vez más hábil para
determinar qué tipo de particionado debe usar en cada caso.

Página 18 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

5.8 - Pantalla de selección Particiones

Continuando con el particionamiento, debemos seleccionar uno de los dispositivos


físicos que tenemos para de esta manera poder comenzar la tarea de dividir el disco
rígido. Cuando realizamos este paso, se nos habilita el icono de añadir particiones
(posee la forma de un signo más de color verde, pero esto puede variar de acuerdo
al SO seleccionado), pulsando sobre el asistente de instalación nos despliega otra
ventana (ver imagen 5.9) que permite generar una partición.
En esta pantalla vemos que tenemos una sección donde ingresar la cantidad de
espacio en disco que queremos otorgar para nuestra partición, paso optamos por
crear una partición Primaria o una Lógica, también la ubicación de la partición a
crear, el tipo de archivos que va a utilizar y el punto de montaje que va a tener.
Para nuestro ejemplo vamos a particionar de una forma sencilla, utilizando las
cuatros particiones principales para un aceptable desempeño de nuestra máquina
virtual.

Página 19 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

5.9 - Pantalla de creación de Particiones

Entonces el esquema de particiones quedaría de la siguiente manera (Imagen 5.10):


● /: Es el directorio raíz de todo sistema GNU/Linux, de en él se alojan
el resto de los directorios que el sistema operativo requiere para
trabajar.
● /boot: La partición montada en boot contiene el kernel del sistema
operativo junto con archivos utilizados durante el proceso de
arranque. En si esta partición no requiere demasiado espacio en
disco.
● /swap: Las particiones swap (o de intercambio) son utilizadas para
dar soporte a la memoria virtual. En otras palabras, los datos son
escritos a una partición swap cuando no hay suficiente memoria RAM
para almacenar los datos que su sistema está procesando. El tamaño
a brindar para esta esta partición es tema de debate desde hace
años, por eso optamos por elegir una medida por defecto que es dar
la mitad de tamaño a la partición swap de acuerdo a la cantidad de
memoria RAM que tengamos en el equipo
● /home: En la partición home se guardan todos los datos y
configuraciones del usuario, como ser sus archivos, fondos de
escritorio, preferencias, etc. Es muy recomendable que esta partición
esté separada del resto porque así se gana una independencia
bastante importante del sistema operativo, permitiendo que el mismo
sea reemplazado o reinstalado sin necesidad de perder datos en el
proceso.

Página 20 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

5.10 - Esquema definitivo de Particiones

Con el disco rígido particionado, solo nos quedan dos pasos, seleccionar la zona
horaria y por último pero no menos importante se nos solicita que identifiquemos al
equipo y usuario administrador con una contraseña (Imagen 5.11).Si bien el
asistente de instalación denota que la contraseña no es obligatoria debería serlo, ya
que la misma protege de accesos indebidos a los equipos y por más que no parezca
útil o necesaria, por seguridad, si lo es.

5.11 - Esquema definitivo de Particiones

Página 21 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

Finalizado estos pasos, el asistente de instalación procederá de manera automática


a instalar todo el sistema operativo tal cual le hemos indicado en los pasos previos.
Una vez finalizado este proceso, que puede rondar en los 30 minutos dependiendo
de la capacidad que posea el equipo donde se instala, el asistente se reiniciará con
el equipo completamente instalado y listo para su puesta en funcionamiento. A pesar
de que el sistema está “como de fábrica” ya tiene funcionalidades básicas que
permiten su rápida utilización en tareas sencillas.
Con el sistema instalado ya tenemos la base para hacer crecer nuestros proyectos,
como una práctica recomendable para trabajar con VMs, es generar a partir de esta
instalación limpia una copia de resguardo por si en el camino del aprendizaje
tenemos algún inconveniente, con la que estamos usando podemos obtener una
copia de esta VM las veces que sean necesarias, de esta manera nos ahorraremos
el tedioso proceso de instalación que acabamos de realizar. La práctica antes
mencionada también se puede aplicar si necesitamos crear distintos servidores de
aplicaciones, obteniendo una ganancia en tiempo más que aceptable.

Página 22 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

Capítulo 6
Abriendo las puertas a GNU/Linux
Con este capítulo el propósito principal que intento alcanzar es el de demostrar que
GNU/Linux no posee misterios ocultos ni tampoco que es un mundo inaccesible para
usuarios que están acostumbrados a otros sistemas operativos. De hecho es todo lo
contrario, si bien siendo un usuario avanzado se puede obtener de manera ilimitada
distintas funcionalidades con este sistema operativo, si somos usuarios inexpertos o
principiantes también podemos utilizarlo de manera que nos permita resolver las cuestiones
diarias que se nos presentan.
Para esto vamos a ir viendo a lo largo de este capítulo y los subsiguientes como poder
desenvolvernos dentro de este entorno nuevo para nosotros, conociendo con el correr de
los temas las funciones que podemos realizar para alcanzar un alto grado de
personalización en la administración de sistemas.
Otra de las metas a alcanzar es la de enseñar a movernos dentro del entorno que nos
ofrece GNU/Linux, observando en contraparte las modalidades que nos presenta el sistema
operativo para realizar una misma tarea.
Por último pretendo desmitificar la consigna de que lo que hacemos en MS Windows no se
puede realizar en GNU/Linux, de hecho la idea es hacer caer esta creencia demostrando
que en ocasiones es mejor opción utilizar un sistema operativo libre que uno privativo.

a. Primeros Pasos, moviéndonos dentro de GNU/Linux

6.1 Pantalla Inicial

El entorno de trabajo por defecto de casi todas las Distros de GNU/Linux es


similares entre sí y similares a MS Windows. Si bien además hay un gran número de
interfaces diferentes en este manual solo hablaremos del entorno MATE que es el

Página 23 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

que viene por defecto en esta distro que instalamos, dejando las otras para que sean
investigadas más adelante en el caso de que se tenga interés en esta particularidad
del sistema operativo por parte del lector.
En la imagen 6.1 se puede apreciar como se ve el inicio de sesión por primera vez
de nuestra reciente instalación. Se nos presenta inicialmente una ventana de
bienvenida, sobre la cual podemos realizar algunas tareas como ir a la tienda de
software, conectarnos a la comunidad o simplemente realizar un donativo a los
desarrolladores y personas que mantienen este sistema operativo en particular. Esta
pantalla va a ser visualizada siempre que iniciemos sesión en el equipo, salvo que
desactivemos la opción correspondiente.

6.2 Escritorio de trabajo

El escritorio de trabajo con el cual contamos en GNU/Linux es a grandes rasgos


igual que el de MS Windows, poseen entre sí muchas características compartidas y
ambos son el contenedor de las aplicaciones en ejecución dentro del sistema
operativo. En la imagen 6.2 se puede observar que el menú principal se encuentra
desplegado, ofreciendo un gran número de aplicaciones ordenadas por categorías.
Desde este lugar podemos acceder a todos los rincones de nuestro equipo y realizar
la tarea que queramos.
Una particularidad con la que cuenta GNU/Linux es la posibilidad de trabajar con
múltiples escritorios, lo que nos permite tener diferenciadas las tareas que
deseamos realizar agrupando en cada uno las herramientas necesarias en cada
caso, el número por defecto es de cuatro pero esto es variable.

b. Consola vs Entorno Gráfico


A diferencia de otros sistemas operativos GNU/Linux dispone de dos interfaces de
comunicación con el usuario, una interfaz gráfica de usuario (GUI) al estilo de MS
Windows y una interfaz de línea de comandos (CLI) , similar a MS-DOS pero con
muchísima más potencia. En realidad, la interfaz gráfica de usuario, no es más que
un programa en ejecución o proceso lanzado de manera automatizada desde la

Página 24 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

interfaz de línea de comandos tras arrancar el equipo. Eso significa, que el control
siempre lo tendremos desde la interfaz de línea de comandos, y desde ella
podremos controlar todo el entorno gráfico. Al ser un sistema operativo multiusuario,
cualquier sistema GNU/Linux dispone de varias terminales de línea de comandos
para iniciar sesión, accesibles mediante la combinación de teclas CTRL+ALT+FX
(X=1,2,3,4,5,6) y una interfaz gráfica por defecto a la cual accedemos mediante
CONTROL+ALT+F7.
Los usuarios que no están familiarizados con una interfaz de línea de comandos o
una interfaz gráfica de usuario (GUI) pueden querer saber los pros y los contras de
cada una para ayudarlo a determinar qué funciona mejor en cada caso. Otros
pueden sentir curiosidad por las diferencias entre las dos. Con un gran énfasis en los
comandos y la manipulación de archivos, la siguiente tabla ilustra qué interfaz tiene
la ventaja en ciertas categorías y por qué.

Aspecto Interfaz Línea de Comando (CLI) Interfaz Gráfica de Usuario (GUI)

Facilitar Debido a un mayor grado de Ya que una GUI es mucho más


memorización y la familiaridad intuitiva visualmente, los usuarios
necesaria para la operación y la generalmente aprenden a usar
navegación, a los nuevos una GUI más rápido que una
usuarios les resulta más difícil interfaz de línea de comandos.
operar una interfaz de línea de
comandos que una GUI.

Controlar Los usuarios tienen un buen Una GUI ofrece una gran cantidad
control sobre los archivos y el de acceso a archivos, funciones
sistema operativo en una interfaz de software y al sistema operativo
de línea de comandos. Sin en su conjunto. Al ser más fácil de
embargo, para usuarios nuevos usar que una línea de comandos,
o principiantes, no es tan fácil de especialmente para usuarios
usar como una GUI. nuevos o principiantes, una GUI
es utilizada por más usuarios.

Multitarea Aunque muchos entornos de Los usuarios de GUI tienen


línea de comando son capaces ventanas que permiten a un
de realizar múltiples tareas, no usuario ver, controlar, manipular y
ofrecen la misma facilidad y alternar entre varios programas y
capacidad para ver varias cosas carpetas al mismo tiempo.
a la vez en una pantalla.

Velocidad Los usuarios de la línea de Si bien la tecnología más nueva


comandos solo necesitan utilizar hace que una GUI sea más rápida
un teclado para navegar por la y eficiente que nunca, el uso de
interfaz, lo que a menudo resulta un mouse y un teclado para
en un rendimiento más rápido. navegar y controlar la GUI es aún
un poco más lento que una
interfaz de línea de comandos.

Página 25 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

Recursos Una computadora que solo usa Una GUI requiere más recursos
la línea de comandos consume del sistema debido a los
muchos menos recursos del elementos que requieren la carga,
sistema que una GUI. como los iconos y las fuentes. Se
deben cargar los controladores de
video, mouse y otros, que
requieren recursos adicionales del
sistema.

Scripting Una interfaz de línea de La creación de scripts utilizando


comandos requiere, en su una GUI se ha vuelto mucho más
mayoría, que los usuarios ya fácil con la ayuda del software de
conozcan los comandos y la programación, que permite a los
sintaxis de los scripts, lo que usuarios escribir los scripts sin
dificulta que los usuarios nuevos tener que conocer todos los
o novatos creen scripts. comandos y la sintaxis. El
software de programación
proporciona guías y consejos
sobre cómo codificar funciones
específicas, así como opciones de
vista previa para ver si y cómo
funcionará el script.

Acceso Al acceder a otra computadora o El acceso remoto a otra


remoto dispositivo a través de una red, computadora o servidor es posible
un usuario puede manipular el en una GUI y es fácil de navegar
dispositivo o sus archivos con con poca experiencia. Los
una interfaz de línea de profesionales de TI suelen utilizar
comandos. Sin embargo, debe una GUI para el acceso remoto,
conocer los comandos para incluida la administración de
hacerlo y no es tan fácil para servidores y computadoras de
usuarios nuevos o novatos. usuario.

Diversidad Una vez que haya aprendido a Cada GUI tiene un diseño y una
navegar y usar una línea de estructura diferentes cuando se
comando, no cambiará tanto trata de realizar diferentes tareas.
como una nueva GUI. Aunque se Incluso diferentes iteraciones de la
pueden introducir nuevos misma GUI, como MS Windows,
comandos, los comandos pueden tener cientos de cambios
originales casi siempre diferentes entre cada versión.
permanecen iguales.

Ergonomía Una interfaz de línea de El uso de teclas de acceso directo


comando es a menudo muy y el movimiento más frecuente de
básica y puede sumar tensión las posiciones de las manos,
para la vista de un usuario. El debido al cambio entre un teclado
síndrome del túnel carpiano y un mouse, puede reducir la
también puede ser un riesgo al tensión. La tensión visual todavía

Página 26 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

usar una interfaz de línea de puede ser un riesgo, pero una GUI
comandos porque los usuarios tiene más colores y es más
solo usan un teclado. Hay poca atractiva visualmente, lo que lleva
necesidad de cambiar las a una posible reducción de la
posiciones de las manos y la tensión visual.
tensión en las muñecas o incluso
los dedos pueden verse
afectadas.

Como hemos visto en el cuadro comparativo anterior se dejan los pros y los contras
de cada entorno, esto no significa que debamos optar por uno y olvidarnos del otro,
sino más bien utilizar ambos, aprovechando al máximo las particularidades de cada
uno.

c. Personalizando mi entorno de trabajo


Aunque la personalización de un entorno de escritorio pueda parecer trivial, en
muchas ocasiones es bueno saber que herramientas podemos adicionar a nuestra
instalación por defecto, que nos permita optimizar el tiempo, los recursos y obtener
más funcionalidades.
GNU/Linux tiene un sinfín de programas para complementar la instalación de base y
con distintos niveles de complejidad para un mismo tipo de programa, desde
sistemas para usuarios novatos hasta software muy específicos que solo pueden ser
utilizado por usuarios expertos.
Por eso las posibilidades de personalización son casi ilimitadas, podemos elegir
prácticamente cada cosa que necesitemos y quitar las que no se utilizan siempre y
cuando tengamos los permisos suficientes para hacerlo, tema que hablaremos en el
siguiente punto.

d. Qué es el superusuario en GNU/Linux y cuál es su importancia


Una de las principales características de GNU/Linux es la forma en que gestiona la
seguridad dentro del sistema, razón por la cual es el favorito para usarse en
supercomputadoras y servidores de todo el mundo. Si han tenido la posibilidad de
probarlo en algún momento ya se habrán dado cuenta que para realizar algunas
tareas administrativas siempre se requiere ingresar una contraseña, que es
justamente la manera a la cual se hace referencia.
La cuenta root o de superusuario es la cuenta con los permisos más elevados;
similar al Administrador en MS Windows. Este usuario tiene permisos de lectura,
escritura y ejecución de cualquier aplicación del sistema (acceso administrativo en
general); a diferencia de los usuarios normales que tienen acceso limitado a ciertas
tareas por razones obvias de seguridad.
Una instrucción dada con permisos de superusuario puede ser muy útil cuando se
usa correctamente, pero terriblemente devastadora si no se tiene el conocimiento
preciso de lo que se está haciendo y de las consecuencias que pueden tener
nuestras acciones
La importancia del superusuario en GNU/Linux se mide en términos de seguridad.
Para los administradores de sistemas multiusuario esto representa una gran ventaja
puesto que se reduce el daño accidental o malicioso ejecutado por otro usuario. Por

Página 27 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

tal motivo cualquier daño realizado como un usuario normal se mantiene contenido
dentro de ese dominio, de manera que no afecta al sistema o a otros usuarios.
Además es mucho más difícil que el software malicioso que se origina en equipos
remotos pueda acceder a los archivos críticos del sistema, ya que generalmente
pertenecen a la cuenta de root. Utilizar una cuenta de superusuario para realizar
tareas administrativas ayuda a evitar cometer errores.
Para poder adquirir los permisos de superusuario utilizamos normalmente el
comando sudo, el cual nos habilita temporalmente a realizar las tareas
administrativas que requerimos

e. ¿Dónde consigo aplicaciones?


Cuando ya nuestro sistema operativo está instalado y luego de acomodar a nuestro
gusto el entorno de escritorio, surge la pregunta que a muchos usuarios que están
migrando de MS Windows a GNU/Linux aterra, ¿De dónde consigo aplicaciones
para trabajar?.
Pues bien, la metodología de obtención de los diferentes softwares no dista de lo
que en MS Windows hacemos, la forma más fácil es buscar una aplicación en
internet y descargarla o aunque no sea común en estos días, instalarla desde un
DVD o CD.
Pero aún hay una forma mejor y más práctica, y sobre todo nativa de GNU/Linux, los
repositorios. Un repositorio es un servidor accesible mediante internet que almacena
paquetes y programas para que nosotros los podamos descargar e instalar en
nuestra distribución GNU/Linux.
Cada una de las distribuciones GNU/Linux dispone de sus propios repositorios en los
que se hallan los programas que nosotros podemos instalar en nuestro equipo.
Aparte de los repositorios propios de cada una de las distribuciones, también
podemos añadir y usar repositorios de terceros que contendrán versiones más
actuales del software que tenemos instalado o programas que no han incluido los
creadores de la distro que usamos.
Esta particularidad que posee GNU/Linux frente a otros sistemas operativos que hoy
en día copiaron la modalidad de repositorio y lo llaman Tienda de software o Store,
es lo que sigue marcando la diferencia entre un negocio y una comunidad. Las
empresas productoras de estos sistemas operativos solo cuentan con un repositorio
de ellos y si bien algunas permiten que los usuarios suban sus programas todo está
controlado por ellos en todo momento. En cambio los repositorios de GNU/Linux lo
puede realizar cualquier usuario con ganas de compartir o ayudar a la comunidad, es
por eso que cada usuario puede crear un repositorio para facilitarse el trabajo como
puede ser un administrador de sistemas de una empresa, que tiene todo listo para
que los equipos descarguen actualizaciones desde un repositorio local.
Para poder acceder a estos repositorios de forma sencilla y amigable tenemos los
gestores de paquetes, como por ejemplo apt, aptitude, YaST o pacman, que son las
herramientas más utilizadas para descargar e instalar el software de estos lugares.
Utilizar esta metodología de trabajo proporciona ventajas como ser la de instalar un
software en nuestro equipo de forma mucho más sencilla que en otros sistemas
operativos. En GNU/Linux pocas veces tendremos la necesidad de buscar y
descargar programas de Internet. Cabe recordar que muchas de las infecciones en
MS Windows se producen al instalar software proveniente de sitios de dudosa
reputación. Además normalmente tenemos la seguridad que el software instalado

Página 28 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

proviene de una fuente segura y está libre de malware. Los repositorios de donde
nos descargamos los programas disponen de las medidas de seguridad necesarias
para asegurar que los programas descargados están libres de este tipo de
amenazas, siempre y cuando los mismos sean repositorios oficiales del software que
estamos utilizando. También el proceso de actualización del sistema operativo es
mucho más sencillo. En el momento que se actualizan los repositorios podremos
actualizar fácilmente nuestro sistema operativo mediante nuestro gestor de
paquetes.
El uso de repositorios únicamente presenta a una sola desventaja frente otros
sistemas operativos, en el caso que queramos instalar un programa o actualizar el
sistema operativo precisamos de una conexión de internet. Esto es así porque
descargar la totalidad de dependencias de un programa de forma manual exige
demasiado tiempo. Como opinión particular esto no es ningún tipo de desventaja
porque hoy en día es común disponer de una conexión a Internet, pero puede darse
la situación que esto no sea así.
Además de lo antes mencionado también tenemos otra manera tradicional que es la
descarga de software empaquetado (rpm, deb, tgz, ebuild, etc) que se instala de
manera fácil desde la consola o desde algún gestor de paquetes como los
anteriormente mencionados.

f. ¿GNU/Linux puede reemplazar todas las funcionalidades de mi MS Windows?


A pesar de que el miedo inicial de usuarios que migran de un sistema operativo a
otro es como cómo obtener programas para poder realizar tareas cotidianas, la
preocupación continúa cuando deben adivinar como se llama el programa en
GNU/Linux que usaban en MS Windows.
Por suerte hoy en día muchos productores de software lanzan versiones en paralelo
para ambos sistemas operativos, facilitando el traslado de un entorno a otro sin
demasiadas complejidades. Algunos ejemplos claros son el navegador Mozilla
Firefox, la suite de oficina LibreOffice o el cliente de correos Mozilla Thunderbird.
Pero lamentablemente hay algunos programas muy específicos que por cuestiones
monopólicas o de negocios solo hacen una versión para MS Windows, pero esto no
significa que GNU/Linux no puede suplantar este software con uno similar y hasta
muchas veces mejor, como ser el editor de imágenes Adobe Photoshop que no se
encuentra en el mundo libre, pero que tiene su contraparte en Gimp.
Pero si la intención de saber más sobre las equivalencias entre uno y otro sistema
operativo en el sitio Wikibooks, en la sección introducción a GNU/Linux podemos
apreciar una muy nutrida tabla comparativa entre un sistema operativo y otro

Página 29 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

Capítulo 7
Primeros conceptos de la Administración de Sistemas
La administración de sistemas en GNU/Linux no difiere con la de otros sistemas operativos
en lo que respecta a tareas que debemos realizar. Siempre tendremos que hacer
mantenimiento de redes, configurar algún servidor o hacer copias de seguridad de alguna
base de datos entre otras decenas de cosas. Por eso es que en esta sección nos
enfocamos en presentar las primeras herramientas que nos van a acompañar a lo largo de
nuestra vida como administradores.

a. Sistema de archivos, descubriendo dónde están las cosas


¿Qué es un Sistema de Archivos o File System? Pues este término hace referencia
a la forma en la que la información se organizará dentro del disco rígido, definiendo
cómo se realizarán las operaciones de lectura y escritura, búsquedas e indexación
de los datos, etc.
El disco rígido de nuestra computadora está confeccionado por múltiples bloques,
denominados sectores, donde se almacenan los datos que manejamos. El sistema
de archivos es el que determina cómo deben organizarse dichos bloques para crear
lo que conocemos bajo el nombre de archivos o directorios, manteniendo
información acerca del espacio disponible en cada instante.
A lo largo de la historia, cada uno de los sistemas operativos que conocemos ha
tenido su propio Sistemas de archivos. Así, podemos encontrar que Microsoft trabaja
con dos tipos bien identificados, FAT y NTFS. Son muchas las diferencias entre
estos dos, pero las más importantes están orientadas a la posibilidad de contar con
dispositivos de almacenamiento más grandes y más seguridad en el acceso a los
archivos del sistema.

i. Tipos de sistema de archivos


Linux soporta gran variedad de sistemas de archivos, más abajo enumero los
más utilizados

Ext2 El primer sistema de archivos utilizado por GNU/Linux fue


creado por Remy Card (antes existió “Ext”, utilizado con Minix,
pero debido a sus limitaciones y usos no suele contar como un
sistema de archivos válido para las distribuciones GNU/Linux
que conocemos hoy en día). Como todos los sistemas de
archivos de GNU/Linux, éste también es asíncrono, es decir, no
escribe inmediatamente los metadatos en el dispositivo de
almacenamiento, sino que lo hace de manera periódica. Con
ello consigue aprovechar los tiempos muertos de la CPU y
consecuentemente, el rendimiento general del equipo. Pese a
ser el primero, ya dispone de mecanismos que permiten la
recuperación de la información en caso de fallo (detectando
particiones desmontadas erróneamente).

Ext3 Es compatible con Ext2, la única diferencia con éste es que


posee un archivo adicional de registro para implementar
journaling. De hecho, el objetivo de Ext3 era mejorar Ext2, pero

Página 30 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

manteniendo la compatibilidad con éste. Entre las principales


diferencias cabe destacar que Ext3 mantiene la consistencia no
solo de los metadatos sino también de los propios datos. Por
supuesto, la seguridad de poder recuperar los datos de nuestro
sistema tiene un coste, y es que tendremos menos rendimiento
y más consumo de espacio en disco.

Ext4 Mantiene la compatibilidad con sus antecesores, posee


journaling, reduce considerablemente la fragmentación de
archivos y permite dispositivos de almacenamiento de más
capacidad.

ReiserFS Desarrollado por la empresa Namesys, fue el primer sistema de


archivos con journal incluido en un núcleo estándar de
GNU/Linux. Pero además, implementa otra serie de ventajas no
disponibles en otros sistemas de archivos, como puede ser la
repartición de sistemas de archivos montados, o un esquema
para reducir la fragmentación. La versión más reciente de este
sistema de archivos se denomina Reiser4, y además de las
características antes indicadas, posee mecanismos que le
permiten trabajar con cientos de miles de archivos, y una
estructura de archivos optimizada.

XFS Creado por Silicon Graphics Inc., se trata de un sistema de


archivos con journaling que inicialmente funcionaba sobre la
implementación IRIX de UNIX, pero que posteriormente se
liberó como código abierto. Destaca por su alta escalabilidad y
fiabilidad, y sobre todo porque es capaz de trabajar con
archivos muy grandes.

JFS Desarrollado por IBM, inicialmente fue creado para servidores


de alto rendimiento y equipos de altas prestaciones. Posee un
eficiente journaling que le permite trabajar cómodamente con
archivos de gran tamaño como con otros más pequeños. Las
particiones JFS pueden ser dinámicamente redimensionadas,
pero no pueden ser comprimidas.

Seguro que no le ha pasado desapercibido el término Journaling o journal a lo


largo de los párrafos anteriores, y es que se trata de la principal característica
que identifica los sistemas operativos modernos. El journaling también conocido
como registro por diario es un mecanismo que almacenará las transacciones
que se realizan en el sistema, y que permitirá la recuperación de los datos en
caso de fallo grave.
Su funcionamiento, a grandes rasgos, sería el siguiente, cuando se desea
guardar un dato en el sistema de archivos, se anotará esta acción en el journal
pasando a continuación a realizar realmente la operación de escritura en el
disco rígido del equipo. Si la operación de escritura en disco rígido finaliza con

Página 31 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

éxito entonces se elimina esa operación del journal. Pero, si antes de finalizar la
operación de escritura en disco se produjese un fallo entonces el journal, que
aún mantiene la información correspondiente al archivo, podría recuperarlo para
el sistema rápidamente en el siguiente inicio.

ii. Estructuras de directorios


No solo el sistema de archivos de nuestro sistema operativo GNU/Linux es
importante para conocer aspectos que afectan al rendimiento de nuestro
equipo, también es importante que conozcamos la forma en la que está
estructurado el sistema de directorios.
El estándar utilizado por GNU/Linux para organizar la información se denomina
FHS (Filesystem Hierarchy Standard), y éste estándar se encarga de organizar
la información de forma jerárquica.
Al contrario que en MS Windows o MS-DOS el sistema de archivos en cualquier
sistema GNU/Linux no está ligado de una forma directa con la estructura del
hardware, esto es, no depende de si una determinada computadora uno o más
discos rígidos para crear las unidades c:\, d:\ o m:\. Todos el sistema de
archivos de GNU/Linux tiene un origen único la raíz o root representada por /.
Bajo este directorio se encuentran todos los archivos a los que puede acceder
el sistema operativo sin hacer diferencias como de unidades.
Dentro de estas estructuras encontramos los siguientes directorios comunes.

/bin Almacena las aplicaciones básicas del sistema.

/boot Los archivos necesarios para el inicio del sistema se encuentran en


esta locación, así como los correspondientes al cargador de
arranque.

/dev Cada uno de los archivos representa a un dispositivo del sistema.

/etc Es el directorio donde se encontrarán la mayoría de los archivos de


configuración del sistema y de otras aplicaciones importantes.

/home Donde se encontrarán los directorios personales de los usuarios del


sistema

/lib Bibliotecas compartidas necesarias para la ejecución del sistema.

/mnt Se trata del directorio en el que se solían montar los distintos


dispositivos de almacenamiento (discos rígidos externos, pen-
drive), pero que ahora ha quedado obsoleto porque se utiliza el
nuevo directorio /media para dicha función.

/proc Mantiene archivos que almacenan el estado (procesos,


dispositivos) del sistema.

/root Es el directorio personal del administrador del sistema.

/sbin Comandos de administración del sistema.

Página 32 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

/tmp Carpeta donde el sistema almacena información temporal.

/usr Ubicación que normalmente se dedica para instalar las aplicaciones


de usuario.

/var Contiene varios archivos con información del sistema, como


archivos de logs, emails de los usuarios del sistema, bases de
datos, información almacenada en la caché, información relativa a
los paquetes de aplicaciones, etc. En cierto modo se podría decir
que actúa a modo de registro del sistema.

iii. Editores de archivos


Luego de ver la estructura de cómo se organizan los archivos debemos pensar
en cómo interactuar con ellos, sobre todo con los archivos de configuración.
Para ello contamos con muchos editores de texto en modo consola que pueden
ayudarnos a trabajar con estos datos. Cabe destacar que en esta sección solo
voy a mencionar editores de texto para terminal, ya que son más potentes que
sus colegas de entorno gráfico dado que no depende del buen funcionamiento
de este entorno para trabajar y por ende podemos utilizarlo para reparar
distintas cuestiones de nuestro sistema operativo.
Si bien hay muchos editores y gracias al código abierto este número se
incrementa constantemente hay tres editores que son los favoritos para poder
trabajar con nuestros archivos, ellos son VIM, NANO y EMACS
NANO es el un sencillo editor de textos para el terminal que viene instalado por
defecto en Ubuntu. No es tan potente como VIM o EMACS pero es mucho más
fácil de manejar que estos. Así cualquier usuario por poco experimentado que
sea es capaz de empezar a usar Nano desde el primer momento gracias a las
dos líneas de ayuda que mantiene en su parte inferior.
En tanto VIM ha sido el primer editor de texto a pantalla completa para sistemas
Unix . Además fue creado con la intención de que fuese sencillo en su uso y
ligero para no cargar de sobremanera el sistema. Para aquellos acostumbrados
a usar editores de texto mediante en entornos gráficos, puede resultar un poco
abrupto y complejo su aprendizaje, pero sí bien porque estamos a cargo de un
servidor GNU/Linux o porque nuestro entorno gráfico está dando problemas y
no carga, deberíamos ser capaces de editar archivos desde un editor como
VIM.
Por último EMACS es un editor de texto con una gran cantidad de funciones,
muy popular entre programadores y usuarios técnicos. Emacs es parte del
proyecto GNU. El manual de GNU Emacs lo describe como "un editor
extensible, personalizable, auto-documentado y de tiempo real."
Para resumir, los editores de texto, sea cual fuere, son útiles y potentes para
poder realizar cualquier tarea, sea modificar un archivo de configuración,
ejecutar un programa sin hacer doble clic en su icono o para poder descargar
actualizaciones, y se pueden usar tanto como en un servidor sin modo gráfico
como en un equipo de escritorio de un usuario final.

Página 33 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

b. Intérpretes de comandos
El intérprete de comandos permite la comunicación entre el sistema y el usuario.
Aunque actualmente las interfaces gráficas de usuario o GUI facilitan el trabajo
cotidiano, todavía existen funciones, como la automatización de tareas, que se
resuelven mejor desde la línea de comandos o CLI (Command Line Interface). Es el
programa que recibe lo que se escribe desde la terminal y lo convierte en
instrucciones para que el sistema operativo las realice.
En otras palabras el objetivo de cualquier intérprete de comandos es ejecutar los
programas que el usuario teclea en el prompt del mismo. Cuando el usuario escribe
una orden, el intérprete la ejecuta. En dicha orden, puede haber programas internos
o externos: Los programas internos son aquellos que vienen incorporados en el
propio intérprete, mientras que los externos son los programas que tenemos dentro
de nuestros equipos.
Si bien hay un gran número de intérpretes y clones de estos, nos vamos a centrar en
BASH (Bourne-again shell), que es uno de los más utilizados y más completos que
podemos encontrar en el mundo de los shell de GNU/Linux. Sobre este intérprete
tenemos muchísimo material sobre su historia y sus funcionalidades, aquí solo
vamos a detallar las más significativas para poder realizar tareas diarias de
administración.

i. Comandos básicos
Para poder trabajar con los intérpretes necesitamos saber cómo, para eso
tenemos un conjunto de comandos básicos que nos ayudaran desde crear una
carpeta a ver si un equipo está encendido del otro lado de una red. Abajo se
detalla un pequeño listado con cada comando y su funcionalidad, así como un
pequeño ejemplo de uso

Comando Descripción del comando Ejemplo de uso


[Opciones]

cat arch1 ..archN Concatena y muestra un archivo cat /etc/passwd

cd dir Cambia de directorio cd /tmp

chmod permisos Cambia los permisos de un archivo chmod +x miscript


arch

chown Cambia el dueño un archivo chown nobody


usuario:grupo miscript
arch

cp arch1...archN Copia archivos cp foo foo.bkp


dir

diff [-e] arch1 Encuentra diferencia entre archivos diff foo.c newfoo.c
arch2

du [-sabr] arch Reporta el tamaño del directorio du -s /home/

Página 34 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

file arch Muestra el tipo de un archivo file


arc_desconocido

find dir test Encuentra archivos find . -name ``.bak -


acción print

grep [-cilnv] expr Busca patrones en archivos grep mike


archivos /etc/passwd

head -count arch Muestra el inicio de un archivo head prog1.c

mkdir dir Crea un directorio. mkdir temp

mv arch1 Mueve un archivo a un directorio mv a.out prog1


...archN dir

mv arch1 arch2 Renombra un archivo mv .c prog_dir

less / more Visualiza página a página un archivo. less less muy_largo.c


arch(s) acepta comandos vi.

ln [-s] arch Crea un acceso directo a un archivo ln -s


acceso /users/mike/.profile .

ls Lista el contenido del directorio ls -l /usr/bin

pwd Muestra la ruta del directorio actual pwd

rm arch Borra un archivo rm foo.c

rm -r dir Borra todo un directorio rm -rf prog_dir

rmdir dir Borra un directorio vacío rmdir prog_dir

tail -count arch Muestra el final de un archivo tail prog1.c

at [-lr] hora Ejecuta un comando más tarde at 6pm Friday


[fecha] miscript

cal [[mes] año] Muestra un calendario del mes/año cal 1 2025

date Muestra la hora y la fecha date


[mmddhhmm]
[+form]

echo string Escribe mensaje en la salida estándar echo "Hola mundo”

finger usuario Muestra información general sobre un finger nn


usuario en la red @maquina.aca.com
.co

id Número id de un usuario id usuario

kill [-señal] PID Matar un proceso en ejecución kill 1234

Página 35 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

man comando Ayuda del comando especificado man gcc, man -k


printer

passwd Cambia la contraseña passwd

ps [axiu] Muestra información sobre los procesos ps -ux , ps -ef


que se están ejecutando en el sistema

who / rwho Muestra información de los usuarios who


conectados al sistema

c. Usuarios, cada uno con su tema


GNU/Linux es un sistema multiusuario, por lo tanto esto significa que cada uno tiene
un espacio dedicado dentro del sistema operativo. Cada uno de estos usuarios
puede tener habilidades o permisos para realizar distintas acciones dentro del
sistema, es importante que un buen administrador sepa cómo limitar los permisos
para evitar que usuarios malintencionados o descuidados dañen nuestro entorno.
Por eso la tarea de añadir, modificar, eliminar y en general administrar usuarios se
convierte en algo no solo rutinario sino importante, porque además es un elemento
de seguridad que mal administrado puede convertirse en un enorme hueco en
nuestra seguridad.
i. Tipos de Usuarios
Los usuarios en GNU/Linux se identifican por un número único, el UID y
pertenecen a un grupo principal de usuario, identificado también por un número
único de grupo GID. Un usuario puede pertenecer a más grupos además del
principal.
En mi opinión la forma más fácil de agrupar a estos usuarios es en tres áreas:
Usuario root
● También llamado superusuario o administrador.
● Su UID (User ID) es 0 (cero).
● Es la única cuenta de usuario con privilegios sobre todo el sistema. Acceso
total a todos los archivos y directorios con independencia de propietarios y
permisos.
● Controla la administración de cuentas de usuarios.
● Ejecuta tareas de mantenimiento del sistema.
● Puede detener sistemas que estén en ejecución de otros usuarios.
● Instala software en el sistema.
● Puede modificar o reconfigurar el kernel, controladores, etc.
Usuarios especiales
● Ejemplos: bin, daemon, adm, lp, sync, shutdown, mail, operator, squid,
apache, etc.
● Se les llama también cuentas del sistema.
● No tiene todos los privilegios del usuario root, pero dependiendo de la cuenta
asumen distintos privilegios de root.
● Lo anterior para proteger al sistema de posibles formas de vulnerar la
seguridad.

Página 36 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

● No tienen contraseñas pues son cuentas que no están diseñadas para iniciar
sesiones con ellas.
● También se les conoce como cuentas de "no inicio de sesión" (nologin).
● Se crean automáticamente al momento de la instalación de GNU/Linux o de
la aplicación.
● Generalmente se les asigna un UID entre 1 y 100
Usuarios normales
● Se usan para usuarios individuales.
● Cada usuario dispone de un directorio de trabajo, ubicado generalmente en
/home.
● Cada usuario puede personalizar su entorno de trabajo.
● Tienen solo privilegios completos en su directorio de trabajo o HOME.
● Por seguridad, es siempre mejor trabajar como un usuario normal en vez del
usuario root, y cuando se requiera hacer uso de comandos solo de root,
utilizar el comando su.
● En las distros actuales de GNU/Linux se les asigna generalmente un UID
superior a 1000.
Usuarios sudoers
Una mención especial merecen recibir los usuarios sudoers, son usuarios
normales con permisos de administración como el usuario root
ii. Administrar Usuarios
Añadir usuarios con useradd
El comando useradd permite añadir nuevos usuarios al sistema desde la línea
de comandos. Sus opciones más comunes o importantes son las siguientes:
● -c añade un comentario al momento de crear al usuario, campo 5 de
/etc/passwd
● -d directorio de trabajo o home del usuario, campo 6 de /etc/passwd
● -e fecha de expiración de la cuenta, formato AAAA-MM-DD, campo 8 de
/etc/shadow
● -g número de grupo principal del usuario (GID), campo 4 de /etc/passwd
● -G otros grupos a los que puede pertenecer el usuario, separados por comas.
● -r crea una cuenta del sistema o especial, su UID será menor al definido en
/etc/login.defs en la variable UID_MIN, además no se crea el directorio de
inicio.
● -s shell por defecto del usuario cuando ingrese al sistema. Si no se
especifica, bash, es el que queda establecido.
● -u UID del usuario, si no se indica esta opción, automáticamente se
establece el siguiente número disponible a partir del último usuario creado.
Ahora bien, realmente no hay prácticamente necesidad de indicar ninguna
opción ya que si hacemos lo siguiente:
#> sudo useradd lukas
Se creará el usuario y su grupo, así como las entradas correspondientes en
/etc/passwd, /etc/shadow y /etc/group. También se creará el directorio de inicio
o de trabajo: /home/lukas y los archivos de configuración que van dentro de este
directorio.
Las fechas de expiración de contraseña, etc. Quedan lo más amplias posibles
así que no hay problema que la cuenta caduque, es por eso que prácticamente
lo único que faltaría sería añadir la contraseña del usuario y algún comentario o

Página 37 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

identificación de la cuenta. Utilizando la opción -c es posible establecer el


comentario en /etc/passwd
#> sudo useradd -c "Lucas Sebastián" luças
Siempre el nombre del usuario es el último parámetro del comando. Por
ejemplo, si queremos salirnos de lo preestablecido, podemos configurar algo
como lo siguiente
#> sudo useradd -d /usr/luca -s /bin/csh -u 800 -c "Luca Segundo" luca
Con lo anterior estamos cambiando su directorio de inicio, su shell por defecto
será csh y su UID será el 800 en vez de que el sistema tome el siguiente
número disponible.

7.1 Distintos parámetros para useradd con la visual de los usuarios agregados
(Imagen editada para mostrar dos resultados en una sola vista)

Modificar usuarios con usermod


Como su nombre lo indica, usermod permite modificar o actualizar un usuario o
cuenta ya existente. Sus opciones más comunes o importantes son las
siguientes:
● -c añade o modifica el comentario, campo 5 de /etc/passwd
● -d modifica el directorio de trabajo o home del usuario, campo 6 de
/etc/passwd
● -e cambia o establece la fecha de expiración de la cuenta, formato AAAA-
MM-DD, campo 8 de /etc/shadow
● -g cambia el número de grupo principal del usuario (GID), campo 4 de
/etc/passwd
● -G establece otros grupos a los que puede pertenecer el usuario, separados
por comas.
● -l cambia el login o nombre del usuario, campo 1 de /etc/passwd y de
/etc/shadow
● -L bloquea la cuenta del usuario, no permitiéndole que ingrese al sistema. No
borra ni cambia nada del usuario, solo lo deshabilita.
● -s cambia el shell por defecto del usuario cuando ingrese al sistema.
● -u cambia el UID del usuario.
● -U desbloquea una cuenta previamente bloqueada con la opción -L.
Si queremos cambiar el nombre de usuario de luças a lucas_tusl:

Página 38 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

7.2 Modificación del nombre de usuario


(Imagen editada para mostrar dos resultados en una sola vista)

Casi seguro también cambiará el nombre del directorio de inicio en /home, pero
si no fuera así o si necesitamos otros cambios o modificaciones en la misma
cuenta tenemos los siguientes comandos

7.3 Modificación del nombre de usuario con otros parámetros


(Imagen editada para mostrar dos resultados en una sola vista)

Lo anterior modifica el comentario de la cuenta, su shell por defecto que ahora


será Korn shell, su grupo principal de usuario quedó establecido al GID 1000 y
todo esto se aplicó al usuario lucas que como se observa debe ser el último
argumento del comando.
En caso de que queramos deshabilitar al usuario lucas:
#> usermod -L lucas

Eliminar usuarios con userdel


Como su nombre lo indica, userdel elimina una cuenta del sistema, este
comando puede ser invocado de tres maneras:

7.4 Eliminación de usuario sin parámetros


(Imagen editada para mostrar dos resultados en una sola vista)

Sin opciones elimina la cuenta del usuario de /etc/passwd y de /etc/shadow,


pero no elimina su directorio de trabajo ni archivos contenidos en el mismo, esta
es la mejor opción, ya que elimina la cuenta pero no la información de la misma.
Con la opción -r al igual que lo anterior elimina la cuenta totalmente, pero con la
además elimina su directorio de trabajo, archivos y directorios contenidos en el
mismo, también su buzón de correo, si es que estuvieran configuradas las

Página 39 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

opciones de correo. La cuenta no se podrá eliminar si el usuario está


utilizándola en el sistema al momento de ejecutar el comando.
La opción -f es igual que la opción -r, elimina todo lo del usuario, cuenta,
directorios y archivos del usuario, pero además lo hace sin importar si el usuario
está actualmente en el sistema trabajando. Es una opción muy radical, además
de que podría causar inestabilidad en el sistema, es por eso que hay que usarla
solo en casos muy extremos.

7.5 Eliminación de usuario sin parámetros

Cambiar contraseñas con passwd


Crear al usuario con useradd es el primer paso, el segundo es asignarle una
contraseña a ese usuario. Esto se logra con el comando passwd que permitirá
ingresar la contraseña y su verificación:

7.6 Cambio de clave del usuario

El usuario root es el único que puede indicar el cambio o asignación de


contraseñas de cualquier usuario. Usuarios normales pueden cambiar su
contraseña en cualquier momento con tan solo invocar passwd sin argumentos,
y podrá de esta manera cambiar la contraseña cuantas veces lo requiera.

El comando passwd en algunas distros tiene integrado validación de


contraseñas comunes, cortas, de diccionario, etc. Entonces si por ejemplo
intento como usuario normal cambiar mi contraseña a qwerty el sistema me
mostrará lo siguiente:
#> passwd
Changing password for user lucas.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
Nótese que al ingresar qwerty como contraseña se detectó que es una
secuencia ya conocida como contraseña y me manda la advertencia: "BAD

Página 40 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

PASSWORD, sin embargo me permite continuar, al ingresar la verificación. Es


decir, passwd avisa de malas o débiles contraseñas pero permite establecerlas
si realmente se desea.
Resumiendo entonces, se podría decir que todo lo antes dicho se reduce a dos
líneas de comandos para crear y dejar listo a un usuario nuevo para trabajar en
GNU/Linux

7.7 Alta de usuario y configuración de clave en dos pasos

Se crea el usuario loy, useradd hace todo el trabajo de establecer el shell,


directorio de inicio, copiar archivos iniciales de configuración de la cuenta, etc. y
después passwd establece la contraseña. ¿Hay algo más simple?, no creo.

d. Tipos de Grupo, ¿para qué sirven?


Para simplificar la gestión de permisos entre tantas cuentas recientemente creadas,
GNU/Linux reúne a todos los usuarios dentro de grupos. De este modo, a la hora de
especificar ciertos permisos sobre un conjunto de usuarios, se pueden establecer los
permisos directamente sobre el grupo. Otra cosa importante a conocer es que cada
grupo se identifica por un Group ID o GUID.
Todos los usuarios pertenecen por defecto a un grupo con el mismo nombre, a este
se lo conoce como grupo principal de usuario o grupo primario. También, un mismo
usuario puede estar dentro de otros grupos, que serían los secundarios. Los grupos
en GNU/Linux quedan registrados en el archivo /etc/group, y se pueden visualizar
con el siguiente comando

7.8 Grupos añadidos por el usuario

Todos y cada uno de los archivos en GNU/Linux son propiedad de un usuario y de


un grupo, y sobre cada uno de ellos recaen unos privilegios relativos al propietario,
al grupo, y al resto del mundo.

Página 41 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

i. Tipos de Grupos
Los diferentes grupos que posee GNU/Linux son para reunir a distintos usuarios
y que estos puedan compartir archivos por ejemplo. También estos permisos se
dan para limitar el accionar dentro del sistema de usuarios malintencionados, ya
que para realizar acciones en distintas carpetas se debe poder pertenecer a ella
y tener el permiso correspondiente
ii. Administrar Grupos
Creación de grupos con groupadd
En este caso, tenemos el comando groupadd, tan solo debemos indicar el
nombre del grupo como parámetro. Por ejemplo, si quisiéramos añadir un grupo
llamado “tusl”, la sentencia sería la siguiente

7.9 Comando groupadd sin parámetros


(Imagen editada para mostrar dos resultados en una sola vista)

Modificación de grupos con groupmod


Por supuesto, los grupos también pueden ser modificados al igual que hacemos
con los usuarios. Para ello, usamos el comando groupmod. En el caso de los
grupos podemos editar su nombre o su gid. La sintaxis para el comando es
sudo groupmod [-g nuevo-gid] [-n nuevo-nombre] nombre-grupo, por ejemplo
cambiemos el gid del grupo “tusl”

7.10 Modificación del grupo con groupmod sin parámetros


(Imagen editada para mostrar dos resultados en una sola vista)

Eliminación de grupos con groupdel


También podemos eliminar los grupos que no necesitemos más, para esto
utilizamos el comando groupdel seguido del nombre del grupo

7.11 Eliminación del grupo con groupdel


(Imagen editada para mostrar dos resultados en una sola vista)

Página 42 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

Para tener en cuenta, se eliminará el grupo sólo en caso de que no tenga


usuarios asignados como primario. Si existiera algún usuario con esta
condición, la acción no se realizará.

Añadir usuarios a un grupo con adduser


Un grupo sin usuarios no tiene mucho sentido, es por eso que para ello
empleamos el comando adduser, a continuación el nombre del usuario y el
nombre del grupo. Es por eso que si quisiéramos añadir lucas al grupo tusl
deberíamos introducir el siguiente comando

7.12 Alta de usuario a un grupo

Quitar usuarios de un grupo con deluser


Finalmente, si queremos eliminar un usuario de un grupo, utilizamos el
comando deluser acompañado del nombre del usuario y del grupo. Por ejemplo,
si queremos quitar a “lucas” del grupo “tusl” debemos hacer

7.13 Baja de usuario a un grupo

Con todas estas herramientas se pueden realizar múltiples tareas donde se limiten a
los usuarios a sus propios asuntos, sin poner en peligro a los archivos de otros
usuarios. Pero para que los grupos tengan sentido se necesita que identifiquemos
qué hará cada uno o qué podrá hacer, para ello es que existen los permisos o
privilegios.

e. Permisos, la base de todo.


Desde el comienzo en cualquier archivo o carpeta hay tres tipos o niveles de
privilegios, los que se aplican al propietario del archivo o carpeta, los que se aplican
a todos los miembros del grupo al que pertenece el propietario, y los que se aplican
a todos los demás. Pero más detalladamente
● Permisos del Usuario: Es el primer nivel de privilegios. Básicamente
representa los permisos que se aplican al propietario de un determinado
archivo o directorio.

Página 43 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

● Permisos del Grupo: Estamos ante el segundo nivel de privilegios, que


define los derechos de lectura, escritura y ejecución que se aplican sólo a
aquellos usuarios que pertenecen al mismo grupo que el propietario del
archivo.
● Permisos de Otros: Este es el último nivel. Representan los privilegios de
lectura, escritura y ejecución por parte del resto de usuarios que no entran en
ninguno de los niveles anteriores.
i. Permisos de Lectura, Escritura y Ejecución
Como hemos dicho, sobre un archivo podemos definir básicamente tres tipos de
permisos (lectura, escritura y ejecución). Estos se establecen tanto sobre
archivos como sobre carpetas, pero existen algunas diferencias de matiz que
detallo a continuación.
Lectura. Representan la posibilidad de poder acceder a un archivo o carpeta y
leer su contenido. En un directorio hacen referencia a la posibilidad visualizar su
contenido.
Escritura. Definen la posibilidad de acceder y modificar el contenido de un
archivo, o en caso de un directorio, la capacidad de borrar o añadir archivos
dentro de él.
Ejecución. Estos son los más críticos. Indican la posibilidad de ejecutar un
determinado archivo en el sistema. En el caso de un directorio, los derechos de
ejecución representan la capacidad de entrar dentro del directorio.
ii. Permisos Especiales
Adicionalmente, existen tres bits de permisos especiales denominados setuid,
setgid y sticky bit. Básicamente tratan de determinar ciertos tipos de privilegios
que no quedan cubiertos con los anteriores. De forma resumida, podríamos
decir que cada uno de estos bits permite hacer lo siguiente
setuid: se puede asignar a archivos ejecutables, y en este caso determina la
posibilidad de que el proceso vinculado al archivo pueda adquirir los permisos
del propietario en el momento de su ejecución. Normalmente se utiliza para que
un usuario normal pueda ejecutar un cierto ejecutable con permisos elevados.
Un claro ejemplo lo tenemos en su
setgid: de forma análoga al caso de setuid, lo que determina es que el proceso
se pueda ejecutar con los privilegios del grupo al que pertenece el archivo.
sticky bit: se puede asociar a directorios en los que tienen acceso varios
usuarios con permisos de escritura, y básicamente permite evitar que un
usuario pueda borrar archivos de otro, dentro del mismo directorio.
iii. Cómo se Representan los Permisos
Representación Estándar: Los permisos asociados a un archivo o directorio se
suelen representar en línea. El primer carácter se reserva para los denominados
permisos especiales (básicamente hace referencia al tipo de archivo), seguido
de tres caracteres para los privilegios del propietario del archivo, otros tres para
los del grupo, y los tres últimos para los del resto de usuarios.
Representación de Permisos en GNU/Linux: El primer campo indica el tipo
de archivo. Generalmente pueden darse los siguientes casos:
- Es un archivo regular
d Es un directorio
l Es un enlace simbólico
b Es un archivo especial de bloques

Página 44 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

El resto de los 9 campos que vienen a continuación representan los permisos


del propietario del archivo o directorio, los del grupo al que pertenece este
usuario, y los del resto de usuarios:
r Se dan permisos de lectura
w Se dan permisos de escritura
x Se dan permisos de ejecución
- No se da el permiso de lectura, escritura o ejecución
Representación Numérica o en Octal: También está la representación numérica,
que parte básicamente de la representación anterior, pero sustituye cada grupo rwx
por un número. Ese número se obtiene al sustituir cada tipo de permiso (r, w y x) por
un 1 o 0, dependiendo de si se da o no el permiso).
Representación Numérica de Permisos en GNU/Linux: Al final, del número en
binario obtenido, el número decimal que le corresponde es el que se utiliza para
representar las diferentes combinaciones rwx en cada grupo o nivel de permisos
(usuario, grupo y otros). Por ejemplo
r-- |100| 4
-w- |010| 2
--x |001| 1
Teniendo en cuenta esto, por cada nivel de privilegio (usuario, grupo u otros)
podemos sacar un número que es la suma de todos los anteriores, dependiendo de
los privilegios que se tengan. Con esto podemos llegar a tener las siguientes
combinaciones:
rwx |111| 7
rw- |110| 6
r-x |101| 5
r-- |100| 4
-wx |011| 3
-w- |010| 2
--x |001| 1
--- |000| 0
La representación es igual que en el caso anterior, pero para cada uno de los niveles
(usuario, grupo y otros) se sustituye la combinación de los tres tipos de permisos por
un número del 1 al 7, en función de las combinaciones anteriores.
De este modo, tenemos el 777 como la combinación que representa el máximo nivel
de permisos que se puede dar a un archivo
Visualizar los Permisos de archivo: Hay varias formas hacerlo. Una es desde el
mismo navegador de archivos y observar de forma gráfica, pero es un poco lento y a
la práctica resulta mucho más cómodo y rápido hacerlo desde la línea de comandos
con el comando ls más sus opciones.

Página 45 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

7.14 Visualización de los permisos de los archivos

Página 46 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

Capítulo 8
Redes de datos, compartiendo es mejor
En la actualidad todas las personas están conectadas a una red de datos de alguna manera
u otra. Es poco probable encontrarse con personas que no tengan acceso a la telefonía
celular o una computadora con acceso a internet.
Pues bien, el mundo GNU/Linux no escapa a esta realidad y es por eso que el énfasis en el
desarrollo de utilitarios o funcionalidades que se han realizado, en pro de mejorar este
mundo de conectividad, creció de manera vertiginosa hasta situar a este sistema operativo
entre los más confiables al momento de administrar una red.
La mayoría de las empresas poseen una cantidad considerable de equipamiento
informático, debido a que en un alto porcentaje tienen una computadora para cada
empleado que la utiliza para realizar su trabajo diario.
Al principio, algunas de estas computadoras tal vez hayan trabajado aisladas unas de otras,
pero en la actualidad, todos los dispositivos de una organización, o al menos, la gran
mayoría, necesitan estar conectados a la red de la empresa para distribuir la información
que generan. La idea es compartir recursos y la meta es que todos los programas, equipos
y en especial los datos estén disponibles para cualquier persona en la red, sin importar la
ubicación física del recurso o del usuario.
Un ejemplo obvio es el de las impresoras; es mucho más eficiente tener una impresora de
red a la que todos los empleados de una oficina puedan acceder, que una por empleado.
Una impresora en red de alto volumen es más económica, veloz y fácil de mantener que
una extensa colección de impresoras individuales.
Aun así, compartir información es más importante que compartir recursos físicos cabe
destacar que en esta guía no voy a enfocarme en el conocimiento de protocolos de red ni
en la arquitectura, ya que la idea central es conocer las funcionalidades principales y que se
puede hacer para mejorar nuestro trabajo diario, como también se da por sentado que el
lector posee un conocimiento básico en redes.
a. Breve introducción a redes en GNU/Linux
Si bien GNU/Linux no es muy diferente al resto de los sistemas operativos en cuanto
a la administración de redes, si tiene muchas particularidades y herramientas que lo
hace el sistema operativo predilecto al momento de montar servidores o analizar una
red de datos. Es por este motivo que cada vez son más las redes que poseen
servicios (base de datos, acceso a internet, etc) basados en GNU/Linux sin importar
el sistema operativo que tengan instaladas las terminales, dado que la
compatibilidad no es un inconveniente.
b. Acceso remoto, ¿podemos visitar otros equipos?
Ya metiéndonos de lleno en el mundo de las redes en GNU/Linux lo primero a
resaltar es la posibilidad de administrar equipos a la distancia, realizando tareas en
otras computadoras aunque estén en otra oficina o a km de distancia. Esta
funcionalidad es tan importante tanto como compartir información dado que la
administración remota resuelve el problema de estar delante de una computadora.
Para poder continuar con algunas herramientas de acceso remoto, primero debemos
conocer algunas particularidades básicas y comando sencillos para detectar una
buena conectividad entre el equipo que usamos y el equipo al que vamos a acceder.
Lo primero a saber es si tenemos alguien esperándonos del otro lado, para eso
utilizamos el comando ping que nos informa mediante mensajes simples cuanto
tiempo de respuestas tenemos con el otro equipo y si es alcanzable. El ejemplo más
claro de cómo invocar este comando es

Página 47 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

8.1 Respuesta del host remoto al comando ping

Este comando nos dice si tenemos llegada a la otra computadora, sin importar el
medio o el camino por el cual viaja la información. Si bien no es necesario ejecutar
este comando para poder utilizar las herramientas de acceso remoto, si es una
buena práctica antes de ponernos a trabajar el realizar un ping para ahorrarnos
muchos dolores de cabezas posteriores
Otra herramienta potente que puede combinarse con el uso de la anterior es el
traceroute, el objetivo principal de esta, es conocer el camino que recorre un
paquete a través de nuestra red. Este comando nos permitirá saber por dónde pasa
el paquete (máquinas, switches, routers) y comprobar que nuestra red funciona
correctamente. Si detecta cualquier problema, nos va a permitir tener una idea
aproximada acerca de donde se encuentra el fallo.
La sintaxis es simple

8.2 Camino que debemos realizar para llegar al host remoto

Por ahora solo vamos a nombrar estas dos herramientas de diagnóstico porque son
las más básicas para identificar si tenemos conectividad en una red, pero hay una
gran variedad de comandos para realizar tareas de todo tipo, las cuales vamos a ir
citando a medida que las necesitemos.
Cuando hacemos referencia al acceso remoto, a pesar de que contamos con un
numerosos programas, el predilecto para administrar servidores es el comando ssh.
SSH o Secure SHell, es un protocolo que facilita las comunicaciones seguras entre
dos sistemas usando una arquitectura cliente/servidor y que permite a los usuarios
conectarse a un host remotamente. A diferencia de otros protocolos de

Página 48 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

comunicación remota tales como FTP o Telnet, SSH encripta la sesión de conexión,
haciendo imposible que alguien pueda obtener contraseñas no encriptadas.
Además de la conexión a otros dispositivos, SSH nos permite copiar datos de forma
segura (tanto archivos sueltos como simular sesiones FTP cifradas), gestionar
claves RSA para no escribir claves al conectar a los dispositivos y pasar los datos de
cualquier otra aplicación por un canal seguro tunelizado mediante SSH.
Si bien se puede hablar mucho de los tipos de cifrado que utiliza SSH, no es la idea
de este manual, sino aprender a utilizarlo para sacarle beneficio a todas las
bondades que nos ofrece este protocolo.
La utilización de esta herramienta es bastante simple, todo se centra en la
autenticación que hacemos con el equipo remoto, pero una vez que accedemos ya
podemos utilizar cualquier comando que necesitemos para realizar nuestras tareas
habituales. El comando de conexión es

8.3 Acceso al host remoto

Con esta simple pero potente línea de comando ya tomamos control del equipo
remoto.

8.4 Ejemplo de cómo podemos ver el directorio remoto

En conjunto con ssh tenemos otro protocolo que se basa en este para poder hacer
transferencias de archivos, el protocolo scp o secure copy trabaja sobre ssh para

Página 49 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

asegurar que toda la tarea sea bajo un ambiente seguro y controlado. El comando
también es relativamente simple, solo basta poner que queremos copiar y a donde

8.5 Transferencia de un archivo entre hosts

Con los comandos antes vistos ya podemos acceder a cualquier equipo para
administrarlo, realizar transferencias de datos y muchas otras funciones más. Si bien
tenemos una infinidad de programas para realizar estas tareas en modo gráfico que
se han ignorado en este punto, los mismos serán tratados más adelante.
c. La importancia de la transmisión de datos
En la actualidad pensar en que los equipos con los que trabajamos en una empresa
u organismo estatal no están relacionados entre sí es prácticamente inconcebible.
Estamos tan acostumbrados a ver esto de manera natural que no nos sentamos a
ver lo poderoso que es poder compartir lo que estamos haciendo con otros usuarios.
Si nos sentamos a observar cuantas ventajas obtenemos al poder trabajar en una
red de datos encontraríamos que el beneficio es enorme, desde el punto práctico
hasta económico. Por esta razón es que no se debe menospreciar lo que es la
transferencia de datos, ya que en el presente es prácticamente la base de todo,
transacciones bancarias, entretenimiento, economía, etc.
d. Herramientas para una red saludable
Administrar una red puede ser una de las tareas más complejas que un
administrador debe afrontar en su vida profesional. Además de ser complicada, la
gestión de una red es una de las tareas más importantes para medianas y grandes
empresas por su vital importancia en la cuenta de resultados. Hoy en día, grandes
compañías no pueden permitirse el lujo de tener una indisponibilidad en su red. Es
por eso que detallo siete herramientas para ayudar a detectar los conflictos que
afectan a nuestras redes de datos

● Wireshark (and tcpdump)


Una herramienta de control de tráfico, con capacidad para
comprender y analizar la mayoría de los protocolos de
comunicación, con un bajo consumo y capacidad para generar
registros. Estos mismos registros se pueden extraer de datos
en tiempo real o histórico, proporcionando una información muy
valiosa sobre el funcionamiento de la red. Además, es
compatible con modos gráficos y de consola. Es recomendable usar
Wireshark si está utilizando tcpdump para generar registros
● NMap
Si lo que nos preocupa son las vulnerabilidades en nuestra red o
cómo saber qué puertos están abiertos o servidores están activos,
NMap es la herramienta que nos da las respuestas a esto. Integrado

Página 50 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

con Zenmap proporciona información gráfica sobre nuestra red, para que
pueda rastrear cada nodo, cada elemento, en cualquier parte. También,
integra scripts de terceros, lo que lo hace aún más eficaz en el auto
descubrimiento.
● Putty
Una pequeña pero útil herramienta de ahorro de tiempo,
que todo administrador debería tener instalada en su
computadora, y que ocupa muy poco espacio en
nuestros discos rígidos. Con esta herramienta se puede
acceder a todos los elementos de nuestra red, ya sea a
través de telnet, ssh, ftp u otros. Nos permite administrar
y guardar conexiones, y ganar tiempo evitando que estemos introduciendo
contraseñas, IPs y números de serie una y otra vez.
● NTop
Otra herramienta para monitorear el tráfico de red.
NTop entiende casi cualquier protocolo, y los
muestra gráficamente, es muy práctico para
aquellos que no son expertos en esta área de
trabajo. Permite un análisis exhaustivo del tráfico
de su red. La versión Open soporta casi cualquier
protocolo gracias a los numerosos complementos disponibles.
● FileZilla
Si necesitamos subir paquetes de datos pesados o
automatizar el intercambio de archivos esta herramienta
gratuita y libre nos permite hacer eso. Facilita el acceso a
cualquier máquina a través de FTP, FTPS o SFTP.
FileZilla nos permite cargar, descargar, eliminar o modificar
archivos en un servidor remoto, y también posee una función
de comparación de directorios, lo que le permite ver las diferencias o
cambios realizados en esos archivos. Un importante ahorro de tiempo para
cualquier administrador de sistemas.
● Mosh (Mobile Shell)
Es un programa alternativo a SSH que nos permite administrar
nuestra red desde un dispositivo celular. Funciona a través de
SSP, es decir, incluso si pierde la cobertura o cambia las redes
WiFi, seguirá conectado.

 eHorus
Es una herramienta que si bien no es libre posee una
licencia gratuita hasta 10 equipos y sirve para administrar
una red y, sobre todo, ayudar a los usuarios, que sería
imposible sin conexión remota. Quizás las más conocidas de
las herramientas que facilitan esta conexión son VNC y
TeamViewer. Con eHorus podrá acceder de forma remota a
cualquier computadora simplemente usando un navegador web. Solo es
necesario disponer de conexión a Internet, sin tener que preocuparse por los
firewalls.

Página 51 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

Capítulo 9
Copias de seguridad, protegiendo lo indispensable
Aun en la actualidad hay personas que piensan que la función de las copias de seguridad
es solamente restaurar nuestros archivos cuando se produce una crisis informática y
perdemos todo. En consecuencia, si piensan que eso nunca les va a pasar, tienden a
quitarle importancia a la necesidad de hacer copias de seguridad. Sin embargo, éste no es
el único sentido que tiene hacer copias de respaldo de nuestros archivos. Las copias de
seguridad no sólo sirven para casos de emergencia.
a. ¿Porque perder el tiempo en guardar información?
Lo último deseable al hacer copias de seguridad es que en algún momento nos
veamos en la necesidad de restaurarlas. El objetivo siempre es evitar que ocurran
problemas informáticos que nos hagan tener que restaurar los archivos que
teníamos. Las copias de seguridad cumplen con una misión aún más importante:
disponer de un respaldo de todos los archivos esenciales que podamos necesitar, ya
sea porque vamos a formatear una computadora, cambiar un sistema operativo, o
porque hemos necesitamos acceder a una versión anterior del archivo en cuestión,
tener copias de seguridad facilita mucho la tarea de traspasar la información de un
lado a otro sin perder horas y horas analizando qué hay que guardar y qué no.
Es por esto cuando hago la pregunta ¿porque debo perder tiempo guardando
datos?, la respuesta que tengo ante mí es más que obvia, porque nunca sabemos
cuándo vamos a necesitar recuperar nuestra información.
Como cité anteriormente, las copias de seguridad no solo son para casos de
emergencia, sino también para poder controlar las diferencias con una versión
anterior de un archivo o máquina virtual o base de datos, por decir algunas, y ver si
fue alterado por ejemplo o controlar cuando se produjo un cambio, etc.
Es cierto que la tarea de realizar estas copias de seguridad es tediosa, rutinaria y en
algunos casos nos puede llevar horas, pero si nos organizamos como buenos
administradores que pretendemos ser, con un buen análisis de qué tipo de copias de
seguridad nos conviene sumado a distintas herramientas que nos provee el mundo
GNU/Linux, esto se puede transformar en una tarea simple y que solo requiera de
nuestra intervención pocas veces y solo para controlar que todo esté andando bien.
b. Tipos de copias de seguridad
Existen diferentes tipos de copias de seguridad. Cada uno tiene sus pros y sus
contras.
i. Copia de seguridad completa
Se realiza una copia de todos los datos que se quieren guardar. Esta copia
de seguridad tiene una ventana de copia más grande y también necesita
mayor espacio de almacenamiento pues copia todos los datos.
Siempre se empieza con una copia completa de los datos y luego se puede
pasar a realizar otro tipo de copias o más copias completas.
Se recomienda ejecutar copias completas de forma periódica por ejemplo
semanalmente y entre copia y copia completa realizar copias incrementales o
diferenciales.
Cuanto mayor es el periodo entre copia y copia completa más datos se
habrán modificado y más datos se están copiando en las copias
incrementales o diferenciales intermedias. Por eso hay que llegar a un
equilibrio para evitar que las copias intermedias acaben siendo tan grandes
como una copia completa.

Página 52 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

● Ventajas:
○ Fácil recuperación. Tienes todos los datos copiados.
● Desventajas
○ Tiene que copiar todos los datos estén o no modificados
○ Espacio de almacenamiento mayor.
ii. Copia de seguridad incremental
En la copia incremental sólo se copian los datos que se han modificado
desde la última copia realizada, ya sea una copia completa u otra copia
incremental. Para la restauración de la copia es necesario restaurar la copia
completa y todas las copias incrementales posteriores.
● Ventajas
○ Menor tiempo de realización de la tarea
○ Menos espacio de almacenamiento que en la copia completa
o la diferencial.
● Desventajas
○ Restauración más lenta y complicada pues depende de la
copia completa y las copias incrementales anteriores.
○ Si falla cualquiera de las copias dependiente no se podrá
restaurar la copia.
iii. Copia de seguridad diferencial
Copia los datos modificados desde la última copia completa realizada. En su
restauración solo tiene dependencia con la copia completa. Es independiente
de las copias diferenciales anteriores.
● Ventajas
○ La tarea se realiza con un tiempo menor que la copia completa
pero mayor que la incremental.
○ Menos espacio de almacenamiento que en la copia completa.
○ Más fiable que la copia incremental pues solo depende de la
anterior copia completa.
● Desventajas
○ Restauración más lenta que la copia completa pues hay que
restaurar la copia completa y la diferencial.
○ Si falla la copia completa o la diferencial no se podrá restaurar
la copia.
○ Hay datos duplicados entre las copias diferenciales pues cada
copia diferencial almacena todas las modificaciones realizadas
desde la última copia completa.
○ Si el periodo entre copias completas en grande, la copia
diferencial puede llegar a necesitar una ventana de copia y un
espacio de almacenamiento casi tan grande como una copia
completa.
Si bien existen más tipos de copias de seguridad, estos casos presentados son los
utilizados comúnmente, en caso de estar interesado en esta área se recomienda
consultar a la vasta documentación que abunda por internet.
Entonces, para finalizar, luego de hacer un recorrido rápido entre los tipos de copias
de seguridad es hora de ver cuál es la que mejor se ajusta y cómo la vamos a
realizar.

Página 53 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

c. ¿Qué política de copias de seguridad debo tomar?


La elección del tipo de copia de seguridad por la cual debemos optar surge del buen
análisis que tenemos que realizar al momento de planificar nuestro rol como
administradores de sistemas de una empresa u organismo. Esta tarea de evaluar
cómo realizaremos las copias de seguridad es el cimiento de nuestro trabajo porque
de nada sirve tener los mejores equipos, las redes más rápidas o los sistemas de
seguridad más avanzados si cuando se daña un disco rígido nos es imposible
recuperar algo de lo que adentro tenía.
La cuestión más importante que debemos tener en cuenta es que es lo que
necesitamos resguardar, que es lo que detendría al organismo al cual
administramos, básicamente, que es lo que si se pierde podría hacer que nuestros
puestos de trabajo se pierdan también.
Después de decidir a qué archivos hacerle copia de seguridad, hay que decidir con
qué frecuencia se realizarán las copias de seguridad. No es necesario hacerle
copias de seguridad a todo todos los días, aunque es posible. Si los archivos no
cambian, como los archivos del sistema y de las aplicaciones, ¿por qué incursionar
en el costo de hacerles copias de seguridad todos los días? Tal vez sea mejor hacer
una copia de seguridad semanal o hasta mensual. Aunque habrá que hacerle copias
de seguridad a esos archivos cada vez que el sistema experimente cambios por
actualizaciones y reconfiguraciones. Sin embargo lo más probable es que se decida
efectuar copias de seguridad periódicas de estos archivos para asegurarse de que
las copias de seguridad sean válidas y que pueden ser usados en caso de tener que
restaurar el sistema.
Para los archivos que cambian seguido, es importante poder responder la siguiente
pregunta. ¿Cuál es el costo de reposición de los datos a la organización o empresa,
comparado con el costo de efectuar las copias de seguridad? En las mayorías de las
situaciones, es adecuado hacer copias de seguridad diarias sólo a los archivos que
cambian con mucha frecuencia. Pero, si hay información crítica de operación que
cambia a cada hora, es probable que haya que hacer copias de seguridad de estos
archivos con mucha mayor frecuencia.
d. Tareas programadas, un asistente permanente
La causa principal de que las copias de seguridad no sean tratadas con la seriedad
que corresponde es que es tedioso tener una rutina constante donde debemos
sentarnos frente a nuestro equipo y correr un comando para hacer la copia de
seguridad. Es por eso que GNU/Linux posee muchos programas que permiten
ejecutar rutinariamente en los lapsos de tiempo que nosotros queramos ciertas
tareas. Estas pueden ser de todo tipo, correr un script, rotar logs, actualizar un
sistema y por supuesto, realizar copias de seguridad.
Muchos son los comandos disponibles, pero dado la sencillez de este manual solo
vamos a centrarnos en el demonio cron
Cron
Es el nombre del programa que permite a usuarios GNU/Linux ejecutar
automáticamente comandos o scripts (grupos de comandos) a una hora o fecha
específica. Es usado normalmente para comandos de tareas administrativas, como
respaldos, pero puede ser usado para ejecutar cualquier cosa.
Como en la mayoría de los servicios del sistema, la funcionalidad de cron es
proveída por un sistema daemon cron o crond dependiendo de la distribución
utilizada. El cron lee el archivo de configuración para determinar cuáles comandos

Página 54 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

debe ejecutar y cuando. Cada un minuto lee todos los archivos crontab para ver qué
comando debe ejecutar. Si encuentra una entrada que coincida con la hora actual,
ejecuta el comando correspondiente con el UID del dueño del archivo crontab.
Crontab
Este archivo le dice al daemon cron qué programas debe ejecutar y cuando. Cada
usuario tiene un archivo crontab y también existe un archivo crontab en el directorio
/etc El programa utilizado para administrar los archivos crontab también se llama
crontab.

9.1 Sentencia para invocar a crontab

Cómo configurar los campos de crontab


La mayor parte de las entradas en el archivo crontab son eventos. Un evento tiene
dos partes, el tiempo en que el evento se ejecuta, y qué hacer cuando llegue el
momento de ejecutarlo. Cinco campos en la entrada del evento representan tiempos.
En este orden, ellas son minuto, hora, día del mes, mes y día de la semana. Los
campos son separados por espacios o tabs. Las horas se representan en 24 horas.
En el campo del día de la semana es posible utilizar cero o siete para domingo, y los
otros días en orden numérico.
Un evento se ejecuta cuando el tiempo del campo coincide con el tiempo actual. El
cron revisa una vez por minuto para encontrar entradas que deben ser iniciadas.
Para que un evento sea iniciado, cada campo de tiempo debe coincidir con el tiempo
actual, excepto para el día de la semana y para el día del mes, entre estos dos
campos, solo uno necesita coincidir
• minuto: número de 0 a 59.
• hora: número de 0 a 23.
• día: número del día del mes, de 1 a 31 (30, 28, 29, según sea el mes).
• mes: número de 1 a 12.
• semana: número de 0 a 7, donde 1 es el lunes y el domingo es tanto el 0
como el 7. También es posible utilizar las tres primeras letras del nombre del
día en inglés, como Sun, Mon, etc.)
• usuario: el nombre de usuario bajo el que se ejecutará el programa (en el
archivo /etc/crontab y en los fragmentos ubicados en /etc/cron.d/ , pero no en
los archivos de cada usuario).
• comando: el programa a ejecutar (cuando se cumpla la condición definida
por los primeros cinco campos).
Los siguiente es un ejemplo del archivo crontab.
MAILTO = root
#min hora día mes dds programa
0 * * * * echo "Ejecuta cada hora."

Página 55 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

0 2.3 * * * echo "Ejecuta a la 2 AM y 3 AM."


13 2 1 * * echo "Ejecuta a las 2:13AM el primer día de cada mes."
9 17 * * 1-5 echo "Ejecuta a las 5:09PM todos los días de semana."
0 0 1 1 * echo "Feliz año Nuevo!"
0 6 */2 * * echo "Ejecuta a las 6 AM los días de fecha par."

9.2 Tarea en crontab

e. Utilitarios disponibles
Existen numerosos utilitarios para hacer copia de seguridad de nuestra información,
dependiendo del tipo de copia de seguridad que se precise, es posible utilizar
diversas utilidades y muchas veces se pueden utilizar en conjunto con otras. La
mayoría de estas herramientas están diseñadas para ser puestas en scripts para
automatizar lo mejor que se pueda el proceso utilizando una herramienta como cron.
Pero antes de ir a buscar afuera de GNU/Linux existen herramientas integradas que
hacen uso de estas aplicaciones.
tar (Tape Archive and Restore)
El comando tar se usa para combinar múltiples archivos en uno sólo, mientras
retiene la estructura original de los directorios. Aunque originalmente se concibió
para crear archivos en cintas, los archivos tar pueden ser almacenados en cualquier
otro medio. También tiene la capacidad de comprimir un archivo al mismo tiempo
que genera el archivo de destino. Además por cada archivo procesado, tar conserva
la información del inodo, la ruta del directorio, el usuario, el grupo, la información de
los permisos, y las fechas de creación y modificación del archivo. Para crear un
archivo tar, se deben utilizar rutas relativas. La sintaxis es

Página 56 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

9.3 Ejemplo de uso de tar

Dentro de las opciones de tar hay dos grandes grupos, las letras de función y los
modificadores.
Las letras de función tienen la particularidad de no poder combinarse o utilizarse a la
vez, es decir, sólo se puede usar una. En cambio los modificadores si admiten
combinación.
Algunas de las letras de función son:
● A: Agrega un segundo archivo tar al final del archivo tar actual.
● c: Crea un nuevo archivo tar.
● d: Compara el contenido de un archivo tar con otro archivo y reporta
diferencias.
● r: Agrega archivos al final de un archivo tar ya existente.
● t: Lista los archivos contenidos en un tar.
● u: Sólo agrega archivos nuevos o modificados a un archivo tar.
● x: Extrae archivos desde un archivo tar.
Algunos de los modificadores son:
● b: Específica tamaño de bloque.
● f: Nombre del archivo tar o dispositivo a utilizar.
● m: No restaura la fecha de modificación de los archivos.
● p: Conserva los permisos de los archivos originales al extraer.
● v: Muestra un listado de los archivos agregados.
● W: Verifica los archivos luego de agregarlos al tar.
● z: Utiliza gzip para comprimir los archivos.
cpio (Copy to I/O)
Puede utilizarse para hacer copia de seguridad del sistema. Soporta estrategias
flexibles y sofisticadas de copia de seguridad. Los archivos se escriben en formato
cpio y al igual que tar, también conserva la información del archivo referente a su
usuario, grupo, ruta del directorio, información del inodo, permisos, y las fechas de
creación y modificación.
La sintaxis es:
#> cpio [opciones]
Al igual que tar, tiene letras de función operacionales que no pueden combinarse, y
luego otras opciones generales que sí admiten combinación. Las letras
operacionales son:
● i: Extrae Archivos.
● o: Crea el archivo.
● p: Crea el archivo en el mismo sistema de archivos (copia una estructura de
directorio).

Página 57 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

Algunas de las opciones generales son:


● v: Modo de mensajes activo.
● B: Utiliza bloques grandes.
● Cn: Utiliza bloques de tamaño de n bytes.
● c: Utiliza archivos headers tipo ASCII (Siempre utilice esta opción).
● t: Lista el contenido del archivo cpio.
● d: Crea directorios si es necesario.
● u: Sobrescribir archivos existentes.
● m: Preserva la fecha de modificación del archivo.
afio
El comando afio es otro archivador, usa archivos de formato cpio, pero crea los
archivos de cabeceras (headers) del tipo ASCII para mejorar la compatibilidad
(similar al cpio -c).
Algunas características del afio incluyen:
● Manejo interactivo para los archivos.
● Compatibilidad con cpio.
● Más opciones disponibles que en cpio.
● Archivos comprimidos de afio son más seguros que archivos comprimidos
con tar o cpio.
La sintaxis es:
afio [operador] [opciones] archivo
Las opciones operacionales son:
● i: Extraer Archivos.
● o: Crea el archivo.
● t: Lista el contenido de la tabla del archivo.
● r: Verifica el archivo contra el sistema de archivos.
Algunas de las opciones generales son:
● v: Modo de Mensajes activo.
● Z: Utiliza gzip para comprimir/descomprimir.
● n: No sobrescribe los archivos más recientes.
● k: Se saltea datos corruptos al principio del archivo.
dd (Direct access Device)
El comando dd se utiliza para tener acceso a un dispositivo directamente. Se utiliza
a menudo para copiar grandes volúmenes de datos, por ejemplo en copia de
seguridad. Escribe el contenido en formato raw de sus archivos al dispositivo.
Algunos de los parámetros útiles son:
● of=file: Escribe en el archivo o dispositivo indicado en lugar de escribir en la
stdout.
● if=file: Lee desde el archivo o dispositivo indicado en lugar de leer desde la
stdin.
● bs = size: Especifica el tamaño del bloque.
● count=n: Copia sólo n número de registros.
● conv-ascii: Convierte Extended Binary-Coded Decimal Interchange Code
(EBCDIC) a ASCII.
● Conv=ebcdic: Convierte ASCII a EBCDIC.
El siguiente ejemplo muestra una copia directa desde un dispositivo USB ubicado en
/dev/sdc a otro dispositivo USB ubicado en /dev/sdd, con un tamaño de bloque de
1024 bytes.

Página 58 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

#> dd if=/dev/sdc of=/dev/sdd bs=1024


rsync
El comando rsync permite sincronizar archivos y directorios entre dos dispositivos
conectados en red, o incluso entre dos ubicaciones de un mismo dispositivo (entre
dos directorios por ejemplo). Soporta compresión y cifrado de datos. Su premisa es
minimizar el volumen de datos transferidos; para lograr esto, utiliza un algoritmo
eficiente que ofrece transmisión de datos incrementales.
rsync escucha por defecto en el puerto TCP 873 y actúa como un daemon de
servidor. Utiliza el protocolo nativo rsync, con soporte para RSH y SSH.
Originalmente fue escrito como un reemplazo de rcp y scp. Algunas características
de rsync son:
● Compresión y descompresión de los datos por bloque (utiliza zlib para enviar
y recibir).
● Soporte para protocolos de cifrado (para SSH por ejemplo).
● Soporta transmisión a través de un túnel cifrado.
● Permite copiar archivos y directorios en forma recursiva, enlaces simbólicos y
dispositivos.
● Conserva los permisos, usuarios y grupos.
● No requiere privilegios de root para su uso.
La sintaxis básica es:
#> rsync [OPCIONES] ORIGEN [ORIGEN] DESTINO
Los parámetros del comando rsync pueden utilizarse de forma abreviada o
detallada. El siguiente ejemplo utiliza los parámetros en forma detallada para facilitar
su compresión:
#> rsync --verbose --compress --rsh=/usr/bin/ssh --recursive \ --times --perms --links
--delete --exclude "*bak" --exclude "*~" \ /www/* host:/www
El modo verbose muestra mensajes de estado en la salida estándar (stdout), utiliza
compresión y se conecta a través de ssh. También utiliza recursión en los
subdirectorios y preserva fechas y permisos del archivo origen. Incluye enlaces
simbólicos, y elimina en el host remoto los archivos que fueron borrados en el host
origen. Excluye archivos copia de seguridad y archivos temporales (*bak, *~). El
origen es el contenido del directorio /www y el destino el directorio /www en el host
remoto. Y esto se realiza en una sola línea de comando, impresionante ¿no?.
Uno de los dos hosts debe configurarse como servidor. Esto se puede hacer
arrancando rsync con el parámetro --daemon, o bien configurando el archivo
/etc/rsyncd.conf

Página 59 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

Capítulo 10
Brindando servicios
Cuando estamos a cargo de administrar los sistemas de una empresa o de un organismo
público no solo nos basta con tener una red ordenada, las computadoras funcionando a la
perfección o unas copias de seguridad de cada equipo de nuestro entorno. La idea también
es saber administrar los recursos informáticos que tenemos, sacando el mejor provecho a
los recursos económicos con los que contamos, como así también utilizando métodos para
incrementar la productividad de una empresa y no perdiendo de vista la seguridad e
integridad de la información.
a. ¿Qué es un servidor y cuantos tipos hay?
Un servidor es un tipo de equipo informático encargado de suministrar servicios a
una serie de clientes o hosts, que pueden ser tanto personas como otros dispositivos
conectados a él. La información que puede transmitir es múltiple y variada, desde
archivos de texto, imagen o vídeo y hasta programas informáticos, bases de datos,
etc.
Un servidor se puede encontrar en una computadora de escritorio, absolutamente no
recomendado, o en un equipo de alta tecnología con medidas de seguridad de alto
impacto, este último es el tipo de servidor al que apunto en este manual.
Haciendo referencia al párrafo anterior es que hablamos del servidor dedicado, es
aquel que se encarga exclusivamente de atender solicitudes de los equipos clientes.
Existen distintos servidores dependiendo de las funciones que estos vayan a
desempeñar: servidor de archivo, que almacena y distribuye información, servidor de
correo, aquel que sirve para gestionar las comunicaciones mediante el correo
electrónico de la empresa así como para su almacenamiento, o servidor de fax, cuya
función es la gestión de los envíos y recepciones de este tipo de comunicación.
El servidor actúa como el gran cerebro del sistema informático de la empresa, pues
constituye el elemento capaz de albergar la información necesaria para el
funcionamiento de cada departamento. Tiene una gran utilidad en el desempeño de
la misma, ya que es capaz de llevar a cabo funciones tanto de carácter físico
(funcionamiento de las máquinas y los aparatos necesarios para la actividad
empresarial) como a nivel de información, dado que registra, alberga y envía la
información que los distintos clientes le van solicitando.

Tipo de servidor Descripción

Servidor de Correo Es el servidor que almacena, envía, recibe y realiza


todas las operaciones relacionadas con el e-mail de sus
clientes.

Servidor Proxy Tipo de servidor que actúa de intermediario entre una


red y otra, recibiendo las peticiones de un equipo y
redirigiéndolas a otro de la otra red. Posee varias
funcionalidades, entre ellas la de bloquear accesos o
restringir a una franja horaria, entre otras cosas.

Servidor Web Un servidor web es el encargado de alojar los archivos


utilizados para hacer funcionar un sitio web, ya sea para
ser accedido en intranet o para utilizarlo en una intranet.

Página 60 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

El mismo puede poseer relación con otros servidores


para aumentar la velocidad de conexión, seguridad o
capacidad de almacenamiento para las acciones que
realizan los usuarios

Servidor de Base de Da servicios de almacenamiento y gestión de bases de


Datos datos a sus clientes. Una base de datos es un sistema
que nos permite almacenar grandes cantidades de
información. Por ejemplo, todos los datos de los clientes
de un banco y sus movimientos en las cuentas.

Servidores Clúster Los servidores clúster son la unión de múltiples


servidores con la funcionalidad de crear uno más
potente y más grande, que además sea visto como uno
solo. Se utiliza para muchas tareas en las que se
requiere una importante capacidad de procesamiento de
información.

Servidores Dedicados Si bien los servidores dedicados no son un tipo de


servidor propiamente dicho, sino que es más una
manera de trabajo, solo presta un solo servicio sin
importar cuál sea. Puede ser una base de datos, un
servidor de archivos o un servidor de antivirus por
nombrar algunos.

Esta pequeña tabla refleja un poco cómo se diferencian entre sí los tipos de
servidores, si bien todos cumplen la misma tarea que es proveer información, el tipo
de información que proveen les da el tipo de servidor que es. También hay que
aclarar que este detalle no refleja en sí la totalidad de tipo de servidores que hay,
solo me enfoco en los más comunes para que sea más sencilla la tarea de
aprendizaje.
b. ¿Es conveniente invertir en servidores?
Al momento de plantear una red informática siempre debemos analizar que vamos a
realizar con ella, qué servicios vamos a brindar, qué permisos vamos a otorgar y
sobre todo para que la estamos haciendo. La pregunta de si es conveniente o no
tiene una respuesta simple, si es conveniente. Por más pequeña que sea nuestra
red, un servidor es casi seguro debemos tener, a veces pasa desapercibido pero es
común que una computadora de un usuario tenga todos los archivos donde los
restantes acceden para trabajar, o a veces tenemos un equipo que da internet a
todos, pues estos son claros ejemplos de servidores que no son notados como si,
por tal motivo están expuestos a que los usuarios puedan causar algún problema o
daño irreparable. Es por este motivo que mantengo la idea de que es muy necesario
tener un servidor dedicado como tal para poder realizar esta tarea como debe ser,
con las medidas de seguridad y de recuperación que amerite el caso.
Si observan la pregunta que da título a este punto del manual verán que no dice
gastar en servidores sino que dice invertir, porque realmente es eso, una inversión.
Tener servidores desde el punto de vista económico es muy favorable ya que
economiza en tiempo y equipamiento, desde el punto de vista de seguridad, nos

Página 61 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

permite aplicar controles sobre un solo equipo y no muchos, desde el punto de vista
profesional, nos brinda posibilidad de escalar en proyectos para nuestra empresa.
En los temas siguientes vamos a ver algunos de los servidores más comunes y
algunas herramientas para poder crearlos

c. Servidores de Archivos, la fortaleza de nuestros datos


Cuando hablamos de servidores de archivos en GNU/Linux estamos hablando de
Samba, a pesar de que no es la única solución para administrar archivos es la más
conocida, documentada y usada. Por tal motivo nos centraremos en esta
herramienta.
Samba configura directorios GNU/Linux (incluyendo sus subdirectorios) como
recursos para compartir a través de la red. Para los usuarios de MS Windows, estos
recursos aparecen como carpetas normales de red. Los usuarios de GNU/Linux
pueden montar en sus sistemas de archivos estas unidades de red como si fueran
dispositivos locales, o utilizar la orden smbclient para conectarse a ellas muy al estilo
del cliente de la línea de órdenes FTP. Cada directorio puede tener diferentes
permisos de acceso sobrepuestos a las protecciones del sistema de archivos que se
esté usando en GNU/Linux. Por ejemplo, las carpetas /home pueden tener permisos
de lectura y escritura para cada usuario, permitiendo que cada uno acceda a sus
propios archivos
Sabiendo esto, lo primero que debemos hacer es instalar el servidor samba en un
equipo físico o máquina virtual que destinamos para esta tarea de manera exclusiva.

10.1 Instalación de samba

Una vez finalizada la instalación, todo lo que tenemos que hacer es configurarlo. El
archivo de configuración se encuentra en /etc/samba/ en un archivo denominado
smb.conf.
Al manipular archivos del sistema, siempre es mejor hacer una copia de seguridad
del mismo. Para realizar esta tarea previa lo mejor es hacer una copia del archivo.

Página 62 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

10.2 Comandos para hacer copia de seguridad del archivo de configuración

El comando hará que el archivo de copia de seguridad se guarde en su directorio de


inicio o, alternativamente puede crear un archivo de respaldo en el mismo directorio.
También podemos apreciar en la imagen 10.2 como llamar al editor nano para poder
modificar el archivo smb.conf, luego agregamos la información a continuación al final
del archivo, en el creamos un recurso compartido llamado share que es la carpeta
que será accedida desde el resto de la red.

10.3 Visual del archivo smb.conf

A continuación se detallan la utilidad de cada uno de los parámetros de lo que


acabamos de agregar al archivo
comment es una breve descripción de la carpeta que se quiere compartir.
path la ruta del directorio que se va a compartir. En este ejemplo utiliza
/srv/samba/share porque, de acuerdo con el estándar de jerarquía del sistema de
archivos (FHS), /srv es donde se deben servir los datos específicos del sitio.
Técnicamente, las acciones de Samba se pueden colocar en cualquier lugar del
sistema de archivos, siempre y cuando los permisos sean correctos, pero se
recomienda cumplir con los estándares.
Browsable permite a los clientes de Windows examinar el directorio compartido
utilizando el Explorador de Windows.
Guest ok permite a los clientes conectarse al recurso compartido sin proporcionar
una contraseña.
read only determina si el recurso compartido es de sólo lectura o si se conceden
privilegios de escritura. Los privilegios de escritura sólo se permiten cuando el valor
es no, como se ve en este ejemplo. Si el valor es sí, el acceso al recurso compartido

Página 63 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

es sólo lectura.
create mask determina los permisos que tendrán los nuevos archivos cuando se
creen.
Ahora que samba está configurado, el directorio /srv/samba/share necesita ser
creado y los permisos necesitan ser establecidos. Creamos el directorio y
cambiamos los permisos del terminal

10.4 Creación de directorio y reinicio de servicio

El modificador -p le dice a mkdir que cree el árbol de directorio completo si no existe.


Finalmente como podemos apreciar en la imagen 10.4, reiniciamos los servicios de
samba para habilitar la nueva configuración:
Desde un cliente MS Windows, ahora debemos ser capaces de navegar hasta el
servidor de archivos Ubuntu y ver el directorio compartido. Si el cliente no muestra
su recurso automáticamente, intente acceder a su servidor mediante su dirección IP,
por ejemplo. \\192.168.1.1 o nombre de host en una ventana del Explorador de MS
Windows. Para comprobar que todo está funcionando, intentaremos crear un
directorio desde Windows.
Para crear acciones adicionales simplemente cree nuevas secciones en
/etc/samba/smb.conf y reinicie Samba. Sólo asegúrese de que el directorio que
desea compartir realmente existe y tenga los permisos son correctos.
Aunque hay mucho más para realizar dentro de este servidor, con lo que hemos
hecho nos basta para tener un servidor de archivos operativo. Para sumarle
complejidad y más controles es recomendable consultar más documentación
especializada
d. Servidores Web, el mundo en nuestras manos
Un gran número de empresas u organizaciones en la actualidad poseen páginas
web para un número diverso de necesidades. Algunas lo tienen para informar a sus
clientes, otras para que sus empleados puedan trabajar a la distancia. Lo cierto es
que en todos los casos es necesario alojar este sitio web en algún lugar. Es aquí
donde la optimización de recursos se hace presente ya que se puede optar por
pagar un web hosting y desentenderse del asunto o podemos montar nuestro propio
sitio y administrarlo a nuestro gusto con un costo muy inferior al caso anterior. Para
esto recurriremos nuevamente a lo más conocido, difundido y utilizado, y siempre
aclarando que hay más herramientas disponibles en el mundo GNU/Linux.
Como mencione antes lo más sencillo al momento de montar nuestro servidor web
es recurrir al conjunto de herramientas MySQL, PHP y Apache.
El siguiente paso es instalar el software para implementar nuestro servidor web

Página 64 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

10.5 Actualización de sistema, instalación de apache2 y reinicio de servicio

También debemos instalar el servidor de base de datos y php


#> sudo apt-get install mysql-server php5-mysql
#> mysql -u root
#> mysql -u root -p (sin no introdujiste el password durante la instalación)
#> sudo apt-get install php libapache2-mod-php5 php5-mcrypt
#> sudo apt-get install php5-sqlite
Después debemos configurar algunos parámetros del servidor Apache. Los archivos
de configuración se encuentran en la carpeta /etc/apache2. El archivo principal de
configuración es /etc/apache2/apache2.conf. Antes de realizar cualquier cambio en
este archivo, es conveniente realizar una copia de seguridad del mismo, ya que si
apache encuentra algún error en el archivo de configuración, no arrancará.
Se pueden configurar infinidad de parámetros. Pero para poner en marcha el
servidor, editaremos el archivo apache2.conf y añadiremos únicamente el siguiente
parámetro:
#> ServerName www.miweb.com
Para que las computadoras de la red local sepan que www.miweb.com es nuestro
servidor web, debemos crear una entrada www hacia su dirección IP en el servidor
DNS, o bien editar el archivo /etc/hosts agregando la línea: 10.0.0.1
www.miweb.com (si la IP del servidor fuera 10.0.0.1). Si no, no quedará más
remedio que acceder utilizando la dirección IP del servidor.
El servidor web apache2, al igual que todos los servicios en GNU/Linux, dispone de
un script de arranque y parada en la carpeta /etc/init.d.

10.6 Comandos para reiniciar y parar el servicio de apache2

Página 65 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

Con el DNS funcionando, podemos acceder a http://www.miweb.com, visualizando la


siguiente pantalla:
Servidor Web Apache funcionando perfectamente
Si no disponemos de servidor DNS, podemos editar el archivo /etc/hosts y añadir la
dirección IP del servidor e indicar el nombre, tal que así:
10.0.0.1 www.miweb.com
Lo que siempre funcionará es ir con la dirección IP. Ejemplo, si la dirección IP de
nuestro servidor fuera 10.0.0.1, podemos ir con el navegador a la dirección
http://10.0.0.1 y obtendremos el mismo resultado. Podemos personalizar nuestra
página modificando el archivo index.html que hay dentro de la carpeta /var/www.
Con todo esto ya tenemos montado nuestro servidor web, solo quedarían agregar
las diferentes páginas web que nuestra empresa posea.
e. Servidores de Base de Datos, la excelencia en servidores
Hoy en día las empresas hacen todo a través de la informática, venden, compran,
producen, controlan sus empleados, y un incontable número de tareas más. Toda
esta información sin lugar a dudas debe ser almacenada en algún lugar, es aquí
donde entran en juego las bases de datos. Las bases de datos son de manera
abstracta repositorios ordenados en tablas y conectados entre sí de tal manera que
al momento de requerir una información esta pueda ser reconstruida y sea mostrada
de una manera entendible, como por ejemplo el historial de compras de un cliente o
cuanto vendimos el mes pasado.
Los servidores de bases de datos tienden a ser exclusivos o dedicados solo a esta
tarea ya que sumarle más trabajo seria ralentizar su desempeño y obviamente
también sumariamos riesgos innecesarios al mismo.
En este manual vamos a abordar al motor de base de datos MySQL desde su
instalación, configuración e instalación del administrador o interfaz gráfica
PHPMyAdmin
Lo primero que debemos hacer es actualizar el sistema y paso seguido instalar el
motor de base de datos con el siguiente comando

10.7 Actualización de sistema e instalación de motor de base de datos

Luego que esto se realiza debemos ver si el motor está corriendo dentro de nuestro
servidor, para esto accedemos con el comando mysql

Página 66 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

10.8 Entorno de trabajo de MySQL

Con estos dos simples pasos tenemos instalado y corriendo nuestro motor de base
de datos. Aquí podríamos detenernos ya que está listo para trabajar. Pero es
engorroso y complicado manejar el entorno de consola de MySQL, para ello usamos
un entorno más amigable como ser PHPMyAdmin.
Esta interfaz ayuda a resolver más ágilmente las necesidades de la administración
de base de datos, seamos nosotros quien lo hace o si tenemos que preparar un
ambiente para que otro usuario se haga cargo.
Su instalación es muy sencilla como todo hasta ahora.

10.9 Sentencia para instalar PHPMyAdmin

La mayor parte de la tarea ya se encuentra resuelta con la instalación, solo debemos


elegir una contraseña y por último probar desde un navegador web el acceso al
sistema, para ello debemos acceder a la dirección
http://xx.xx.xx.xx/phpmyadmin
Donde xx.xx.xx.xx es la dirección ip del servidor de base de datos.

Página 67 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

10.10 pantalla de acceso a PHPMyAdmin

f. Servidores Proxys, controlando lo incontrolable


Cuando estamos administrando una red de datos, donde la seguridad e integridad
es primordial lo que menos queremos encontrarnos es con situaciones
desagradables como huecos de seguridad dentro de la misma, si bien es imposible
poder controlar todo si podemos minimizar las preocupaciones si hacemos nuestro
trabajo como debe ser.
El acceso a internet libremente por partes de los usuarios de nuestra red significa el
problema más grave que tenemos, ya que los mismos pueden no ser precavidos y a
causa de esto generarnos un fuerte dolor de cabeza cuando por alguna causa nos
deje vulnerable dicha red.
Es por eso que los servidores proxys vienen a nuestro rescate, brindando un control
total en las comunicaciones entre internet u otra red y nuestra red local, utilizando
distintos filtros y permisos para así limitar que pueden ver y que no. Una de las
herramientas más utilizadas es Squid, un potente software proxy que nos brinda
muchas posibilidades de filtrado y bloqueos para que mantengamos nuestra red
saludable.
Lamentablemente la instalación de squid no es sencilla, requiere muchos pasos, y
su configuración también es un poco compleja. Es por eso que solo abordaremos su
instalación y configuración en un nivel muy básico.
Lo primero a realizar es actualizar sistema operativo, para ello no solo usamos el
parámetro update sino que también debemos utilizar el parámetro upgrade, que
dependiendo de cómo tengamos nuestro sistema operativo puede tardar un buen
rato.

Página 68 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

10.11 Comandos ordenados para instalar squid correctamente

Como he dicho anteriormente las opciones de squid son muy numerosas, sólo el
archivo de configuración tiene casi 5000 líneas, por esto tiene tanta versatilidad.
Como voy a configurar un sencillo servidor proxy HTTP la mayoría no me interesa,
así que realizaremos una copia de seguridad y nos quedarnos con las opciones por
defecto. También aprovechamos para quedarnos con lo importante, creamos un
nuevo archivo de configuración que incluye las líneas por defecto, eliminando el
resto de líneas que están comentadas, y que se refieren a la documentación o a
opciones que no están activas.

10.12 Dos sentencias para hacer copia de seguridad del archivo de configuración y crear uno nuevo

Squid tiene un sistema para permitir el acceso con una configuración basada en
ACL’s o Listas de Control de Accesos, y según la documentación de squid, se
utilizan dos elementos:
Elementos ACL: definen alguna propiedad de las peticiones que se realizan al
proxy. Por ejemplo, si el cliente tiene una IP (src), o incluso un dominio podemos
permitir o denegar su acceso desde el archivo de configuración. También podemos
permitir o bloquear los puertos de salida para que solo sea posible utilizar un
protocolo que establezcamos. Aquí se encuentra la documentación de acl.
Listas de acceso: Estas consisten en una acción para permitir (allow) o denegar
(deny) seguida de uno o varios elementos ACL.
Si queremos permitir el acceso desde un IP 11.11.11.11 la sentencia correcta es

10.13 Sentencia ACL para permitir el acceso desde la IP 11.11.11.11

La primera línea crea un acl (access control list) con el nombre red_tusl que
identifica la conexión, src es la fuente, y la IP corresponde a la de la computadora
autorizada a acceder. Luego tenemos la directiva http_access que nos
permite/deniega esa conexión que hemos identificado.

Página 69 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

10.14 Permiso de acceso

Con esto ya tendríamos definido los accesos a squid, y este simplemente cargaría la
configuración a usar en memoria para denegar o permitir cada petición.
Cada petición se comprueba si pertenece a la lista de acceso y si no se produce
ninguna coincidencia, la acción que se aplica por defecto es lo contrario de la última
lista de acceso, así que para asegurarnos que nadie se ingrese a nuestra red.

Página 70 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

Capítulo 11
Tareas automáticas
Llegando al último capítulo y con la creencia de que hasta aquí ya se puede migrar a un
entorno GNU/Linux pequeño al cual podemos administrar de manera básica y sencilla.
¿Pero qué sucede si la empresa para la que prestamos servicios día a día crece, sumando
equipamiento informático, más empleados y servicios?, por suerte esta pregunta tiene
respuesta, las tareas automáticas.
a. Ansible, la herramienta de los profesionales
Ansible es una plataforma de software libre para configurar
y administrar computadoras. Combina instalación multi-
nodo, ejecuciones de tareas ad hoc y administración de
configuraciones. Adicionalmente, Ansible es categorizado
como una herramienta de orquestación. Maneja nodos a
través de SSH y no requiere ningún software remoto
adicional excepto Python 2.4 o posterior para instalarlo. La
instalación es bastante simple, al finalizar la misma no
encontraremos bases de datos o algún demonio que monitorizar o inicializar. Sólo es
necesario instalarlo en una máquina, que actuará como punto central de la
aplicación. Ansible al no necesitar software o herramientas en los nodos donde se
ejecute, hace que el mantenimiento y actualización de la versión sea muy sencillo
Para continuar la instalación de esta herramienta en el servidor solo necesitamos
tener Python 2.6 o superior. Con esto aclarado nos ponemos manos a la obra

11.1 Los cuatro comandos necesarios para instalar Ansible

Lo primero que necesitamos es crear/modificar el archivo /etc/ansible/hosts donde


vamos a referenciar los distintos nodos sobre los cuales vamos a realizar las tareas
automáticas. En nuestro caso, vamos a indicar el nodo que tenemos disponible para
las pruebas que no es más que otra máquina virtual con sistema operativo Ubuntu
14.04 LTS.

Página 71 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

11.2 Configuración del archivo hosts de ansible

Ahora debemos asegurarnos de disponer una autenticación por llave SSH con el
nodo. Para esto abrimos una consola en la máquina central y ejecutamos el
comando (se recomienda utilizar una passphrase a pesar de que no es obligatoria)

11.3 Creación de llaves ssh

Una vez finalizado el proceso de generación disponemos de 2 archivos: ~/.ssh/tusl y


~/.ssh/tusl.pub copiamos la llave pública al nodo

Página 72 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

11.3 Transferencia de llaves ssh y primer acceso

Ahora podemos iniciar una sesión SSH con el usuario root al nodo sin necesidad de
una contraseña, además ya disponemos de todo lo necesario para ejecutar nuestro
primer comando desde la máquina central.

11.4 Transferencia de llaves ssh y primer acceso

Para darle instrucciones a los nodos tenemos los Playbooks, que básicamente nos
permiten gestionar la configuración del despliegue que vamos a realizar en ellos.
Dentro de estos archivos describimos la configuración, pero, también nos permiten
orquestar una serie de pasos o tareas a seguir. Para cada tarea se puede
especificar el grupo de nodos objetivo y el usuario remoto que ejecutará cada
operación.
Las tareas son ejecutadas en orden, una a la vez, contra los nodos descritos en la
sección hosts. Es importante destacar que si algún nodo falla en la ejecución de la
tarea, este será sacado de la lista.
El objetivo de cada tarea es ejecutar un módulo. Los módulos sólo se ejecutarán
cuando tengan algo que modificar. Si ejecutamos el Playbook una y otra vez,
podemos estar seguros de que sólo cuando haya algo que modificar el módulo será
ejecutado.

Página 73 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

11.5 Ejemplo de Playbook

Los módulos command y shell sí serán ejecutados continuamente. Afortunadamente


contamos con una validación llamada creates que indicará que sólo debe ejecutarse
si hay algo que modificar en la tarea.
Cada tarea debe contar con un name que será incluido en la traza de salida de la
operación.
Las notify son las acciones que se ejecutarán al final de cada tarea en el Playbook.
Sólo serán ejecutadas una vez, incluso cuando sean llamadas por diferentes tareas.
Las mismas informan si se han realizado cuantos cambios se realizaron, cuantos
fueron inaccesibles y cuantos fallaron. Por ejemplo muchas tareas pueden solicitar el
reinicio de algún servicio específico, pero este sólo será reiniciado una sola vez.
Con todo el material aquí expuesto ya podemos tener en funcionamiento a Ansible,
como remarque a lo largo del manual, hay muchas más cosas para hacer, y es por
eso que invito a buscar dentro de internet aún más material con documentación
avanzada.

Página 74 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

Capítulo 12
Conclusión
Hemos llegado al final de este manual o instructivo básico para administrar entornos bajo
sistemas operativos basados en GNU/Linux. Aunque parezca repetitiva la idea de remarcar
que es básico, es debido a que usuarios avanzados pueden encontrarlo aburrido y simple,
sin llegar a alcanzar sus expectativas.
Como dije antes mi objetivo es que usuarios que administran bajo otros sistemas operativos
privativos o que les interese dedicarse a esta noble y abnegada tarea de administrar
sistemas dentro del mundo del software libre, ya que si bien existe mucha documentación a
la cual referirse, la misma no está organizada y mucho menos clasificada. En internet
existen tutoriales maravillosos que nos permiten hacer todo lo que hemos visto a lo largo de
este manual y mucho más, pero si no sabemos que buscamos no vamos a dar con ellos de
manera sencilla.
Otro de mis objetivos para realizar este manual es la intención de que usuarios que
desconozcan GNU/Linux puedan ver que no es un monstruo oculto al que no deben
acercarse, muy por el contrario es un entorno que si se lo conoce en profundidad puede
transformarse en el mejor aliado a la hora de encarar todo tipo de proyectos.
Antes de entrar en el último párrafo dejo expreso mi deseo de que este manual no quede en
esto que realice, sino que con la colaboración de todas las personas que tengan intención
de ayudar a otro a desenvolverse en este apasionante mundo del software libre, pueda
seguir creciendo y completando aún más lo escrito en estas hojas.
Por último solo decir gracias por invertir tiempo en la lectura de este trabajo que se realizó
con mucho esfuerzo y sobre todo motivación.

Página 75 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

Capítulo 13
Apéndice
Oracle VM VirtualBox - https://www.virtualbox.org/wiki/Downloads
Ubuntu Mate - https://ubuntu-mate.org/download/

A usted como lector, si tiene la intención de criticar constructivamente, mejorar lo expuesto


o realizar alguna consulta le dejo el siguiente enlace hacia el sitio donde está alojado este
manual en su versión editable para que realice con él lo que considere necesario

https://gitlab.com/colonista/guia-administradores-sistemas/tree/master

Página 76 de 77
Universidad Nacional del Litoral
Tecnicatura Universitaria en Software Libre
Trabajo Final – Manual de Administración de Sistemas GNU/Linux Básico

Capítulo 14
Bibliografía Web
https://hipertextual.com/2015/10/superusuario-en-linux
http://www.edu.xunta.gal/centros/iesfelixmuriel/system/files/manual_practico_de_linux_alum
nos.pdf
https://www.suomitech.com/%C2%BFpor-qu%C3%A9-software-
librehttps://www.suomitech.com/%C2%BFpor-qu%C3%A9-software-libre
https://es.wikipedia.org/wiki/Software_libre
https://es.wikipedia.org/wiki/GNU/Linux
https://www.linuxadictos.com/linux-vs-windows-diferencias-basicas.html
https://es.wikipedia.org/wiki/M%C3%A1quina_virtual
http://www.ubuntufacil.com/2014/05/ubuntu-particionamiento-recomendado/
https://wiki.vitalinux.educa.aragon.es/index.php/Interfaces_de_usuario_gr%C3%A1ficas_y_d
e_l%C3%ADnea_de_comandos
https://www.computerhope.com/issues/ch000619.htm
https://geekland.eu/que-son-los-repositorios-en-linux/
https://es.wikibooks.org/wiki/Introducci%C3%B3n_a_Linux/Equivalencias_Windows_en_Linu
x
https://www.digitallearning.es/blog/administracion-linux-sistemas-de-archivos/
https://hipertextual.com/archivo/2014/05/editores-texto-terminal-linux/
https://computernewage.com/2015/06/27/conoce-la-estructura-de-permisos-de-linux-al-
detalle/
https://es.wikipedia.org/wiki/Secure_Shell
https://blog.pandorafms.org/es/kit-de-herramientas-para-redes/
Administración de GNU/Linux II - UNIDAD V - Backups: definición y tipos
https://www.adslzone.net/foro/linux-manuales-y-tutoriales.79/tutorial-montar-servidor-web-
sistemas-linux.178710/
https://blog.desdelinux.net/como-montar-un-servidor-web-y-alojar-una-web-en-gnu-linux/
https://es.wikipedia.org/wiki/Ansible_(software)
https://blog.deiser.com/es/primeros-pasos-con-ansible
http://www.kacharreando.com/ubuntu/configurar-proxy-squid/

Página 77 de 77

También podría gustarte