0% encontró este documento útil (0 votos)
40 vistas28 páginas

Guía de Supervivencia en Linux

Documento referente a Linux,

Cargado por

informatica
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
40 vistas28 páginas

Guía de Supervivencia en Linux

Documento referente a Linux,

Cargado por

informatica
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Sebastián Marcelo Pastén Díaz.

Ingeniero Civil en Informática


Antofagasta Chile.

GUÍA BÁSICA DE SUPERVIVENCIA PARA SISTEMAS


OPERATIVOS LINUX

“Como sobrevivir a un sistema operativo Linux y no morir en el intento”

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


1
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.

Capítulo I – ¿Qué es Linux?

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


2
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.

Linux:
Linux (GNU/Linux) es un sistema operativo al igual que Windows o Mac OS; sólo que a diferencia de
éstos su código es de libre acceso lo que permite una mayor libertad en su uso y que puede ser
desarrollado por un sinfín de personas, no limitándose a una empresa en particular.

Técnicamente hablando; Linux es el kernel o núcleo del sistema, el cual sería poco funcional si no se
complementara con una gran cantidad de softwares, la mayoría liberado bajo alguna licencia del
proyecto GNU (software libre).

Linux, o, mejor dicho, GNU/Linux es un conjunto que comprende un kernel Linux y cientos de
aplicaciones GNU que hacen utilizable el sistema.

Todo sistema se compone de una shell y un kernel, el kernel ha sido desarrollado por Linus Torvalds y
un conjunto de programadores de su confianza; mientras que la shell fue impulsada por el proyecto GNU
y es hoy desarrollada por millones de programadores en el mundo entero.

Cuando hablamos de kernel, hablamos de un software que tiene por objetivo comunicarse con el
hardware y con la Shell; nadie directamente usa el kernel, sino que es a través de la Shell que se
interactúa con el kernel y con el hardware, es por eso por lo que es más correcto llamarlo GNU/Linux y
no solo Linux ya que ambos proyectos se conjuntan para formar el total del sistema operativo.

Definición por [Link]

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


3
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.

Capítulo II – Linux Shortcuts

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


4
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.

Shortcut es un atajo que se puede acceder mediante una combinación de teclas, para así realizar
algunas tareas esenciales del sistema operativo, en el caso de Linux esta es funcional bajo terminales
TTY y PS/T.

Shortcut : Ctrl + Alt + F1

Explicación : Intercambio entre terminales de texto, puede ser utilizado desde el F1 al F6,
desde el F7 hasta el F12 pueden ser utilizados para interfaces gráficas del sistema Operativo.

Shortcut : Ctrl + Alt + BkSpc

Explicación : Se utiliza para el reinicio de la interfaz gráfica, este comando puede ser utilizado
siempre y cuando estemos parados dentro de una terminal a modo gráfico, de lo contrario no tendrá
efecto alguno en un terminal a modo texto.

Shortcut : Ctrl + C

Explicación : Se utiliza para terminar un proceso de forma inmediata, se puede utilizar tanto
para una interfaz modo texto (TTY) como para una Pseudo Terminal (PTS).

Shortcut : Ctrl + Z

Explicación : Se utiliza para enviar un proceso a segundo plano, se puede utilizar tanto para
una interfaz modo texto (TTY) como para una Pseudo Terminal (PTS).

Shortcut : Ctrl + D

Explicación : Termina la sesión del usuario que inicio sesión sobre la terminal, se puede utilizar
tanto para una interfaz modo texto (TTY) como para una Pseudo Terminal (PTS).

Shortcut : Shift + AvPag

Explicación : Se utiliza para avanzar en el buffer del sistema al momento de listar muchas líneas,
se puede utilizar tanto para una interfaz modo texto (TTY) como para una Pseudo Terminal (PTS).

Shortcut : Shift + RePag

Explicación : Se utiliza para avanzar en el buffer del sistema al momento de listar muchas líneas,
se puede utilizar tanto para una interfaz modo texto (TTY) como para una Pseudo Terminal (PTS).

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


5
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.

Capítulo III – Información del Sistema Operativo.

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


6
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.

Existe una gran cantidad de comandos (binarios del propio S.O.) destinados a obtener información
ya sea del funcionamiento actual o de volcados que generó el kernel. He preparado una selección
de los binarios más utilizados en la administración cotidiana de un sistema operativo Linux.

man comando : Muestra el manual de usuario del comando que estén consultando.

