Fundamentos de Sistemas Operativos Unix/Linux: Permisos, Enlaces y Redirección de E/S

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 6,01 KB

Gestión de Permisos y Propiedades de Archivos en Sistemas Unix/Linux

Permisos Fundamentales

Los sistemas operativos Unix y Linux gestionan el acceso a archivos y directorios mediante tres tipos de permisos:

  • Lectura (r): Permite ver el contenido de un archivo o listar los archivos de un directorio.
  • Escritura (w): Permite modificar o eliminar un archivo, o crear/eliminar archivos dentro de un directorio.
  • Ejecución (x): Permite ejecutar un archivo (si es un programa o script) o acceder a un directorio.

Clases de Usuarios

Estos permisos se aplican a tres clases de usuarios:

  • (u)suario: El propietario del archivo.
  • (g)rupo propietario: Los miembros del grupo asociado al archivo.
  • (o)tro: Todos los demás usuarios del sistema.

El comando ls -l se utiliza para visualizar las propiedades y los permisos asociados a los archivos y directorios.

Enlaces en Sistemas de Archivos: Duros vs. Simbólicos

Enlace Simbólico (Soft Link)

Un enlace simbólico (o enlace blando), en sistemas Unix o Linux, indica un acceso a un directorio o fichero que no es el objeto real, sino un puntero o referencia a otro, que se encuentra en una ubicación distinta dentro de la estructura de directorios.

  • Una modificación realizada utilizando este enlace se reflejará en el archivo original.
  • Si se elimina el enlace, no se eliminará el archivo auténtico (el referido).

Enlace Duro (Hard Link)

Un enlace duro (en inglés, hard link) es una referencia o puntero directo a un archivo (al dato físico) en un sistema de archivos.

El nombre asociado a un archivo es simplemente una etiqueta almacenada en una estructura de directorio que referencia el sistema operativo al sistema de archivos. Por lo cual, más de un nombre puede ser asociado al mismo archivo. Cuando se accede a través de diferentes nombres, cualquier cambio hecho afectará al mismo archivo. Los enlaces duros solo pueden referenciar datos que existen en el mismo sistema de archivos. En la mayoría de los sistemas de archivos, todos los archivos son enlaces duros.

Comparativa Detallada

Enlaces DurosEnlaces Blandos (Simbólicos)
Los directorios no pueden tener enlaces duros.Pueden hacer referencia a directorios.
No tienen un concepto de "original" y "copia". Una vez se ha creado un enlace duro, todas las instancias se tratan igual.Tienen un concepto de "referencia" y "referido". Al suprimir archivos "referidos" se crea una referencia colgante.
Deben hacer referencia a archivos en el mismo sistema de archivos.Pueden abarcar archivos del sistema (particiones).
Se pueden compartir entre directorios con chroot.Pueden no referirse a archivos externos de un directorio con chroot.

Redirección de Entrada y Salida (I/O)

Flujos Estándar

El flujo de entrada se conoce como Entrada Estándar (suele abreviarse stdin) y el flujo de salida se conoce como Salida Estándar (o en forma abreviada stdout).

Operadores de Redirección en Bash

Así como Bash usa > para lograr que los comandos entreguen su salida en alguna otra parte que no sea la pantalla (sobrescribir), Bash usa < para hacer que lean entradas desde alguna parte diferente al teclado.

Nota: El operador >> se utiliza para agregar la salida al final de un archivo existente.

Ejecución de Comandos con Redirección

Los siguientes comandos demuestran la redirección de salida a un archivo (~/stdoutlab.txt):

  1. El comando hostname informa el nombre de máquina asignado de la estación actual. Ejecute el comando (sin argumentos) y redirija la salida al archivo ~/stdoutlab.txt (usando > para sobrescribir o crear):
    hostname > ~/stdoutlab.txt
  2. El comando uptime reporta cuánto tiempo ha pasado desde que arrancó su máquina y otra información de uso del sistema. Ejecute el comando uptime (sin argumentos) usando la redirección para agregar la salida al archivo ~/stdoutlab.txt:
    uptime >> ~/stdoutlab.txt
  3. El comando uname -a lista información sobre su versión actual de kernel. Ejecute el comando usando la redirección para agregar la salida al archivo ~/stdoutlab.txt:
    uname -a >> ~/stdoutlab.txt

Comandos de Utilidad

Comando cat

El comando cat se utiliza para simplemente mostrar el contenido de archivos.

Comando wc (Word Count)

El comando wc se utiliza para contar líneas, palabras y caracteres.

Ejemplo de uso: wc -c

Opciones de conteo:

-c
Conteo de caracteres (bytes).
-l
Conteo de líneas.
-w
Conteo de palabras.

El argumento filename es el nombre del archivo que se va a contar. Si no se especifica ningún nombre de archivo, entonces el texto se leerá desde la entrada estándar (stdin). Para mayor claridad, el nombre del archivo será escrito como la última línea de cada informe de conteo, incluso si solo se utiliza un único nombre de archivo.

Entradas relacionadas: