[ anterior ] [ Contenidos ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ siguiente ]


Guía de referencia Debian
Capítulo 4 - Tutoriales de Debian


Esta sección proporciona una orientación al mundo Debian para aquellos que son realmente principiantes. Si ya hace cierto tiempo que utiliza un sistema tipo Unix, es probable que conozca todo lo que se explica aquí. En este caso, considérelo un repaso.


4.1 Primeros pasos

Tras la instalación de Debian en su PC, necesitará aprender algunos conceptos para que le resulte útil. Le proporcionaremos un rápido entrenamiento.


4.1.1 Ingresar al sistema como superusuario

Luego de reiniciar el sistema, y dependiendo de los paquetes seleccionados, accederá a una pantalla de acceso gráfico o bien a otra basada en caracteres. Por simplicidad, si se le presenta una pantalla de acceso gráfico presione Ctrl-Alt-F1 [3] para acceder a la pantalla de acceso basada en caracteres.

Supongamos que el nombre de su máquina es loquesea, entonces el símbolo del sistema será similar a:

     loquesea login:

Escriba root , pulse la tecla Intro e ingrese la contraseña que eligió durante el proceso de instalación. Siguiendo la tradición Unix, un sistema Debian diferencia mayúsculas de minúsculas. A continuación, el sistema se iniciará con un mensaje de bienvenida y le mostrará el símbolo del sistema del superusuario a la espera de datos. [4]

     loquesea login: root
     Password: 
     Last login: Sun Oct 26 19:04:09 2003 on tty3
     Linux foo 2.4.22-1-686 #6 Sat Oct 4 14:09:08 EST 2003 i686 GNU/Linux
     
     Most of the programs included with the Debian GNU/Linux system are
     freely redistributable; the exact distribution terms for each program
     are described in the individual files in /usr/share/doc/*/copyright
     
     Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
     permitted by applicable law.
     
     root@loquesea:root#

Ahora está listo para realizar la administración del sistema desde la cuenta de root llamado también superusuario o usuario privilegiado. Desde esta cuenta, puede hacer todo:

Resulta una pésima idea compartir la cuenta de root utilizando la misma contraseña. La manera correcta de compartir los privilegios del administrador consiste en usar un programa como sudo(8).

Obsérvese que en Unix se considera un buen hábito entrar al sistema inicialmente como usuario no privilegiado incluso si planea realizar tareas administrativas. Utilice los comandos sudo, super o su -c para obtener privilegios restringidos de superusuario cuando sea necesario. Véase sudo – un entorno de trabajo más seguro, Sección 9.2.4. [5]


4.1.2 Configurar un entorno mínimo para principiantes

Considero que aprender un sistema informático es como aprender un idioma extranjero. Aunque los libros resultan útiles, se debe practicarlo con herramientas de ayuda. En este contexto, creo que es una buena idea instalar algunos paquetes adicionales tales como mc, vim, lynx, doc-linux-text y debian-policy. [6]

     # apt-get update
      ...
     # apt-get install mc vim lynx doc-linux-text debian-policy 
      ...

Si ya tiene estos paquetes instalados, no se instalará nada.


4.1.3 Añadir una cuenta de usuario

Durante la instalación, generalmente se crea una cuenta de usuario sin privilegios que recibe los mensajes de correo que son enviados a la cuenta del superusuario. [7] Puesto que tampoco querrá usar esta cuenta especial para subsiguientes las tareas de entrenamiento, deberá crear otra cuenta de usuario nueva.

Supongamos que desea que este nombre de usuario nuevo sea penguin, entonces si escribe:

     root@loquesea:root# adduser penguin
     ... responda todas las preguntas

creará dicha cuenta. [8] Antes de proseguir, aprendamos primero algunas cosas más.


4.1.4 Alternar entre consolas virtuales

En un sistema Debian predeterminado, existen seis seudo terminales disponibles, es decir, puede utilizar la consola de caracteres VGA del PC como seis terminales VT-100 intercambiables. Para pasar de una a otra, pulse simultáneamente la tecla Alt izquierda y una de las teclas F1–F6. Cada seudo terminal permite el acceso a cuentas independientes. El entorno multiusuario es una característica maravillosa en Unix y muy adictiva.

Si por equivocación pulsa Alt-F7 en un sistema que está ejecutando el sistema X Windows accederá al sistema de ventanas. Podrá recuperar el acceso a las consolas de caracteres presionando Ctrl-Alt-F1. Intente ir a una consola distinta y volver a la original para acostumbrarse a esta característica.


4.1.5 Cómo apagar el sistema

Al igual que cualquier otro sistema operativo moderno en donde la operación sobre archivos implica obtener datos de la memoria, un sistema Debian necesita apagarse correctamente antes de poder cortar sin problemas el suministro eléctrico y mantener la integridad de sus archivos. Utilice el siguiente comando desde el indicador de superusario para apagar el sistema :

     # shutdown -h now

Esto sirve normalmente para un sistema multiusuario. Si se encuentra en el modo monousuario ejecute desde el indicador de root, lo siguiente:

     # poweroff -i -f

Opcionalmente, puede pulsar Ctrl-Alt-Supr [9]

Espere hasta que el sistema muestre el mensaje "System halted" para apagar la máquina. Si la función APM o ACPI han sido debidamente activadas en la BIOS y en Linux, el sistema se apagará por sí solo. Véase Gran cantidad de memoria y apagado automático, Sección 3.7.4 para más detalles.


4.1.6 Hora de jugar

Ahora ya está listo para jugar con Debian sin riesgos siempre y cuando utilice la cuenta sin privilegios penguin. [10]

Entremos al sistema como penguin. Si se encuentra en el indicador del intérprete de comandos del superusrio pulse Ctrl-D [11] para finalizar la sesión del root y volver al indicador de acceso. Ingrese su nombre de usuario recientemente creado penguin y su correspondiente contraseña. [12] Se le mostrará el siguiente indicador de comandos.

     penguin@loquesea:penguin$

De ahora en adelante y por simplicidad, en los ejemplos dados se utilizará un indicador de comandos simplificado:

Primero, comenzaremos a aprender Debian de la manera fácil Midnight Commander (MC), Sección 4.2 y luego de la manera adecuada Entorno de trabajo tipo Unix, Sección 4.3.


4.2 Midnight Commander (MC)

Midnight Commander (MC) es la "navaja suiza" GNU para la consola de Linux y otros entornos de terminales. Ofrece al principiante un menú desplegable en la consola que es mucho más fácil de aprender que los comandos Unix estándar.

Use este comando para explorar su sistema Debian. Esta es la mejor manera de aprender. Explore la ubicación de algunas teclas usando las teclas de desplazamiento y la tecla Intro:


4.2.1 Mejorar MC

Para que MC al salir se posicione en el directorio de trabajo, se necesita modificar el archivo ~/.bashrc (o el /etc/bash.bashrc, que es llamado desde .bashrc), como se explica en su página de manual mc(1) bajo la opción -P. [13]


4.2.2 Iniciar MC

     $ mc

MC se encarga de todas las operaciones con archivos mediante menús requiriendo de un mínimo esfuerzo por parte del usuario. Puede jugar con MC simplemente pulsando las teclas de desplazamiento y las de función. [14]


4.2.3 Administrar archivos con MC

Por defecto, se tienen dos paneles con el listado de archivos de un directorio. Otro modo útil consiste en configurar la ventana derecha para que muestre toda la información referente a los archivos: permisos, tamaño, etc. Los siguientes son algunas teclas esenciales. Con el demonio gpm ejecutándose es posible también usar el ratón. Asegúrese de presionar la tecla Mayús para cortar y pegar en el MC.


4.2.4 Trucos para la línea de comandos:


4.2.5 Editor

El editor interno sigue un esquema de cortar-y-pegar muy interesante. Con F3 se marca el comienzo de una selección, un segundo F3 marca el fin de la misma y resalta el área elegida. A continuación se puede mover el cursor. Si pulsa F6 el área seleccionada se ubicará donde está el cursor. Presionando F5 el área se copiará e insertará en dicha posición. F2 grabará el archivo. Con F10 se sale del editor. La mayoría de las teclas de desplazamiento funcionan en forma intuitiva.

Este editor se puede iniciar directamente junto con un archivo:

     $ mc -e nombre_archivo_a_editar
     $ mcedit nombre_archivo_a_editar

Si bien no se trata de un editor multiventana se pueden usar múltiples consolas Linux para lograr el mismo efecto. Para copiar entre ventanas, utilice las teclas Alt-Fn para alternar entre las consolas virtuales y use "Archivo->Insertar archivo" o "Archivo->Copiar a archivo" para mover una porción de un archivo en otro archivo.

El editor interno se puede reemplazar por cualquier editor externo de su preferencia.

Asimismo, muchos programas usan las variables de entorno EDITOR o VISUAL para decidir qué editor usar. Si no se siente cómodo con vim, iguale estas variables a mcedit añadiendo las siguientes líneas al ~/.bashrc:

     ...
     export EDITOR=mcedit
     export VISUAL=mcedit
     ...

En lo posible, es recomendable dejarlas en vim. Acostumbrarse con los comandos de vi(m) es proceder de forma correcta pués es un editor de uso habitual en el mundo Linux/Unix. [15]


4.2.6 Visor

Es un visor muy sofisticado. Es una excelente herramienta para buscar palabras en un documento. Siempre lo uso para los archivos del directorio /usr/share/doc. Esta es la manera más rápida de navegar por la inmensa cantidad de información de Linux. Este visor se puede arrancar directamente de la siguiente manera:

     $ mc -v nombre_archivo

(Obsérvese que algunos paquetes no respetan esta convención y almacenan sus documentos en /usr/doc)


4.2.7 Inicio automático de programas

Pulse Enter sobre un archivo y el programa apropiado manejará el contenido del archivo. Esta es una característica muy útil del MC.

     ejecutable:           Ejecuta el programa
     man, archivo html:    Deriva el contenido a un visor
     tar, gz, archivo rpm: Permite ver su contenido incluyendo subdirectorios

Para que esto funcione, los archivos no deben ser ejecutables. Cambie su estado usando el comando chmod mediante el menú 'Archivo' del MC si fuese necesario.


4.2.8 Sistema de archivos virtuales FTP

Se puede usar el MC para acceder a archivos que se encuentran en Internet via FTP. Vaya al menú presionando F9 luego pulse `p' para activar el sistema de archivos virtual FTP. Ingrese la URL de la siguiente manera nombre_usuario:contraseña@nombre_servidor.nombre_dominio y se verá al directorio remoto como si fuera local.

Pruebe con http.us.debian.org/debian como URL y navegue por el sistema de archivos de Debian. Consulte Los archivos Debian, Sección 2.1 para ver cómo se encuentran organizados.


4.3 Entorno de trabajo tipo Unix

Aunque MC le permite hacer prácticamente todo, es muy importante que aprenda a usar las herramientas de la línea de comandos invocadas desde el intérprete de comandos y familiarse con el entorno de trabajo del tipo Unix. [16]


4.3.1 Combinaciones de teclas habituales

En entornos Unix, existen algunas combinaciones de teclas que tienen un significado especial. [17]

El intérprete de comandos predeterminado, bash, permite la edición del histórico de comandos y el completado con tabulador para un uso interactivo.

Otras combinaciones de teclas importantes para recordar:

Para usar el ratón en la consola de caracteres Linux necesita que gpm se ejecute como demonio. [19] Véase Configuración del ratón, Sección 3.3.


4.3.2 Comandos Unix básicos

Aprendamos algunos comandos Unix básicos. [20] Pruebe los siguientes comandos desde la cuenta de usuario no privilegiado penguin :

Navegue por los distintos directorios e investige el sistema utilizando los comandos anteriores a modo de entrenamiento. Si tiene dudas sobre algún comando en particular, lea la página del manual. Por ejemplo, los siguientes comandos son un buen comienzo:

     $ man man
     $ man bash
     $ man ls

Sería también oportuno empezar con vim y pulsar la tecla F1. Debería leer por lo menos las primeras 35 líneas. Luego realice el entrenamiento en línea desplazando el cursor hasta |tutor| y presionando Ctrl-]. Véase Editores, Capítulo 11 para aprender más sobre editores.

Obsérvese que muchos comandos Unix incluyendo los de GNU y BSD muestran una breve información de ayuda si se los invoca de alguna de las siguientes maneras (o, en algunos casos, sin ningún argumento):

     $ nombre_comando --help
     $ nombre_comando -h

Pruebe también los ejemplos de Trucos para Debian, Capítulo 8 como autoaprendizaje.


4.3.3 Ejecución de comandos

Ahora que sabe cómo usar un sistema Debian analicemos con más profundidad el mecanismo de ejecución de comandos. [27]


4.3.4 Comandos sencillos

Un comando sencillo es una sucesión de

  • asignación de variables (opcional)

  • nombre del comando

  • argumentos (opcional)

  • redirección (opcional: > , >> , < , << , etc.)

  • operadores de control (opcional: && , || ; <nuevalinea> , ; , & , ( , ) )

  • Para comandos más complejos con comillas y susbstituciones, véase Tratamiento de la línea de comandos, Sección 13.2.6.


    4.3.5 Ejecución de comandos y variables de entorno

    La ejecución de un comando típico es del tipo: [28]

         $ date
         Sun Oct 26 08:17:20 CET 2003
         $ LC_ALL=fr_FR date
         dim oct 26 08:17:39 CET 2003
    

    En este caso, el programa date se ejecuta como tarea en segundo plano. La variable de entorno LC_ALL esta:

    La ejecución de la mayoría de los comandos generalmente no necesitan una definición previa de una variable de entorno. Para el ejemplo anterior, se puede ejecutar alternativamente:

         $ LC_ALL=fr_FR
         $ date
         dim oct 26 08:17:39 CET 2003
    

    Como puede comprobar en este caso, la salida del comando se ve afectada por la variable de entorno provocando la salida en francés. Si desea que la variable de entorno sea heredada por un subproceso (por ejemplo, cuando se llama a un script del intérprete de comandos) necesitará, en cambio, "exportarla" de la siguiente manera:

         $ export LC_ALL
    

    4.3.6 Búsqueda en la ruta de comandos

    Cuando escribe un comando en el intérprete de comandos, éste lo busca en la lista de directorios que se encuentran en la variable de entorno PATH. El valor de la variable de entorno PATH se denomina ruta de búsqueda del intérprete de comandos.

    En una instalación predeterminada de Debian la variable de entorno PATH generalmente no incluye a /sbin/ en las cuentas de los usuarios. Por lo tanto si desea ejecutar comandos tales como ifconfig de /sbin/, deberá modificar la variable de entorno PATH para incluirlo. Generalmente, la variable de entorno PATH se inicializa en el archivo ~/.bash_profile, véase Configuración del bash, Sección 3.2.


    4.3.7 Opciones de la línea de comandos

    Algunos comandos usan argumentos. Los argumentos que comienzan con - o -- se denominan opciones y controlan el comportamiento del comando.

         $ date
         Mon Oct 27 23:02:09 CET 2003
         $ date -R
         Mon, 27 Oct 2003 23:02:40 +0100
    

    En este caso el argumento -R modifica el comportamiento del comando date para que la salida sea RFC-2822 compatible.


    4.3.8 Comodines del intérprete de comandos

    A menudo se desea que un comando funcione sobre un grupo de archivos sin tener que escribir a todos ellos. La expansión de los nombres de archivo que utiliza los comodines del intérprete de comandos facilita esta tarea.

    Por ejemplo, pruebe y analice los siguientes ejemplos:

         $ mkdir cosa; cd cosa; touch 1.txt 2.txt 3.c 4.h .5.txt
         $ echo *.txt
         1.txt 2.txt
         $ echo *
         1.txt 2.txt 3.c 4.h
         $ echo *.[hc]
         3.c 4.h
         $ echo .*
         . .. .5.txt
         $ echo .[^.]*
         .5.txt
         $ echo [^1-3]*
         4.h
         $ cd ..; rm -rf cosa
    

    4.3.9 Valor devuelto por un comando

    Cada comando devuelve, como valor de retorno, el estado de su salida.

    El valor devuelto se puede conocer mediante la variable $? del intérprete de comandos justo después de la ejecución.

         $ [ 1 = 1 ] ; echo $?
         0
         $ [ 1 = 2 ] ; echo $?
         1
    

    Obsérvese que el valor devuelto es utilizado por el intérprete de comandos en su contexto lógico, a éxito se trata como el valor lógico TRUE. No es muy intuitivo pues éxito corresponde al valor cero.

    Véase Operadores condicionales del shell, Sección 13.2.5.


    4.3.10 Secuencia de comandos típica

    Intententemos recordar las siguientes secuencias de comandos del intérprete de comandos. Véase Parámetros del intérprete de comandos, Sección 13.2.3, Redireccionamiento del shell, Sección 13.2.4, Operadores condicionales del shell, Sección 13.2.5 y Tratamiento de la línea de comandos, Sección 13.2.6 tras su lectura.


    4.3.10.1 comando &

    Se ejecuta el comando en segundo plano. Las tareas en segundo plano permiten a los usuarios ejecutar múltiples programas en un único intérprete de comandos.

    La administración de los procesos en segundo plano implica el uso de los comandos incorporados del shell jobs, fg, bg y kill. Lea las secciones de la página del manual de bash(1) bajo los títulos "SIGNALS", "JOB CONTROL" y "SHELL BUILTIN COMMANDS". [29]


    4.3.10.2 comando1 | comando2

    La salida estándar del comando1 es dirigida a la entrada del comando2 . Ambos comandos pueden estar ejecutándose en forma concurrente. Esto se llama tubería.


    4.3.10.3 comando1 ; comando2

    El comando1 y comando2 se ejecutan en forma secuencial.


    4.3.10.4 comando1 && comando2

    Se ejecuta el comando1. Si lo hace correctamente, también se ejecuta el comando2 en forma secuencial. Devuelve un valor verdadero si ambos comandos comando1 y comando2 se ejecutan correctamente.


    4.3.10.5 comando1 || comando2

    Se ejecuta el comando1. Si no se ejecuta correctamente, se ejecuta el comando2 en forma secuencial. Devuelve un valor verdadero si el comando1 o el comando2 se ejecuta correctamente.


    4.3.10.6 comando > loquesea

    Redirige la salida estándar del comando al archivo loquesea (se sobreescribe su contenido)


    4.3.10.7 comando >> loquesea

    Redirige la salida estándar del comando al archivo loquesea (se añade a su contenido)


    4.3.10.8 comando > loquesea 2>&1

    Redirige tanto la salida como el error estándar del comando al archivo loquesea.


    4.3.10.9 comando < loquesea

    Redirije la salida estándar del comando al archivo loquesea. Pruebe:

         $ </etc/motd pager
          ... (el mensaje de bienvenida)
         $ pager </etc/motd
          ... (el mensaje de bienvenida)
         $ pager /etc/motd
          ... (the greetings)
         $ cat /etc/motd | pager
          ... (el mensaje de bienvenida)
    

    Aunque las 4 sintaxis muestran lo mismo, el último ejemplo ejecuta un comando cat extra y consume recursos sin sentido.


    4.3.11 Alias de comandos

    Puede asignar un alias a un comando que utiliza a menudo. Por ejemplo:

         $ alias la='ls -la'
    

    A partir de ahora, la funciona como abreviatura de ls -la que lista todos los archivos utilizando el formato detallado.

    Puede averigüar la ruta exacta o identidad de un comando haciendo type comando. Por ejemplo:

         $ type ls
         ls is hashed (/bin/ls)
         $ type la
         la is aliased to `ls -la'
         $ type echo
         echo is a shell builtin
         $ type archivo
         archivo is /usr/bin/file
    

    En este caso ls ha sido recientemente buscado mientras que file no, de esta manera ls ha sido "indexado", es decir, el shell tiene un registro interno para acceder rápidamente a la ubicación del comando ls.


    4.4 Procesamiento de texto al estilo Unix

    Existen algunas herramientas de procesamiento estándar de uso habitual en sistemas tipo Unix.

    Véase Sustitución de expresiones regulares, Sección 8.6.13, Pequeños scripts que incluyen tuberías, Sección 8.6.18 y La locura de los script cortos en Perl, Sección 8.6.20 para algunos scripts de ejemplo.


    4.4.1 Expresiones regulares

    Las expresiones regulares se utilizan en diversas herramientas de procesamiento de textos. Son análogas a los comodines del intérprete de comandos (véase Comodines del intérprete de comandos, Sección 4.3.8), aunque más complicadas y poderosas.

    Una expresión regular describe un patrón de coincidencia y está formada por caracteres y metacaracteres. Un metacarácter es simplemente un carácter con un significado especial. Existen dos estilos principales BRE y ERE, dependiendo de las herramientas de texto como se describe en Procesamiento de texto al estilo Unix, Sección 4.4.

    Para las EREs, los metacaracteres incluyen "\ . [ ] ^ $ * + ? ( ) { } |". Significado de algunas expresiones regulares:

    En las BREs los metacaracteres "+ ? ( ) { } |" pierden su significado especial si se los antecede con barras invertidas "\+ \? \( \) \{ \} \|". Por lo tanto, en las BREs el agrupamiento (r1|r2) necesita escribirse \(r1|r2\). Aunque básicamente BRE, emacs trata a "+ ?" como metacaracteres no es necesario escaparlos. Véase Expresiones de reemplazo, Sección 4.4.2 para ver cómo se usan las agrupaciones.

    Por ejemplo, se puede utilizar grep para realizar la búsqueda de un texto usando la expresión regular:

         $ egrep 'GNU.*LICENSE|Yoyodyne' /usr/share/common-licenses/GPL
                             GNU GENERAL PUBLIC LICENSE
                             GNU GENERAL PUBLIC LICENSE
           Yoyodyne, Inc., hereby disclaims all copyright interest in the program
    

    4.4.2 Expresiones de reemplazo

    En una expresión de reemplazo, los siguientes caracteres tienen un significado especial:

    En Perl, se utiliza $n en vez de \n y & no tiene un significado especial.

    Por ejemplo:

         $ echo zzz1abc2efg3hij4 | \
           sed -e 's/\(1[a-z]*\)[0-9]*\(.*\)$/=&=/'
         zzz=1abc2efg3hij4=
         $ echo zzz1abc2efg3hij4 | \
           sed -e 's/\(1[a-z]*\)[0-9]*\(.*\)$/\2===\1/'
         zzzefg3hij4===1abc
         $ echo zzz1abc2efg3hij4 | \
           perl -pe 's/(1[a-z]*)[0-9]*(.*)$/$2===$1/'
         zzzefg3hij4===1abc
         $ echo zzz1abc2efg3hij4 | \
           perl -pe 's/(1[a-z]*)[0-9]*(.*)$/=&=/'
         zzz=&=
    

    En este caso preste atención al estilo de las expresiones regulares entre paréntesis y cómo se utilizan las cadenas coincidentes en el proceso de reemplazo de texto en las diferentes herramientas.

    Estas expresiones regulares también se pueden utilizar para reemplazo de texto y movimientos del cursor en los editores.

    Lea todas las páginas del manual para aprender estos comandos.


    4.5 Sistema de archivos tipo Unix

    En GNU/Linux y sistemas tipo Unix, los archivos se organizan en directorios. [30] Todos los archivos y directorios se distribuyen en un gran árbol formando la jerarquía de archivos que cuelga de /.

    Los archivos y directorios pueden encontrarse en distintos dispositivos. El comando mount(8) permite anexar el sistema de archivos situado en un determinado dispositivo al árbol de archivos principal. Por otra parte, el comando umount(8) permite desmontarlo.


    4.5.1 Fundamentos sobre los archivos Unix

    Veamos:

    Las mejores prácticas detalladas sobre la jerarquía de archivos se describen en el Filesystem Hierarchy Standard. Tenga presente lo siguiente:


    4.5.2 El concepto de sistema de archivos en Debian

    Siguiendo la tradición Unix, el sistema Debian proporciona un sistema de archivos donde los datos físicos de los discos duros y otros sistemas de almacenamiento , y la interacción con los dispositivos de hardware tales como consolas locales y remotas se representan de una manera unificada.

    En un sistema Debian cada archivo, directorio, tubería con nombre o dispositivo físico tiene una estructura de datos denominada ínodo que describe sus atributos asociados, tales como el usuario propietario del mismo, el grupo al cual pertenece, hora y fecha del último acceso, etc. Véase /usr/include/linux/fs.h para una definición exacta de struct inode en un sistema Debian GNU/Linux.

    Esta representación unificada de las entidades físicas es muy poderosa puesto que nos permite usar el mismo comando para la misma clase de operación en dispositivos totalmente diferentes.

    Todos los archivos pueden estar en un mismo disco o en veinte algunos de los cuales pueden estar conectados en diferentes máquinas de una red. No es posible deducirlo mirando simplemente al árbol de directorios y prácticamente todos los comandos funcionan de la misma manera independientemente del/de los dispositivo(s) físicos en los que realmente se encuentran los mismos.


    4.5.3 Permisos de acceso de archivos y directorios

    Los permisos de acceso de los archivos y directorios se definen en forma separada para las siguientes tres categorías de usuario:

    Para un archivo, cada permiso permite:

    Para un directorio, cada permiso permite:

    El permiso de ejecución de un directorio permite no sólo la lectura de sus archivos sino la posibilidad de ver los atributos de los mismos tales como tamaño y fecha y hora de modificación.

    Para mostrar la información referente a los permisos de archivos y directorios se utiliza el comando ls. Véase ls(1). Cuando se invoca ls con la opción -l, se muestra la siguiente información :

    Para cambiar el propietario de un archivo se utiliza chown desde la cuenta de superusuario. Para cambiar el grupo al que pertenece un archivo se utiliza chgrp desde la cuenta del propietario del archivo o desde la cuenta de superusuario. Para cambiar los permisos de acceso de un archivo o de un directorio se utiliza chmod desde la cuenta del propietario del mismo o desde la cuenta de root. Veamos la sintaxis básica para manipular el archivo loquesea:

         # chown nuevo_usuario loquesea
         # chgrp nuevo_grupo loquesea
         # chmod  [ugoa][+-=][rwx][,...] loquesea
    

    Véase chown(1), chgrp(1) y chmod(1) para más detalles.

    Por ejemplo, para que el usuario quiensea sea propietario de un determinado directorio que sea compartido por el grupo loquesea, ejecute los siguientes comandos desde la cuenta de superusuario:

         # cd /determinada/ubicación/
         # chown -R quiensea:loquesea .
         # chmod -R ug+rwX,o=rX .
    

    Existen tres bits más para permisos especiales:

    Activando el ID usuario de un archivo ejecutable se permite a un usuario ejecutarlo con el ID del propietario del archivo (por ejemplo, el root). Análogamente, activando el ID grupo de un archivo ejecutable se permite a un usuario ejecutarlo con el ID del grupo del archivo (por ejemplo, el root). Puesto que estas activaciones pueden implicar riesgos en la seguridad del sistema se requiere proceder con cautela.

    Activando el ID grupo de un directorio se habilita el esquema de creación de archivos del tipo BSD donde todos los archivos que se crean en el directorio pertenecen al grupo del directorio.

    Activando el bit adherente en un directorio, se evita que un usuario que no es propietario de un archivo lo pueda eliminar del mismo. Para asegurar el contenido de un archivo en directorios donde todo el mundo puede escribir como en /tmp no sólo se debe desactivar el permiso de escritura del archivo sino también activar el bit adherente del directorio. Caso contrario, el archivo puede ser borrado por un usuario que tenga permiso de escritura en el directorio, al crear un nuevo archivo con el mismo nombre.

    Veamos algunos ejemplos interesantes sobre permisos de archivos:

         $ ls -l /etc/passwd /etc/shadow /dev/ppp /usr/sbin/pppd
         crw-rw----    1 root     dip      108,   0 Jan 18 13:32 /dev/ppp
         -rw-r--r--    1 root     root         1051 Jan 26 08:29 /etc/passwd
         -rw-r-----    1 root     shadow        746 Jan 26 08:29 /etc/shadow
         -rwsr-xr--    1 root     dip        234504 Nov 24 03:58 /usr/sbin/pppd
         $ ls -ld /tmp /var/tmp /usr/local /var/mail /usr/src
         drwxrwxrwt    4 root     root         4096 Feb  9 16:35 /tmp
         drwxrwsr-x   10 root     staff        4096 Jan 18 13:31 /usr/local
         drwxrwsr-x    3 root     src          4096 Jan 19 08:36 /usr/src
         drwxrwsr-x    2 root     mail         4096 Feb  2 22:19 /var/mail
         drwxrwxrwt    3 root     root         4096 Jan 25 02:48 /var/tmp
    

    Usando el comando chmod(1) existe un modo alternativo de asignar permisos a los archivos Este método utiliza entre 3 y 4 números escritos en octal (base 8). Cada dígito corresponde a:

    Suena complicado pero en realidad es bastante sencillo. Si observa las primeras columnas (2-10) de la salida del comando ls -l y lee sus permisos en representación binaria (base 2) (con "-" igual a "0" y "rwx" igual a "1") le resultará familiar los permisos de archivo en representación octal (base 8). [33] Por ejemplo pruebe:

         $ touch loquesea loquefuera
         $ chmod u=rw,go=r loquesea
         $ chmod 644 loquefuera
         $ ls -l loquesea loquefuera
         -rw-r--r--    1 penguin  penguin  0 Nov  3 23:30  loquesea
         -rw-r--r--    1 penguin  penguin  0 Nov  3 23:30  loquefuera
    

    Se puede definir la máscara de permisos predeterminada usando el comando umask que viene con el shell. Véase builtins(7).


    4.5.4 Marcas de tiempo

    En un archivo GNU/Linux existen tres tipos de marcas de tiempo:

    Obsérvese que ctime no indica la fecha y hora de creación del archivo.

    Obsérvese que en un sistema Debian la simple lectura de un archivo provocará una operación de escritura para actualizar la información referente a atime en el ínodo. Montando un sistema de archivos con la opción noatime hará que el sistema omita esta operación lo que resultará en un acceso de lectura más rápido. Véase mount(8).

    Utilice el comando touch(1) para modificar las marcas de tiempo de los archivos existentes.


    4.5.5 Enlaces

    Existen dos métodos de asociar un archivo loquesea con un nombre de archivo diferente loquefuera.

    Veamos en el siguiente ejemplo los cambios en el conteo de enlaces y las sutiles diferencias en el resultado del comando rm.

         $ echo "Contenido original" > loquesea
         $ ls -l loquesea
         -rw-r--r--    1 osamu    osamu           4 Feb  9 22:26 loquesea
         $ ln loquesea loquefuera     # enlace duro
         $ ln -s loquesea loquesea3  # enlace simbólico
         $ ls -l loquesea loquefuera loquesea3
         -rw-r--r--    2 osamu    osamu           4 Feb  9 22:26 loquefuera
         lrwxrwxrwx    1 osamu    osamu           3 Feb  9 22:28 loquesea3
         -> loquesea
         -rw-r--r--    2 osamu    osamu           4 Feb  9 22:26 loquesea
         $ rm loquesea
         $ echo "Nuevo contenido" > loquesea
         $ cat loquefuera
         Contenido original
         $ cat loquesea3
         Nuevo contenido
    

    Como se muestra en el ejemplo de arriba, un enlace simbólico tiene un permiso de acceso nominal "rwxrwxrwx" y un permiso de acceso efectivo dictado por los permisos del archivo al que apunta.

    El directorio . apunta al propio directorio, por lo tanto el conteo de enlaces en un directorio nuevo comienza en 2. El directorio .. apunta al directorio padre, por lo tanto el conteo de enlaces del directorio aumenta al añadir nuevos subdirectorios.


    4.5.6 Tuberías con nombre (FIFOs)

    Una tubería con nombre es un archivo que actúa como una tubería. Uno añade algo al archivo y sale por el otro extremo. Es por eso que se denomina FIFO o First-In-First-Out: lo primero que dirige a la tubería es lo primero que sale por el otro extremo.

    Si se escribe a una tubería con nombre, el proceso que escribe a la tubería no finaliza hasta que la información escrita es leída de la tubería. Si se lee desde una tubería con nombre, el proceso de lectura espera hasta que exista algo para leer antes de finalizar. El tamaño de la tubería es siempre cero --- no almacena datos, sólo vincula dos procesos al igual que el | del shell. No obstante, puesto que la tubería tiene nombre, los dos procesos no tienen que estar en la misma línea de comandos ni tampoco ser ejecutados por el mismo usuario.

    Puede comprobarlo haciendo lo siguiente:

         $ cd; mkfifo mitubería
         $ echo "hola" >mitubería & # poner en segundo plano
         [1] 5952
         $ ls -l mitubería
         prw-r--r--    1 penguin penguin  0 2003-11-06 23:18 mitubería
         $ cat mitubería
         hola
         [1]+  Done                    echo hola >mitubería
         $ ls mitubería
         prw-r--r--    1 penguin penguin  0 2003-11-06 23:20 mitubería
         $ rm mitubería
    

    4.5.7 Sockets

    Un socket permite a los procesos intercambiar información y es similar a una tubería con nombre (FIFO). En el caso de los sockets estos procesos no necesitan estar ejecutándose simultáneamente ni ser hijos de un mismo proceso padre. Es el extremo final de la comunicación entre procesos. El intercambio de información puede ocurrir en la red entre diferentes máquinas.


    4.5.8 Archivos de dispositivo

    Los archivos de dispositivo se refieren a dispositivos virtuales o físicos del sistema, tales como discos duros, tarjetas de video, pantalla o teclado. Un ejemplo de dispositivo virtual es la consola, representado por /dev/console.

    Existen dos tipos de dispositivos:

    Es posible leer archivos de dispositivos, aunque puede que contengan datos binarios que resulten incomprensibles a los humanos. A veces resulta útil escribir datos directamente en estos archivos para resolver problemas relacionadas con el hardware. Por ejemplo, se puede volcar un archivo de texto al dispositivo de impresión /dev/lp0 o enviar comandos al módem desde el puerto serie /dev/ttyS0 . Pero, salvo que se realice esta tarea con cuidado, puede que se produzca un desastre mayor. Por lo tanto, sea prudente.


    4.5.8.1 /dev/null etc.

    /dev/null es un archivo de dispositivo especial que descarta todo lo que se escribe en él. Si no desea algo, arrójelo a /dev/null. Básicamente se trata de un agujero negro. Al leer /dev/null se obtiene inmediatamente un carácter de finalización de archivo (EOF).

    /dev/zero es similar, salvo que al leerlo se obtiene el carácter \0 (no es igual al número ASCII cerp). Véase Archivos fantasma, Sección 8.6.34.


    4.5.8.2 Número de nodo de dispositivo

    El número de nodo de dispositivo se muestra al ejecutar ls:

         $ ls -l /dev/hda /dev/ttyS0 /dev/zero
         brw-rw----    1 root     disk       3,   0 Mar 14  2002 /dev/hda
         crw-rw----    1 root     dialout    4,  64 Nov 15 09:51 /dev/ttyS0
         crw-rw-rw-    1 root     root       1,   5 Aug 31 03:03 /dev/zero
    

    Here,

    Anteriormente, el proceso de instalación creaba los nodos de dispositivos mediante el comando /sbin/MAKEDEV. Véase MAKEDEV(8).

    Actualmente, el sistema de archivos situado en /dev se llena automáticamente por el sistema de archivos de dispositivos similar al sistema de archivos /proc.


    4.5.9 Sistema de archivos /proc

    El sistema de archivos /proc es un seudo sistema de archivos que contiene información sobre el sistema y sus procesos en ejecución.

    A menudo hay quienes entran en pánico cuando detectan la presencia de un archivo - el /proc/kcore - que, generalmente, es enorme. Este archivo es, básicamente, una copia del contenido de la memoria de su máquina. Se utiliza para depurar el kernel. En realidad, no existe de modo que no hay que preocuparse por su tamaño.

    Véase Poniendo a punto al kernel mediante el sistema de archivos proc, Sección 7.3 y proc(5).


    4.6 Sistema X Window

    Véase El programa X, Sección 9.4.


    4.6.1 Iniciar el sistema X Window

    El sistema X Window se puede iniciar en forma automática con el demonio de acceso gráfico xdm o desde la consola escribiendo lo siguiente

         $ exec startx
    

    4.6.2 Menú en el sistema X Window

    Puesto que el entorno X puede utilizar distintos administradores de ventana su interfaz de usuario puede variar considerablemente. . Recuerde que al hacer clic derecho en la ventana principal aparecerá un menú que siempre está disponible.

    Si no encuentra las entradas en el menú, instale los paquetes correspondientes. Véase Fundamentos de la administración de paquetes Debian Debian, Sección 6.2.


    4.6.3 Combinaciones de teclas para el sistema X Window

    Las siguientes son combinaciones de teclas importantes a tener en cuenta cuando se ejecuta el sistema X Window.


    4.7 Para saber más

    Por el momento, recomiendo leer los libros fundamentales de The Linux Documentation Project: Guides:

    Véase Suporte para Debian, Capítulo 15 para más recursos de aprendizaje.


    [ anterior ] [ Contenidos ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ siguiente ]


    Guía de referencia Debian

    CVS, jue ene 18 11:52:44 UTC 2007

    Osamu Aoki osamu#at#debian.org
    Coordinador de la traducción al español: Walter O. Echarri wecharri#at#infovia.com.ar
    Autores, Sección A.1