pwd : Muestra en la carpeta que se encuentra parado actualmente el usuario.

hostname : Muestra el nombre de la computadora.

whoami : Sirve para mostrar con que usuario me encuentro logueado actualmente.

id username : Muestra la información completa del usuario.

date : Muestra la fecha de sistema.

who : Muestra todos los usuarios que están logueados en el sistema operativo.

finger usr : Muestra la información completa sobre el usuario.

last : Muestra los últimos logueos del sistema a nivel de usuario.

history : Muestra el historial de comandos usados.

uptime : Muestra el tiempo que paso después del último reinicio.

ps : Lista todos los procesos activos del S.O.

ps –ax : Variante de ps

ps axu : Variante de ps –ax

free : Muestra la información de memoria en kb

df -h : Muestra información sobre los ficheros del sistema operativo.

du / -bh : Muestra el tamaño de los directorios usando en /

lsmod : Muestra los módulos que están siendo usados por el kernel.

env : Lista las variables de entorno.

set | more : Muestra las variables de entorno del usuario logueado.

dmesg |less : Muestra los mensajes del kernel.

fdisk –l : Lista todas las particiones de su sistema.

mount : Muestra información sobre sus volúmenes y donde están montados.

top : Monitorea los demonios del sistema operativo.

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


7
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.

Otra fuente interesante para obtener información del sistema operativo, son los propios ficheros de
configuración. He dejado los más comunes de analizar y las rutas absolutas de donde se encuentran
almacenados.

NOTA: Las rutas pueden variar según la distribución que se esté utilizando; sin embargo, los ficheros
que son ejemplificados más abajo típicamente son encontrados en esa ruta.

cat /proc/cpuinfo : Información sobre su CPU.


cat /proc/interrupts : Información sobre las IRQ de su computador.
cat /proc/ioports : Información sobre los puertos de entrada y salida.
cat /proc/meminfo : Información sobre la memoria.
cat /proc/version : Información sobre la versión de Linux.
cat /proc/filesystems : Información sobre sus volúmenes de sistema.
cat /etc/shadow : Información con respecto a los usuarios.
cat /etc/group : Información con respecto a los grupos de usuarios.
cat /etc/passwd : Información con respecto a las contraseñas de los usuarios.
cat /etc/fstab : Información con respecto a las particiones.
cat /etc/inittab : Información de los niveles de arranque del sistema operativo.
cat /boot/grub/[Link] : Información sobre la configuración del grub.

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


8
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.

Capítulo IV – Organización de Directorios.

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


9
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.

/bin : Binarios básicos del S.O., también /usr/bin


/sbin : Binarios esenciales para administración del S.O, también /usr/sbin
/boot : Binarios y ficheros de arranque del propio sistema (kernel y su initrd).
/dev : Dispositivos del sistema operativo.
/etc : Ficheros de configuración del sistema.
/home : Directorio de trabajo del usuario.
/root : Directorio de trabajo de root.
/lib : Liberia básicas para trabajar con Linux.
/mnt : Montaje de sistemas de archivos (temporal o transitorio).
/proc : Información del sistema.
/tmp : Información temporal de esa sesión.
/usr : Contiene mandatos de sólo lectura, bibliotecas y datos. Excepto por el contenido del
directorio /usr/share, los archivos y directorios del sistema de archivos /usr se pueden
compartir por todas las máquinas de la misma arquitectura de hardware.
/var : Directorios que tienden a crecer y cambiar de tamaño.

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


10
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.

Capítulo IV – Just Linux.

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


11
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.

Los programas del sistema pueden ser utilizados tanto de forma gráfica (GUI) como a modo texto (CLI);
existen algunos aplicativos que utilizan TUI, una especie de interfaz más intuitiva pero siempre a modo
de texto.

La administración de usuarios y grupos vía CLI agiliza los trabajos de administración, es verdad que es
requerido un nivel de experticia más elevado que solo utilizar la interfaz gráfica (GUI), pero los beneficios
en optimización de tiempos son mucho mayores, adicionalmente es necesario saber que no todo binario
de administración posee su versión en GUI.

Recuerde que usted puede utilizar la ayuda y el manual para ver más información sobre el binario a
utilizar

→ [nombre del binario] –help


➔ Ejemplo: pvs -- help
→ man [nombre del binario]
➔ Ejemplo: man pvs

ADMINISTRACIÓN DE ARCHIVOS Y PERMISOS.

Mkdir : Binario utilizado para crear una carpeta sobre el sistema operativo.

Rm : Binario que es utilizado para eliminar archivos y carpetas del sistema operativo, es
posible utilizar la opción -r para aplicarlo de forma recursiva (rm -r /folder). Utilizando la sobrecarga -f
(force), eliminará sin solicitar confirmación de la acción a ejecutar (rm -rf /folder)

Chmod : Binario para cambiar el modo, generalmente es aplicado en base a la tabla


de permisos U-G-O (ver tabla 1). Chmod cambia tanto los permisos de escritura (W), lectura
(R) y ejecución (X).

El ejemplo plasmado en la tabla 1 entrega permisos efectivos de RWX al usuario, R-X al grupo y sin
permisos efectivos aplicados a otros. La aplicación de ese permiso efectivos será de la siguiente
manera → chmod 750 /folder

Usuario Grupo Otros


R → (4) 4 4 0
W → (2) 2 0 0
E → (1) 1 1 0
TOTAL PERMISOS 7 5 0
Tabla 1 – “Ejemplo de permisos aplicados”

Chown : Permite cambiar la autoría de una carpeta, la sintaxis esencial es aplicada de la


siguiente manera chown usuario:grupo /carpeta. Es posible utilizar la opción –r para
hacerlo recursivo sobre la carpeta que se requiera intervenir.

NOTA: Usar con mesura el -r y solo si se está seguro de cómo y dónde se aplicará este binario, dado
que su aplicación puede ser nociva e invasiva para el sistema operativo, siendo la tarea de romper algo
funcional muy simple, pero en cambio, la tarea de reparar es muy laboriosa y tardía.

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


12
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.

Chgrp : Permite cambiar solo el grupo al cual le pertenece la carpeta, la sintaxis es chgrp
grupo/carpeta, este binario también permite la aplicación de forma recursiva al igual que chown.
OBS: Se debe tener las mismas consideraciones de cuidado al utilizar CHOWN y CHGRP.

EDITORES DE TEXTO

Vi : Editor de texto basado en líneas de comando, normalmente viene


instalado de forma predeterminada sobre el S.O.

Vim : Editor de texto basado en texto, evolucionado de vi.

Nano : Editor de texto basado en texto plano un tanto más amigable que vi y vim.

ADMINISTRACIÓN DE USUARIOS

su : Binario utilizado para cambiar de usuario haciendo un “switch” entre un


usuario y otro, podemos utilizar la opción – para utilizar todas las variables de entorno que son
parametrizadas en la cuenta de destino. Su sintaxis para convertirse en root es su - , y para convertirse
en otro usuario es su - nombusuario

useradd : Se utiliza para crear usuarios en el sistema operativo, alguno de las


opciones que se pueden utilizar serían, –d para crear un home personalizado EJ /usuarios/pepe en
vez de /home/pepe, -g para configurar el grupo principal del usuario, -G para configurar una lista de
grupos, -p para darle una contraseña esta será sin cifrado, -s especifica el tipo shell distinta al
/bin/bash, puede ser algo como /sbin/nologin, -u cambiar el user ID.

groupadd : Se utiliza para la creación de grupo, se puede usar la opción –g para


cambiar el GID del grupo (Group ID), todos los grupos de sistema son bajo el GID 499 y los grupos
de control sobre el GID 500

usermod : Se utiliza para la modificación de usuarios, se pueden usar las siguientes opciones,
-L para bloquear la cuenta del usuario, -U para desbloquear la cuenta del usuario, podemos usar el –
aG para agregar grupos secundarios al usuario; por otro lado, la opción –G sin la a elimina toda la lista
de grupos secundarios dejando solo el último agregado como grupo, la opción -g lo que nos hace es
cambiar el grupo principal del usuario.

userdel : Se utiliza para la eliminación de usuarios, para hacer una limpieza


completa utilizamos la opción –r, si no se utiliza esta opción no se elimina el /home/usr del usuario
ni la casilla de correo que queda en
/var/spool/mail/usr, si no utilizamos la opción –r se deben eliminar de forma
manual estas dos rutas con rm –rf

passwd : Se utiliza para darle contraseña a un usuario en especial, la sintaxis es


passwd usuario, en el caso que no especifiquemos usuario le pide cambiar la contraseña del usuario
que se encuentra autenticado en la shell.

gropus : Este comando muestra los grupos a los cuales pertenece un usuario que
está logueado en el sistema.

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


13
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.
ADMINISTRACIÓN DE DISCOS

Fdisk : Este binario sirve para la partición de discos, siempre debe estar apuntando
donde se encuentra el disco completo, es decir en el caso que sea un disco scsci seria /dev/sda, en
el caso que sea un disco ata /dev/hda, si es que existe más de un disco dentro del computador este
los toma como hdb,hdc si es que es un sda sería algo como sdb, sdc las particiones varían con un
número por ejemplo /dev/sda1, generalmente la primera partición es la partición del boot.

➔ EJ: fdisk /dev/sda o fdisk /dev/hda

fdisk –l : Variante del comando fdisk sirve para listar las particiones que tienen en el
disco

Mount : Binario de importancia dentro del sistema operativo, sirve para dejar en
producción en tiempo real las particiones del sistema operativo, es decir una partición /dev/sda, existe
una opción importante del binario que especifica el tipo de partición (Opción → –t)

→ mount –t ext3 /devsda3 /mnt


→ mount –t vfat /dev/sdb6 /media

En el caso que la partición sea una etiqueta se puede utilizar como es mostrado en el ejemplo de más
abajo.

→ mount –t ext3 LABEL=MP3 /media

e2label : Binario para etiquetar las particiones de Linux, bastante cómodo al momento
de particionar el sistema operativo, tiene bastantes variantes según el tipo de partición que exista
dentro del sistema, es importante tener en cuenta que las particiones deben estar desmontadas para
poder aplicarles etiquetas, la forma de hacer las particiones las veremos en el ejemplo:

➔ Para una partición reiserfs, reiserfstune -l HOME


/dev/sda5

➔ Para una partición swap mkswap -L SWAP


/dev/sda3

➔ Para una partición Windows NTFS se necesita el paquete ntfsprogs


ntfslabel /dev/sdb1 WINXP

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


14
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.

TUNE2FS : El comando tune2fs es bastante versátil ya que nos permite especificar cada
cuanto reinicio o cada cuanto tiempo queremos que nos haga un chequeo del sistema de archivos;
por otro lado se pueden aplicar etiquetas con el parámetro –L, permite especificar a los grupos de
usuarios que tienen acceso a la partición, se pueden especificar muchas cosas para mayor
información utilice man tune2fs

Ejemplos:
tune2fs -c 80 /dev/sda1 (cada 80 reinicios)
tune2fs –L MP3 /dev/sda3 ( aplica etiqueta MP3)
tune2fs -i 2m /dev/sda1 (cada 2 meses)
tune2fs -i 2w /dev/hda3 (cada 2 semanas)
tune2fs -i 2d /dev/sda1 (cada 2 dias)
tune2fs -l /dev/sdb1 (ver registro completo de la partición)
tune2fs -l /dev/hda3 | grep ‘Last checked’ (ver fecha del último escaneo)
tune2fs -l /dev/hda3 | grep -i check (veces que se fuerza el chequeo)
tune2fs -i 0 /dev/hda3 (desactivar chequeo)
showfsck (saber cuántas reiniciadas faltan hasta el próximo chequeo)
tune2fs -l /dev/hda3 | grep -i ‘mount count’ (lo mismo que el anterior)
e2fsck -fpD /dev/sda1 (para optimizar la partición)

FCSK : El S.O. cuando reinicia hace un chequeo del sistema de ficheros y si detecta
alguna inconsistencia ejecuta la utilidad fsck para intentar recuperarlo. Esto suele pasar cuando el
sistema se ha apagado de manera incorrecta. Si no consigue reparar el sistema por sí mismo,
arranca en modo consola y solo como lectura para poder repararlo de manera manual.
fsck es una utilidad para chequear la consistencia de un sistema de ficheros en sistemas Unix/Linux.
Se emplea para corregir los posibles errores y devolverlo a su estado normal. Debe emplearse
cuando la partición este desmontada.

Sintaxis: fsck [-opciones] /dev/hdX (o sdX)


Opciones:
-a confirmar automáticamente. No recomendado.
-c comprobar bloques en el disco.
-f forzar el chequeo, aunque todo parezca ok.
-v (verbose) despliega más información.
-r Modo interactivo. Espera nuestra respuesta.
-y asume yes de respuesta.

PARTPROBE : Binario utilizado para refrescar la tabla de particiones después de haber


realizado cambios, ya sea en la tabla de particiones como en los códigos hexadecimales de las
particiones existentes, con este comando usted se ahorra el reiniciar la computadora después de
haber realizado actividades de administración sobre una partición que no almacena la raíz.

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


15
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.
PARTICIONES TIPO SWAP

Espacio de intercambio es una zona del disco (un fichero o partición) que se usa para guardar las
imágenes de los procesos que no han de mantenerse en memoria física, a este espacio se le suele
llamar swap, del inglés "intercambiar". La memoria swap sirve como una memoria ram adicional a
nuestra computadora, a pesar de que el sistema operativo puede funcionar sin un área de intercambio,
en rigor es necesaria para poder liberar la memoria ram de ser utilizada por procesos poco utilizados
así dejar la memoria ram disponible para la memoria cache de operaciones de I/O.

Como crear una partición tipo swap a partir de una partición Linux código 82

➔ Crear una partición de disco


➔ Formatear la partición ejemplo: dd,if=/dev/zeo of=/dev/sda5 count=1025 bs=512
➔ Crear el swap ejemplo mkswap /dev/sda5
➔ Poner la swap en producción swapon /dev/sd5
➔ Opcional: en el caso de querer apagar la memoria swap usamos el comando swapoff
/dev/sda5

Como crear una partición tipo swap a partir de un archivo de texto plano

➔ Crear una partición de disco


➔ Formatear la partición ejemplo: dd,if=/dev/zeo of=/media/[Link] count=1025 bs=512
➔ Crear el swap ejemplo mkswap /media/[Link]
➔ Poner la swap en producción swapon /media/[Link]
➔ Opcional: en el caso de querer apagar la memoria swap usamos el comando swapoff
/media/[Link]

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


16
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.

El Sticky Bit y el SGID en directorios.

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


17
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.
Todos los archivos y carpetas en Linux tienen asociado un número compuesto de cuatro cifras en
octal. Los tres dígitos menos significativos (least significant digit) especifican los permisos que tienen
los usuarios sobre ese fichero (lectura (r), escritura (w) y ejecución (x) para el usuario, los usuarios
pertenecientes al grupo o para otros):

sst rwx rwx rwx


421 421 421 421
S U G O S=SUID,
SGID y Sticky Bit
U=Usuario
G=Grupo
O=Otros

Esto forma parte de los conocimientos básicos y mínimos de cualquier usuario de Linux, y podemos leer
sobre ello en Permisos de ficheros del manual Seguridad en Linux y Redes. También es muy conocida
la existencia de los bits SUID y SGID, formados por los dos bits más significativos del octal más
significativo. Aplicados sobre un fichero ejecutable, permiten que el programa se ejecute como si lo
hiciera el usuario propietario (SUID) o el grupo propietario (SGID) del fichero.

StickyBit:

Cuando el sticky bit está activado en un directorio, los archivos de ese directorio solo pueden
ser cambiados por root o su propietario. Sin el bit, alguien capaz de escribir en el directorio
puede borrar o renombrar archivos. El sticky bit se encuentra comúnmente en los directorios,
como / tmp, que son con permisos de escritura.
Extracto man Linux

Permisos Adicionales:

Ya dejamos claro que los sistemas linux emplean típicamente tres permisos o modos adicionales.
Estos permisos especiales se asignan a archivos o directorios en conjunto, no a cada clase de forma
separada

• Permiso set user ID, setuid o SUID: cuando un archivo que tiene este permiso asignado se
ejecuta, el proceso resultante asumirá la ID de usuario efectiva dada a la clase de usuario. El
ejemplo típico es el cambio de una clave de usuario: ningún usuario debería poder modificar
/etc/passwd/ directamente. La única forma de poder modificarlo debería ser a través del
comando correspondiente, que necesariamente deberá tener asignado el setuid. Es decir, el
comando /usr/bin/passwd ejecutado por un usuario se ejecutará como si lo hubiese invocado
el super usuario, de manera de poder modificar /etc/passwd.

• Permiso set group ID, setgid o SGID: cuando un archivo que tiene este permiso asignado
se ejecuta, el proceso resultante asumirá la ID de grupo efectiva dada a la clase de grupo.
Cuando el setgid le es asignado a un directorio, archivos nuevos y directorios creados
debajo de ese directorio heredarán el grupo de ese directorio, a diferencia del

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


18
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.

comportamiento por defecto, que es usar el grupo primario del usuario efectivo al asignar el
grupo de archivos nuevos y directorios.

• Permiso de sticky bit (o menos común, bit pegadizo): El comportamiento típico del sticky bit
en archivos ejecutables fuerza al kernel a retener la imagen del proceso resultante luego
de su terminación. Originalmente, esta era una característica para ahorrar memoria, pero
hoy en día, los precios de las memorias han disminuido y existen mejores técnicas para
manejarlo, así que no se lo suele utilizar más para optimizaciones en archivos. En un
directorio, por el contrario, el sticky bit previene que los usuarios renombren, muevan o
borren los archivos que allí se encuentran, pertenecientes a usuarios otros que ellos
mismos, incluso si tienen permiso de escritura en el directorio. Solo el propietario del
directorio y el super usuario quedan exentos de esto.

Estos tres permisos (especificables de forma independiente), un bit por cada uno de ellos, permiten
8 combinaciones posibles que se expresan con un dígito en base 8 (del 0 al 7, uno por cada
combinación posible) que se antepone al modo de permisos. Así, el modo se ampliaría ahora del
0000 al 7777. = – específica un modo (sobrescribiendo el modo anterior)

chmod +t /home → Agrega permisos de sticky bit al directorio home


chmod g+s /home/grupo → Agrega el setgid al grupo
chmod gu+s /home /grupo → Agrega el setuid y el setgid al usuario y al grupo respectivamente

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


19
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.

Listas de control y Acceso (ACLs).

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


20
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.

Una de las características en los sistemas Linux actuales, especialmente en entornos corporativos, es
la posibilidad de especificar los permisos de acceso a los ficheros con mayor granularidad. Los sistemas
Linux siguen el modelo de permisos Unix tradicional segmentando el tipo de acceso en tres categorías:

• El propietario del fichero (User)


• El grupo al que pertenece el fichero (Group)
• El resto de los usuarios del sistema que no están en ninguna de las dos categorías anteriores
(Other).

También conocido como modelo UGO (User, Group, Other).Sin embargo, estas tres categorías se
revelan insuficientes en una gran cantidad de situaciones, donde desearíamos poder especificar
permisos diferenciados para varios usuarios o grupos determinados.

Aquí es donde entran en juego los permisos basados en Listas de Control de Acceso, más conocidos
como ACLs. En este sistema de permisos los ficheros no tienen un juego fijo de permisos (como en el
modelo tradicional, que tiene tres permisos y sólo tres), sino que los permisos del fichero son en realidad
una lista de Entradas de Control de Acceso (o ACEs). Cada una de estas ACEs contiene un par
(usuario/grupo, permiso) que indica un tipo de acceso determinado para un usuario o grupo, y el
conjunto de todas ellas forman la ACL que marca el tipo de acceso permitido en un archivo.

Este sistema es el utilizado entre otros, por los sistemas de ficheros NTFS (de Windows NT y
sucesores), el sistema UFS de Solaris y el sistema HFS de HP-UX.

Una vez que hemos compilado el kernel con soporte para ACLs y que hemos compilado las
herramientas necesarias para poder trabajar con ellas (además de parchear aquellas utilidades de
gestión de ficheros y sistemas de ficheros para que reconozcan las ACLs y las respeten y sepan
interpretarlas), podemos ya dedicarnos a la gestión de las propias ACLs en sí.

Para ello disponemos de dos utilidades principalmente:

• getfacl: que nos permite consultar las ACLs de un fichero dado.


• setfacl: que nos permite modificar las ACLs de un fichero dado.

Ambas utilidades se hayan perfectamente documentadas en sus respectivas páginas del manual
(setfacl(1) y getfacl(1)), y podemos encontrar una pequeña introducción en la página del manual de
acl(5), vamos a ver aquí algunos ejemplos sencillos que ilustrarán el uso básico de estas
utilidades.

Modificadores y opciones para setfacl

• -b borra la lista de ACL que pudiera existir


• -k borra la opción de ACL por defecto
• -R recursivo
• -m añade o modifica la política establecida
• -s - es una o s o m y se elimina para crear la nueva con m modifica o añade.

ACL Predeterminada

Las ACLs por defecto nos permiten indicar cuál es el juego de ACEs que queremos que se apliquen
automáticamente a los nuevos archivos y carpetas que se creen dentro de un directorio dado. Se
dice en estos casos que los permisos se heredan desde el directorio padre.
La sintaxis es idéntica a la de una ACE normal, con la diferencia de que debemos usar además la
opción -d:

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


21
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.
opción 1

setfacl -d -m g:sistemas:rw dir_raiz


setfacl -d -m g:desarrollo:rw dir_raiz/dir_1
setfacl -d -m g:desarrollo:rw dir_raiz/dir_2
setfacl -d -m g:explotacion:rw dir_raiz/dir_2

opción 2

setfacl -m d:g:sistemas:rw dir_raiz


setfacl -m d:g:desarrollo:rw dir_raiz/dir_1
setfacl -m d:g:desarrollo:rw dir_raiz/dir_2
setfacl -m d:g:explotacion:rw dir_raiz/dir_2

Por otro lado, las ACLs también puede configurarse de forma de entregarle permisos tanto a los
usuarios como a grupos de usuarios, para esto utilizamos el mismo comando setfacl.

opción 1 → Usuarios

setfacl -m u:pepe:rwx /carpeta

opción 2 → Grupos

setfacl -m g:Inacap:rwx /carpeta

Si ejecutamos el comando y nos muestra el mensaje de que Operación no soportada es por qué
debemos habilitar las acl en nuestra partición. Se debe modificar con un editor de texto el /etc/fstab
y añadir la opción acl de la forma que muestra el ejemplo más abajo:

Ejemplo:
Original :
UUID=6884bdde-1ad1-4aa2-8900 / ext3 relatime,errors=remount-ro 0 1

Modificado:
UUID=6884bdde-1ad1-4aa2-8900 / ext3 acl,relatime,errors=remount-ro 0 1

Una vez modificado la opción de acl dentro del fstab solo debemos remontar la partición del disco con
el siguiente comando mount -o remount -o acl /dev/sda1 /

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


22
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.

Quotas para Discos.

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


23
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.

Sistemas Linux con gran cantidad de usuarios, como servidores de correo, servidores samba, etc.,
tarde o temprano tienen el problema de usuarios que almacenan demasiada información en sus
directorios de trabajo, pudiendo incluso en casos extremos llenar completamente discos duros
haciendo el sistema inservible. Con el uso de cuotas de disco (disk quotas) es posible limitar la
cantidad de espacio disponible para cada usuario o de manera global para todos.

Tipos de Quotas

Por Bloques (blocks): Un bloque corresponde a 1 kb y una cuota por bloques correspondería al total
de bloques que un usuario puede utilizar en el sistema. Recuerda que los archivos se guardan en
bloques de disco. Así un archivo de 100 bytes ocupará un bloque de 1kb en el disco duro.

Por Inodos (inodes): Un inodo o inode en inglés (Index Node) es un número que actúa como apuntador
para el sistema de archivos de Linux y le indica en que bloques específicos del disco duro se encuentran
los datos de un archivo. También el inodo en su referencia guarda información sobre permisos,
propietario, atributos, etc. Se podría ver en una analogía simple que un inodo es como un número de
serie único para cada archivo del sistema y a través de este número el sistema recupera sus datos
(bloques) y sus atributos (permisos, propietario, fechas, etc.).

En el caso de las cutoas, una cuota por inodos indicaría el total de inodos a los que el usuario tiene
derecho, casi representaría el total de archivos que el usuario puede crear y digo "casi" porque los
usuarios podemos crear enlaces simbólicos (ln -s) sobre archivos ya existentes que no aumentan las
cantidad de inodos. Pero por simplicidad puedes verlo como un 1 inodo = 1 archivo.

Límites de Quotas

Tanto las cuotas por bloques o por inodos, tienen límites de uso y son de dos tipos:

HARD: (Duro) Cuando se establece (para bloques o inodos), es el límite absoluto. El usuario no podrá
exceder este límite.

SOFT: (Suave) Este límite (para bloques o inodos) que es siempre menor al HARD, puede ser excedido
por el usuario, pero será constantemente advertido que el límite de uso para bloques o inodos ya ha
sido excedido. Podría verse como un límite de advertencia que le estará indicando al usuario que su
límite ya se excedió y tome medidas.

Cuando se usa el límite SOFT, dos situaciones pueden ocurrir, la primera es que NO se tenga
establecido un tiempo de gracia, y entonces el usuario podrá seguir usando bloques o inodos hasta
llegar al límite HARD que será su límite absoluto de uso.
La segunda situación es que SI se tenga establecido el tiempo de gracia, que puede ser en días, horas,
minutos o segundos. En este caso, el usuario podrá seguir usando bloques o inodos hasta que termine
el tiempo de gracia o llegue al límite HARD, cualquiera que ocurra primero.
El tiempo de gracia se puede establecer por usuario o globalmente y más adelante veremos como
establecerlo.

Las cuotas se establecen por sistema de archivos, es decir que se debe decidir en donde es más
conveniente aplicarlas ya sea bien por usuario o por grupo de usuarios.

El sistema de archivos "/algo" está listo ahora para soportar cuotas de disco. El siguiente paso es
verificar las quotas y activarlas por sistemas de archivos que soporten cuotas. Este comando crea,
verifica o repara el control de cuotas en los sistemas que lo soporten, en este caso creará el soporte
para las quotas.

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


24
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.

Los comandos que utilizamos son los siguientes:

Para chequear y crear el archivo de quotas:


➔ quotacheck /archivo

Para prender las quotas en la partición.


➔ quotaon /archivo

Para editar las quotas a un usuario sobre la partición que posee la opción de quotas
➔ edquota -u nombreUsuario
➔ edquota -p user1 user2 user3 user4

Para mirar el estado de las cuotas


➔ repquota /archivo
➔ quota –u usuario
➔ quota –u –s usuario

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


25
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.

Cron, Crontab, Anacron.

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


26
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.
Cron es el nombre del programa que permite a usuarios Linux/Unix 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 se define en las páginas del manual de cron (#> man cron) es un demonio
que ejecuta programas agendados.

En prácticamente todas las distribuciones de Linux se usa la versión Vixie Cron, por la persona que la
desarrolló, que es Paul Vixie, uno de los grandes gurús de Unix, también creador, entre otros sistemas
de BIND que es uno de los servidores DNS más populares del mundo.

Hay al menos 3 maneras distintas de usar cron:

La primera es realizar un crontab –e para el usuario que estamos actualmente logueado al sistema
operativo y aplicarle los parámetros necesarios para realizar la tarea, realizar un crontab –e
<<nombre de usuario>> para hacer un crontab a un usuario específico, más abajo se muestra como
es la sintaxis del cron.

La segunda es en el directorio /etc, donde muy seguramente encontrarás los siguientes directorios:

• [Link]
• [Link]
• [Link]
• [Link]

Si se coloca un archivo tipo script en cualquiera de estos directorios, el script se ejecutará cada hora,
cada día, cada semana o cada mes, dependiendo del directorio.

Como tercer modo de ejecutar o usar cron es a través de manipular directamente el archivo /etc/crontab.
En la instalación por defecto de varias distribuciones Linux, este archivo se verá a algo como lo siguiente:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root HOME=/
# run-parts
01 * * * * root run-parts /etc/[Link]
02 4 * * * root run-parts /etc/[Link]
22 4 * * 0 root run-parts /etc/[Link]
42 4 1 * * root run-parts /etc/[Link]

Las primeras cuatro líneas son variables que indican lo siguiente:

SHELL → Es el 'shell' bajo el cual se ejecuta el cron. Si no se especifica, se tomará por defecto
el indicado en la línea /etc/passwd correspondiente al usuario que este ejecutando cron.

PATH → Contiene o indica la ruta a los directorios en los cuales cron buscará el comando a ejecutar.
Este path es distinto al path global del sistema o del usuario.

MAIL TO → Es a quien se le envía la salida del comando (si es que este tiene alguna salida). Cron
enviará un correo a quien se especifique en esta variable, es decir, debe ser un usuario válido del
sistema o de algún otro sistema. Si no se especifica, entonces cron enviará el correo al usuario
propietario del comando que se ejecuta.

HOME → Es el directorio raíz o principal del comando cron, si no se indica entonces, la raíz será la
que se indique en el archivo /etc/passwd correspondiente al usuario que ejecuta cron.

© Sebastián Marcelo Pastén Díaz. Todos los Derechos Reservados


27
Sebastián Marcelo Pastén Díaz.
Ingeniero Civil en Informática
Antofagasta Chile.

Después de lo anterior vienen las líneas que ejecutan las tareas programadas propiamente. No hay
límites de cuantas tareas pueda haber, una por renglón. Los campos (son 7) que forman estas líneas
están formados de la siguiente manera:

Un asterisco * como valor en los primeros cinco campos, indicará inicio-fin del campo, es decir
todo. Un * en el campo de minuto indicará todos los minutos. Para entender bien esto de los
primeros 5 campos y el asterisco usaré mejor varios ejemplos:

© Sebastian Marcelo Pasten Diaz. Todos los Derechos Reservados


28

También podría gustarte