administraciÓn del sistema linux - los teatinos · 2015. 12. 10. · 1.2. navegación básica por...

38
1 Jesús Fernández Toledo www.losteatinos.es ADMINISTRACIÓN DEL SISTEMA LINUX 1. Estructura de Directorio 1.1. Árbol de directorio en sistemas Linux 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado de archivos y directorios 1.2.3. Copiar y mover archivos y directorios 1.2.4. Búsqueda find /locate 2. Comandos principales en un sistema Linux 2.1. Comandos generales básicos 2.2. Permisos sobre ficheros 2.3. Comandos para administrar la red 3. Administración de usuarios y grupos 3.1. Usuarios. Ficheros /etc/passwd y /etc/shadow 3.1.1. Comandos para la creación/modificación/eliminación de usuarios. 3.2. Grupos. Ficheros /etc/group y /etc/gshadow 3.3. Directorio /etc/skel 4. Búsqueda de información del Sistema. 4.1. Directorio /proc 4.2. Comandos útiles para obtener información del sistema 5. Anexos Anexo I.- Utilización de comodines

Upload: others

Post on 28-Sep-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

1 Jesús Fernández Toledo www.losteatinos.es

ADMINISTRACIÓN DEL SISTEMA LINUX

1. Estructura de Directorio

1.1. Árbol de directorio en sistemas Linux

1.2. Navegación básica por el árbol de directorios

1.2.1. Creación de archivos y directorios

1.2.2. Borrado de archivos y directorios

1.2.3. Copiar y mover archivos y directorios

1.2.4. Búsqueda find /locate

2. Comandos principales en un sistema Linux

2.1. Comandos generales básicos

2.2. Permisos sobre ficheros

2.3. Comandos para administrar la red

3. Administración de usuarios y grupos

3.1. Usuarios. Ficheros /etc/passwd y /etc/shadow

3.1.1. Comandos para la creación/modificación/eliminación de usuarios.

3.2. Grupos. Ficheros /etc/group y /etc/gshadow

3.3. Directorio /etc/skel

4. Búsqueda de información del Sistema.

4.1. Directorio /proc

4.2. Comandos útiles para obtener información del sistema

5. Anexos

Anexo I.- Utilización de comodines

Page 2: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

2 Jesús Fernández Toledo www.losteatinos.es

1 ESTRUCTURA DE DIRECTORIO

.1. Árbol de Directorio en Sistemas Linux

Linux organiza la información del sistema en una estructura de árbol jerárquico de

directorios compuesta por ficheros. Esta estructura se forma mediante un sistema de

ficheros raíz y un conjunto de ficheros montables.

Un sistema de ficheros es una estructura de directorios compleja. Para poder utilizar un

sistema de directorios hay que montarlo, o sea enlazarlo a una estructura de directorios ya

existente. Al iniciar el sistema el usuario se encontrara con un árbol de directorio formado

por los distintos sistemas de ficheros que se encuentran montados en ese instante.

Page 3: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

3 Jesús Fernández Toledo www.losteatinos.es

/bin: Comando y binarios del usuario

/boot: Archivos utilizados para el arranque del sistema

/dev: Archivos de dispositivos

/etc: Ficheros de configuración del sistema

/home: Directorio de trabajo de los usuarios

/lib: bibliotecas compartidas y módulos del kernel necesarios para ejecutar los programas

residentes en /bin y/sbin

/media: Directorio donde se suelen encotrar los dispositivos extraíbles, como CD-ROM o

USB

/mnt: Directorio donde se suelen montar sistemas de archivos temporales

/proc: Directorio virtual donde podemos ver toda la información sobre el kernel, los

procesos del sistema y el hardware instalado

/root: Directorio de trabajo del Administrador del Sistema

/sbin: Binarios del sistema que suele ejecutar el root.

/tmp: Donde se encuentran los ficheros temporales del sistema

/usr: Utilidades, bibliotecas y aplicaciones de usuario

.2. Navegación básica por el Árbol de Directorios

El intérprete de comandos o Shell del sistema es la interfaz entre el usuario y el sistema

operativo. Su función es la de recibir órdenes del usuario, a través de la línea de comandos,

interpretarlas, ejecutarlas y mostrar su resultado. Nos permite interactuar directamente con el

sistema y sus ficheros de configuración.

Tras iniciar el sistema nos aparecerá un terminal que permitirá “logearnos” en el sistema,

introduciendo nombre de usuario y contraseña. Tras esto aparecerá un prompt con el

siguiente aspecto:

usuario@ubuntu:~$

Donde:

Usuario: Nombre del usuario

@ubuntu: Nombre del equipo

~: Directorio donde nos encontramos (:~ significa que estamos en nuestro home)

$/#: El símbolo $ indica que es un usuario normal # indica que es el administrador

Page 4: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

4 Jesús Fernández Toledo www.losteatinos.es

En Linux disponemos de varias Shell bash, ash, csh, Zsh, ksh, tcsh, siendo la más utilizada la

bash. Si tecleamos bash en la consola, se crea un Shell hijo.

Linux proporciona por defecto seis terminales de texto de Control+Alt+F1 a Control+Alt+F6. Si

queremos volver al modo gráfico lo hacemos con Alt+F7.

Los comandos principales para navegar por el árbol de directorios son: cd, ls y pwd

cd ruta

La ruta puede ser:

Absoluta: si comienza por / y se le da la ruta completa

Relativa: a partir del directorio actual, usando ../ o ./

ls lista el contenido de un directorio. Parámetros interesantes ls –a

Con un . delante del fichero lo ocultamos. Pero como oculto realmente un fichero si no quiero

que lo vea nadie. Lo meto en una carpeta con los siguientes permisos chmod go –rwx carpeta

pwd: ¿dónde estoy?

1.2.1 Creación de archivos y directorios

mkdir: pemite crear directorios. –p crea una jerarquía de directorios en un solo paso

touch, cat, gedit, nano, vi, vim, joe: Crean un nuevo fichero

Los permisos que se dan por defecto a un fichero o directorio creado por defecto vienen

indicados por umask. Para ver el valor actual teclearemos umask en la línea de comandos. La

salida será cuatro cifras en octal, que “definen los permisos que se deniegan”. Por defecto el

valor suele ser 0022.

Si creamos un nuevo fichero, este debería tener los siguientes permisos 0666, pero al ser

umask 0022 el resultado es 0666-0022=0644 (rw-r--r-- )

Si creamos un directorio los permisos por defecto serian 0777. Al tener umask un valor de

0022 el resultado es 0777-0022=0755 (rwxr-xr-x)

Con el comando umask puedo cambiar la máscara temporalmente

Con el comando stat nombre_fichero se puede ver más en profundidad datos del archivo

1.2.2 Borrado de archivos y directorios

rmdir: permite borrar directorios. Tiene que estar vacio. Soporta el parámetro -p

rm: eliminación de ficheros y directorios. Con la opción –r borra directorios aunque no esté

vacío.

Page 5: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

5 Jesús Fernández Toledo www.losteatinos.es

1.2.3 Copiar y mover archivos y directorios

cp: copia ficheros y directorios.

cp fichero1 fichero2 ¡¡¡ Ojo si fichero2 existe se lo carga!!! Con –i me avisa en caso de

sobrescribir.

No puede copiar una carpeta en otra directamente. Hay que copiar el contenido de forma

recursiva utilizando -r

mv: mueve o renombra ficheros.

mv fichero1 carpeta1. Si es en el mismo directorio renombra

1.2.4 Búsqueda find / locate

Si utilizamos find sin ningún parámetro buscara todos los ficheros bajo el directorio actual. Si

deseamos buscar en un directorio determinado, lo especificamos como primer argumento.

Ej.- find /home

El parámetro –name permite buscar ficheros que coincidan con el patrón dado

Ej.- find ~ -name “*firefox*”

El problema de find es que puede tardar mucho en hacer una búsqueda. Hay veces que es

mucho más rápido si utilizamos locate, locate solo permite buscar ficheros y directorio (que es

lo que deseare buscar normalmente.)

Page 6: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

6 Jesús Fernández Toledo www.losteatinos.es

2 COMANDOS PRINCIPALES EN UN SISTEMA LINUX

2.1 Comandos generales básicos

startx iniciar modo gráfico

halt, shutdown –h now, init 0 apagar la máquina

reboot reiniciar

date fecha y hora actual

clear limpiar la pantalla

who que usuarios están conectados al sistema.

ps, top muestra por pantalla un listado de los procesos que se están ejecutando en el

sistema.

apt-get instalar, desinstalar paquetes, actualizar los repositorios.

Man, help muestra la página de ayuda de un comando

2.2 Permisos sobre ficheros

En Linux todos los archivos pertenecen obligatoriamente a un usuario y a un grupo. Cuando un

usuario crea un nuevo archivo, el propietario del archivo será el usuario que lo ha creado y el

grupo del archivo será el grupo principal de dicho usuario.

Ejemplo, si un usuario llamado 'pepe' cuyo grupo principal es el grupo 'profesores' crea un

nuevo archivo, el propietario del archivo será 'pepe' y el grupo propietario del archivo será

'profesores', o lo que es lo mismo, el archivo pertenecerá al usuario pepe y al grupo

profesores. Obligatoriamente, todos los archivos del sistema pertenecen a algún usuario y a

algún grupo.

Con el comando ls añadiendo la opción -l (modificador) podemos visualizar el usuario

propietario y el grupo propietario del archivo, ejemplo:

Cada fichero (directorio, unidad, dispositivo) en Linux tiene una serie de permisos que indica

quien puede leer, escribir o realizar acciones de ejecución sobre él.

Lectura: pueden ver el contenido, copiarlo…

Escritura: cambiar ficheros, directorios, borrarlo…

Ejecución: Programas: ejecutarlos Directorio: acceso

Page 7: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

7 Jesús Fernández Toledo www.losteatinos.es

Los permisos vienen indicados por las letras rwx.

r: lectura

w: escritura

x: ejecución

Además cada fichero pertenece a un usuario y a un grupo. Estos tres permisos se asignan para:

el usuario

el grupo

el resto del sistema.

Primer bloque: permisos del propietario

Segundo bloque: el grupo

Tercer bloque: el resto de usuarios.

Page 8: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

8 Jesús Fernández Toledo www.losteatinos.es

El comando chmod permite modificar los permisos sobre los ficheros. Existen dos métodos

para usarlo:

Con Número en octal chmod 777 pepe quedaria rwxwrxwrx

chmod 721 pepe quedaría rwx-w---x

Un número en octal se representa por 3 en binario. 011 =3. Con lo que para cada

bloque tendremos un número en octal que representa si tiene o no un permiso.

- La ausencia de permiso se representa con un 0

- Tener un permiso se representa con un 1

EJEMPLO:

Si quiero que el usuario tenga los tres permisos rwx 111 = 7

Si quiero que el grupo que tenga solo permisos de lectura r-- 100=4

Si deseo que el resto del sistema no quiero que tenga ningún permiso --- 000 = 0

Quedando el comando: chmod 740 fichero

Con letras augo (todos usuario grupo otros) + - rwx

a All u User g Group o Others

Con + añadimos Con – quitamos Con = forzamos

chmod g +rw, o –rwx

chmod ugo=rwx -> todo activado

Page 9: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

9 Jesús Fernández Toledo www.losteatinos.es

Los sistemas de fichero de Windows no soportan propietarios o grupos de ficheros. Podemos

especificar un propietario por defecto (wid=) y/o grupo (gid=). Además la entrada umask

permite asignar por defecto privilegios de acceso.

chown: cambia el propietario de un fichero

Sintaxis: chown nuevousuario archivo1 [ archivo2 archivo3...]

chown -R nuevousr directorio

Cambia el propietario para que pase a ser nuevousr a directorio, todos los archivos y

subdirectorios contenidos en él, cambiándolos también de forma recursiva en todos

ficheros de los subdirectorios.

chgrp: Ídem pero para el grupo

2.3 Comandos para administrar la red

Ifconfig muestra la configuración de red de la máquina.

ping muestra si dos máquinas están comunicadas.

route muestra puerta de enlace.

Pasos para Configurar la conexión a internet de la máquina de forma manual Paso 1. Configurar la IP

ifconfig eth0 192.168.1.1 netmask 255.255.255.0

En el primer paso simplemente asignamos la IP y la máscara de subred a una interface, donde

“eth0″ es el nombre de la interface.

La interface es lo mismo que la tarjeta de red. Si sólo tienes una tarjeta de red lo más probable

es que sea eth0.

Hay otra opción para hacer este paso y es escribiendo el comando de esta forma “ifconfig eth0

192.168.1.1/24″, esta es otra forma de asignar la máscara de subred, lo que hacemos es decir

que nuestra mascara de subred es de 24 bits, es decir el equivalente a 255.255.255.0.

Paso 2. Configurar GateWay

Page 10: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

10 Jesús Fernández Toledo www.losteatinos.es

route add default gw 192.168.1.1

Agregamos nuestro default gateway o router, cualquier paquete que sea dirigido a una

IP fuera de nuestra red será enviado al router.

Paso 3. Configurar DNS

echo nameserver 192.168.1.200 > /etc/resolv.conf

En el tercer paso usamos una forma elegante de agregar nuestro DNS. El archivo

/etc/resolv.conf contiene las direcciones de los servidores dns, es un archivo de texto normal,

otra forma de hacer este paso es abrir el archivo en un editor de texto y agregar la línea

“nameserver 192.168.1.200″ manualmente. Sin embargo de esta forma es más fácil y creativa.

Lo que hacemos es anexar la línea mencionada anteriormente usando el “>” que ven en el

comando.

Después de hacer esto les recomiendo reiniciar los servicios de red. En algunas distribuciones

de linux el comando es “service network restart” o “/etc/init.d/network restart”.

Puedes reiniciar la red utilizando dhclient, es más fácil de recordar

Por ejemplo:

Imaginemos que los datos que necesitamos configurar en nuestra interfaz son:

IP : 192.168.53.226

Netmask : 255.255.255.0

Puerta de enlace : 192.168.53.1

Ahora nos toca configurarla, recuerda que se hace con permisos de Root en la mayoría de

los casos.

1. Configurando ip

sudo ifconfig eth0 192.168.53.226

2. Configurando Mascara de red

sudo ifconfig eth0 netmask 255.255.255.0

Recuerda que el paso 1 y 2 se puede hacer en uno solo:

sudo ifconfig eth0 192.168.53.226 netmask 255.255.255.0

o bien

sudo ifconfig eth0 192.168.53.226/24

Page 11: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

11 Jesús Fernández Toledo www.losteatinos.es

3. Ahora la puerta de enlace.

sudo route add default gw 192.168.53.1 eth0

Para ver si nuestra configuración esta ok ejecutamos:

jesus@ubuntu:~$ ifconfig eth0

eth0 Link encap:Ethernet HWaddr 00:0D:88:17:D3:1D

inet addr:192.168.53.228 Bcast:192.168.53.255 Mask:255.255.255.0

Y para ver la puerta de enlace:

jesus@ubuntu:~$ route

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

default 192.168.53.1 0.0.0.0 UG 0 0 0 eth0

Con estos pasos ya tenemos configurada una ip fija en nuestra tarjeta de red.

Recuerda que esta configuración durara sólo hasta que reinicies tu Linux ya que

por defecto está habilitado el DHCP, para ello hay que modificar el archivo

/etc/network/interfaces

Para editarlo lo hacemos de la siguiente forma

sudo nano /etc/network/interfaces

Si queremos asignar una ip tendremos que modificar lo que aparece en el campo donde nos

indica el nombre de la interface, en este caso eth0

Así puede aparecer

auto eth0

iface eth0 inet dhcp

Como comentamos anteriormente por defecto podemos encontrar que la interface está

configurada para DHCP y como queremos ahora configurarla en forma estática tendremos

que modificar dhcp por static de la siguiente forma:

auto eth0

iface eth0 inet static

Bien, ahora le entregaremos los datos de ip, máscara y puerta de enlace, siguiendo con el

ejemplo anterior y en modo de ejemplo utilizaremos los datos del ejercicio anterior.

Page 12: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

12 Jesús Fernández Toledo www.losteatinos.es

IP : 192.168.53.226

Netmask : 255.255.255.0

Puerta de enlace : 192.168.53.1

Entonces queremos agregar estos datos en nuestro archivo de configuración

/etc/network/interfaces, para esto tendremos que agregar después de la linea static lo

siguiente.

address 192.168.53.228

netmask 255.255.255.0

gateway 192.168.53.1

Para terminar nuestra configuración de la interface eth0 quedaría así.

auto eth0

iface eth0 inet static

address 192.168.53.228

netmask 255.255.255.0

gateway 192.168.53.1

Ahora reinicia tu sistema o bien reinicia la red de la siguiente forma.

sudo /etc/init.d/networking restart (Para reiniciar red)

o bien

reboot (Para reiniciar Sistema)

Page 13: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

13 Jesús Fernández Toledo www.losteatinos.es

3. ADMINISTRACION DE USUARIOS Y GRUPOS

Linux es un sistema operativo multiusuario, lo que permite que varios usuarios estén

utilizando el sistema simultáneamente a través de la línea de comandos o conexiones

remotas. Por lo tanto es necesario disponer de una base de datos de usuarios y grupos

donde poder asignar o denegar permisos de acceso a los recursos autenticados del

sistema. Ello permitirá personalizar los entornos de trabajo de cada usuario, ya que en

los entornos de trabajo tenemos por costumbre personalizar nuestros equipos con

carpetas, fondos de escritorio, accesos directos, …

La administración de usuarios y grupos solamente puede realizarlas el usuario root utilizando

los comandos de gestión de usuarios y ficheros para tal fin.

3.1 Usuarios. Ficheros /etc/passwd - /etc/shadow

En Linux hay tres tipos de usuarios. Todos los usuarios tienen un identificador de usuario (UID)

y un identificador de grupo (GID).

root: es el usuario más importante ya que es el administrador y dueño del sistema.

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 el sistema. Instala software en el sistema. Puede modificar o reconfigurar el kernel, controladores, etc.

Usuarios normales: pueden iniciar la sesión y tienen una funcionalidad limitada tanto en los

comandos que puede utilizar como en los ficheros a los que tiene acceso.

Se usan para usuarios individuales. En las distros actuales de Linux se les asigna generalmente un UID superior a 1000,

aunque es configurable. 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 sudo.

Usuarios asociados a servicios (usuarios especiales): No pueden iniciar sesión en el

sistema. Permiten establecer los permisos de un determinado servicio. Ej.- El servidor de

páginas web tiene asociado un usuario para poder especificar que ficheros tiene asociados,

y por lo tanto que ficheros son visibles a través de internet.

Page 14: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

14 Jesús Fernández Toledo www.losteatinos.es

Ejemplos: bin, daemon, adm, lp, sync, shutdown, mail, operator, squid, apache, etc.

Generalmente se les asigna un UID entre 1 y 1000 (definido en /etc/login.defs), salvo para el usuario nobody al que se le asigna el último UID posible, el 65534.

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. Esto es para proteger al sistema de posibles formas de vulnerar la seguridad.

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 (generalmente) automáticamente al momento de la instalación de Linux o de la aplicación.

Fichero /etc/passwd

Es el fichero que se utiliza para administrar a los usuarios. Es un fichero de texto con una

entrada para cada cuenta, la cual incluye, el nombre de login, el ID del usuario, el ID del grupo

primario, el directorio del usuario y el Shell por defecto. También pueden incluir detalles tales

como nombre, apellidos, número de teléfono.

Ejemplo de una entrada en /etc/passwd

pepe:x:1000:1000:Jose; Garcia;;:/home/pepe:/bin/bash

1 campo - Nombre de usuario: Nombre para logearse el usuario.

2 campo - Contraseña: Aquí va la contraseña encriptada. En la mayoría de los sistema aparece

una x indica que la contraseña se encuentra en /etc/shadow. Si aparece en blanco el usuario

puede entrar sin contraseña.

3 campo - UID: Identificado univoco dentro de Linux. El 0 para root. Del 1 al 999 cuentas del

sistema. Los números UID menores que 999 se reservan para usuarios especiales del sistema.

Del UID 1000 en adelante se usan para usuarios normales.

4 campo - GID: Identificador del grupo. Los números GID menores que 100 se reservan para

grupos especiales del sistema.

5 campo - Información Adicional: Varias palabras separadas por ; utilizadas para describir al

usuario (Nombre;Apellidos;Numero de teléfono)

6 campo - Directorio HOME: En caso de usuarios normales /home/nombre_usuario. Los

pseudo usuarios tienen su propio directorio de trabajo por ejemplo, el usuario impresora lp

tiene /var/spool/lpd

7 campo -Shell: intérprete de comandos que se carga al iniciar el usuario, normalmente

/bin/bash

Page 15: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

15 Jesús Fernández Toledo www.losteatinos.es

Este fichero tiene los siguientes permisos de ejecución 0644, los que significa que cualquier

usuario puede acceder a él y leerlo. Si se almacenara en el las contraseñas cualquier usuario

podría acceder al fichero y desencriptarlas.

Por ello para guardar las contraseñas se utiliza el fichero /etc/shadow el cual pertenece al root

y al grupo shadow, evitando q el resto de usuarios acceda a este fichero.

Fichero /etc/shadow

Anteriormente (en sistemas Unix) las contraseñas cifradas se almacenaban en el mismo /etc/passwd. El problema es que 'passwd' es un archivo que puede ser leído por cualquier usuario del sistema, aunque solo puede ser modificado por root. Con cualquier computadora potente de hoy en día, un buen programa de descifrado de contraseñas y paciencia es posible "crackear" contraseñas débiles (por eso la conveniencia de cambiar periódicamente la contraseña de root y de otras cuentas importantes). El archivo 'shadow', resuelve el problema ya que solo puede ser leido por root. Considérese a 'shadow' como una extensión de 'passwd' ya que no solo almacena la contraseña encriptada, sino que tiene otros campos de control de contraseñas.

En cada línea de este fichero encontramos la siguiente información:

pepe:$1$8mspOWwL$w54sVYLP1/hxvEljZEGek0:15990:0:99999:7:::

1 campo - Nombre de usuario: El mismo que aparece en /etc/passwd

2 campo – Contraseña: Contraseña cifrada o encriptada. Si está vacío el campo el usuario no

tiene contraseña. Si tiene “*LK*”, la cuenta está bloqueada. “*RETIRED*”, si la cuenta esta

retirada. Si tiene “*” la contraseña se pondrá más tarde. Si contiene “!” cuenta todavía no está

activa. Si deseamos deshabilitar temporalmente una cuenta, debemos poner delante de la

contraseña un signo de exclamación !.

3 campo - Último cambio: La fecha del último cambio de contraseña medida en días desde

01.01.1970

4 campo - Edad min: Número de días que deben transcurrir hasta que la contraseña se pueda

volver a cambiar. Un 0 indica que se puede cambiar ya.

5 campo – Edad max: Número de días tras los cuales hay que cambiar la contraseña. (-1 significa nunca). A partir de este dato se obtiene la fecha de expiración de la contraseña. 99999 es lo máximo que se puede poner.

6 campo - Aviso: Número de días antes de la expiración de la contraseña en que se le avisará al

usuario al inicio de la sesión.

7 campo - Periodo de Gracia: Cuanto tiempo permito trabajar al usuario una vez caducada su

contraseña.

Page 16: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

16 Jesús Fernández Toledo www.losteatinos.es

8 campo - Validez: Fecha en la que caduca la cuenta, medida en días desde 01.01.1970. Si el

campo está en blanco la cuenta no expira nunca.

9 campo – Reservado: Un capo reservado para usos en el futuro

Solo son obligatorios el campo nombre y contraseña, siendo los demás opcionales.

Mediante el comando chage, podemos modificar las opciones: Edad min/max, Aviso, Periodo

de Gracia, Validez.

Sintaxis: chage –E aaaa-mm-dd nombre_usuario

Los algoritmos de encriptación más utilizados en Linux son:

DES (ya en desuso por su poca seguridad)

MD5: si empieza por $1$

SHA-256: si empieza por $5$. PERTENECIENTES A

SHA-512: si empieza por $6$. SHA-2

salt → caracteres que se añaden de forma aleatoria, de manera que dos contraseñas iguales no den el mismo resultado, una vez encriptadas.

Comando para crear las contraseñas: mkpassw

mkpasswd es una herramienta que nos va a permitir generar hashes para nuestras contraseñas. Se encuentra disponible en el paquete whois, así que, si no lo tenemos, lo instalamos:

# apt-get install whois

Una función criptográfica hash -usualmente conocida como “hash”- es un algoritmo

matemático que transforma cualquier bloque arbitrario de datos en una nueva serie de

caracteres con una longitud fija. Independientemente de la longitud de los datos de entrada, el

valor hash de salida tendrá siempre la misma longitud.

Para ver los métodos de cifrado que podemos utilizar, ejecutamos:

# mkpasswd -m help

Para crear una contraseña cifrada, por ejemplo con cifrado sha-512, ejecutamos en un terminal:

# mkpasswd -m sha-512

El programa nos pedirá la contraseña. La introducimos y automáticamente nos devolverá un hash con dicha contraseña cifrada. Lo copiamos y ya podemos utilizarlo donde sea necesario.

Page 17: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

17 Jesús Fernández Toledo www.losteatinos.es

Fichero/etc/login.defs

En el archivo de configuración /etc/login.defs están definidas las variables que controlan los aspectos de la creación de usuarios y de los campos de shadow usadas por defecto. Algunos de los aspectos que controlan estas variables son:

Número máximo de días que una contraseña es válida PASS_MAX_DAYS

El número mínimo de caracteres en la contraseña PASS_MIN_LEN

Valor mínimo para usuarios normales cuando se usa useradd UID_MIN

El valor umask por defecto UMASK

Si el comando useradd debe crear el directorio home por defecto CREATE_HOME

Algoritmo para la encriptación de la contraseña, “ENCRYPT METHOD SHA512”.( si vamos a permitir o no la encriptación con el algoritmo MD5, “MD5_CRYT_ENAB no”).

Basta con leer este archivo para conocer el resto de las variables que son autodescriptivas y ajustarlas al gusto. Recuérdese que se usaran principalmente al momento de crear o modificar usuarios con los comandos useradd y usermod.

Fichero /etc/shells

El fichero de shells contiene una lista de shells válidos. Si la shell de usuario no está en este fichero, o bien el usuario tiene la shell , /bin/false, no puede acceder al sistema mediante login.

3.1.1. Comandos para la creación/modificación/eliminación de usuarios

Creación de usuarios

adduser

Añade un nuevo usuario al sistema. Al ejecutarlo nos ira pidiendo una serie de datos para completar la información de la cuenta, como, pide contraseña de usuario, comentarios o nombre completo del usuario, teléfono móvil, teléfono fijo, y tras ello, al contrario de useradd, el usuario ya estaría activo.

El comportamiento del comando adduser se configura mediante el fichero /etc/adduser.conf

Sintaxis: adduser [opciones] usuario adduser [opciones] usuario grupo

Opciones: --ingroup nomgrupo

Crea al usuario con nomgrupo como grupo principal. --gid num_gid

Igual que la anterior pero usando el GID del grupo en vez del nombre.

Page 18: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

18 Jesús Fernández Toledo www.losteatinos.es

--home directorio Hace que el directorio sea el directorio personal del usuario, en vez del directorio por defecto /home/nombre_usuario

Argumentos

Usuario Añade el usuario al sistema con el nombre que se le indique.

Grupo Añade el usuario, que debe existir previamente, al grupo, que también debe existir, como grupo secundario.

# adduser juan profesores // añade juan al grupo profesores ya creado

previamente pero si luego queremos borrar grupo primario juan no se

podría. (En este habría que crear el usuario y el grupo previamente)

Mejor usar:

adduser juan -ingroup profesores //así podemos borrar grupo

primario

Cambiar la máscara de creación de directorios home

Configurando un equipo que va a manejar múltiples usuarios, nos encontramos con la

necesidad cambiar el comportamiento por defecto (en Debian/ubuntu) para la forma en que

se crean los nuevos usuarios. Ubuntu crea los directorios de usuario en /home y con una

máscara 0755. Sin embargo, para nuestro caso utilizar la máscara 0700.

El archivo de configuración ubicado en /etc/adduser.conf permite modificar estas opciones.

Deberemos modificar el valor de la variable DIR_MODE=700, la cual permite a los nuevos

usuarios crearán su carpeta con dichos privilegios.

Además deseamos que no cree nuevos grupos cada vez que se crea un usuario, (el caso más

común) los usuarios pertenecerán al grupo con GID 100 (users). Primero hay que hacer la

variable "USERGROUPS=no", finalmente verificar que "USERS_GID=100" hace referencia al

grupo deseado.

useradd

Añade un nuevo usuario al sistema, con el nombre de usuario que especifiquemos.

IMPORTANTE: NO CREA LA CARPETA DE USUARIO EN /home, por lo tanto usar para SAMBA

o para usos que no necesiten crear carpetas en directorio /home

Sintaxis:

useradd [opciones] [nombre de usuario]

Opciones:

Page 19: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

19 Jesús Fernández Toledo www.losteatinos.es

Si se deja en blando toma las opciones por defecto

-c añade un comentario al momento de crear al usuario, campo 5 de /etc/passwd

-d Especifica el directorio inicial del usuario. Suele ser /home/nombre_usuario. Campo 6 de /etc/passwd

-s Especifica el shell del usuario. Si no se especifica será /bin/bash.

-g Especifica el grupo primario del usuario (GID). Campo 4 /etc/passwd

-G Especifica los grupos secundarios del usuario, separados por ,

-M

-m

Especifica que no se cree un directorio de inicio para el usuario

Crea directorio de inicio /home/usuario y le pone todos los subdirectorios

y ficheros que haya en /etc/skel

-e Especifica la fecha de expiración de la cuenta. Formato AAAA-MM-DD, campo 8 de /etc/shadow

-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.

-u Especifica el identificador de usuario para el usuario. Si no se indica esta opción, automáticamente se establece el siguiente número disponible a partir del último usuario creado.

En este caso es necesario introducir mediante las opciones toda la información necesaria para

su configuración. El usuario estará deshabilitado hasta que le demos una clave.

# useradd juan

Se creará el usuario y su grupo, así como las entradas correspondientes en /etc/passwd, /etc/shadow y /etc/group. La cuenta por defecto se crea desactivada, hay que activarla con passwd juan. No se creará el directorio de inicio o de trabajo: /home/juan 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, así que prácticamente lo único que faltaría sería añadir la contraseña del usuario (por defecto añade ! en el fichero shadow) y algún comentario o identificación de la cuenta. Las opcion con '-c' es posible establecer el comentario, campo 5 de /etc/passwd

# useradd -c "Juan Perez Hernandez" juan

Siempre el nombre del usuario es el último parámetro del comando. Asi por ejemplo, si queremos salirnos del default, podemos establecer algo como lo siguiente:

# useradd -d /usr/juan -s /bin/csh -u 800 -c "Juan Perez Hernandez" juan

Con lo anterior estamos cambiando su directorio de inicio, su shell por defautl sera csh y su UID será el 800 en vez de que el sistema tome el siguiente número disponible.

Page 20: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

20 Jesús Fernández Toledo www.losteatinos.es

/etc/default/useradd

Contiene los valores por defecto a la hora de añadir un usuario al sistema con el comando useradd.

Modificación de usuarios

usermod

Como su nombre lo indica, usermod permite modificar o actualizar un usuario o cuenta ya existente.

Sintaxis:

usermod [opciones] usuario

Sus opciones más comunes o importantes son las siguientes:

-c c añade o modifica el comentario, campo 5 de /etc/passwd

-d -d modifica el directorio de trabajo o home del usuario, campo 6

de /etc/passwd

-e -e cambia o establece la fecha de expiración de la cuenta, formato AAAA-

MM-DD, campo 8 de /etc/shadow

-g -g cambia el número de grupo principal del usuario (GID), campo 4 de /etc/passwd

-G -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 -u cambia el UID del usuario.

-U -U desbloquea una cuenta previamente bloqueada con la opción -L.

Argumento:

Usuario

Elimina el grupo con el nombre que se le indique como argumento.

Page 21: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

21 Jesús Fernández Toledo www.losteatinos.es

Ejemplo: Si quisiéramos cambiar el nombre de usuario de 'sergio' a 'sego':

# usermod -l sego sergio

Casi seguro también cambiará el nombre del directorio de inicio o HOME en /home, pero si no fuera así, entonces:

# usermod -d /home/sego sego

Otros cambios o modificaciones en la misma cuenta:

# usermod -c "supervisor de area" -s /bin/ksh -g 505 sego

Lo anterior modifica el comentario de la cuenta, su shell por defecto que ahora será Korn shell y su grupo principal de usuario quedó establecido al GID 505 y todo esto se aplicó al usuario 'sego' que como se observa debe ser el último argumento del comando.

El usuario 'sego' salió de vacaciones y nos aseguramos de que nadie use su cuenta:

# usermod -L sego

passwd: se utiliza para poder cambiar las contraseñas de los usuarios.

Este comando es necesario cuando creamos usuarios con useradd. 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:

# passwd sergio

Changing password for user prueba.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

#

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.

passwd tiene integrado validación de contraseñas comunes, cortas, de diccionario, etc. así que si por ejemplo intento como usuario normal cambiar mi contraseña a 'qwerty' el sistema me mostrará lo siguiente:

$ passwd

Changing password for user prueba.

New UNIX password:

BAD PASSWORD: it is based on a dictionary word

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

Page 22: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

22 Jesús Fernández Toledo www.losteatinos.es

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 PASSWORD: it is based on a dictionary word", 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 este tutorial se reduce a dos líneas de comandos para crear y dejar listo para trabajar a un usuario en Linux:

#> useradd ana

#> passwd ana

Se crea el usuario 'ana', 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. Asi de simple.

passwd tiene varias opciones que permiten bloquear la cuenta '-l', desbloquearla '-u', y varias opciones más que controlan la vigencia de la contraseña, es decir, es otro modo de establecer los valores de la cuenta en /etc/shadow.

Eliminación de usuarios

userdel

Como su nombre lo indica, userdel elimina una cuenta del sistema. Puede ser invocado de tres maneras:

# userdel sergio

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.

# userdel -r sergio

Al igual que lo anterior elimina la cuenta totalmente, pero con la opción -r además elimina su directorio de trabajo y archivos y directorios contenidos en el mismo, así como su buzón de correo, si es que estuvieran configuradas las opciones de correo. La cuenta no se podrá eliminar si el usuario esta logueado o en el sistema al momento de ejecutar el comando.

# userdel -f sergio

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, así que hay que usarla solo en casos muy extremos.

Page 23: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

23 Jesús Fernández Toledo www.losteatinos.es

Deluser

Se utiliza el comando deluser seguido del nombre del usuario y del nombre del grupo del que

queremos quitarle, ejemplo:

# deluser juan profesores // quita a juan del grupo profesores

/etc/deluser.conf

Contiene los valores por defecto cuando se eliminan usuarios con el comando deluser.

3.2 Grupos. Ficheros /etc/group y /etc/gshadow

Para poder administrar los permisos de los usuarios de una forma más flexible, el sistema Linux

permite la organización de usuarios en grupos y establecer permisos a los grupos.

Ejemplo: si en un centro educativo el grupo "profesores" tiene acceso a ciertas carpetas,

cuando demos de alta un profesor nuevo, tan solo tendremos que añadirle al grupo

"profesores" para que pueda acceder a todas esas carpetas. Es lo que se denomina

administración de permisos por grupos.

Todos los usuarios pertenecen al menos a un grupo que es el grupo principal del usuario,

también llamado grupo primario del usuario, pero pueden pertenecer a más grupos. En caso

de que pertenezcan a más grupos, éstos serán grupos secundarios.

Los grupos pueden contener varios usuarios. Los grupos de usuarios solo pueden contener

usuarios, nunca podrán contener a otros grupos.

Cada fichero creado en una maquina Linux, se asigna automáticamente a un grupo y a un

usuario. Los administradores pueden asignar permisos de manera separada para usuarios y

para grupos de cada archivo. La posibilidad de asignar múltiples usuarios a cada grupo facilita a

Page 24: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

24 Jesús Fernández Toledo www.losteatinos.es

esto usuarios el acceso a un determinado archivo o directorio. Ej.- grupo cdrom para asignar

permisos sobre la unidad.

Los usuarios puede pertenecer a todos los grupos que queramos, pero siempre tendrán un

grupo primario.

El grupo primario se ve en /etc/passwd y la pertenencia a cualquier otro grupo en /etc/group

Fichero /etc/group

Este archivo guarda la relación de los grupos a los que pertenecen los usuarios del sistema.

Cada usuario del sistema debe pertenecer obligatoriamente a un grupo principal o primario. El grupo principal o primario de cada usuario es el grupo cuyo GID viene en el fichero /etc/passwd.

Además un usuario puede pertenecer a otros grupos, llamados grupos secundarios, no es obligatorio aunque puede convenir para ciertos casos.

root:x:0:root

ana:x:1001:

sergio:x:1002:ventas,supervisores,produccion

cristina:x:1003:ventas,sergio

Cada una de las líneas representa un grupo y responde al esquema:

Campo 1 - grupo: es el nombre del grupo Campo 2 - contraseña: si aparece una x; la contraseña se encuentra cifrada en

/etc/gshadow. Si este campo aparece vacío, significa que el grupo no necesita contraseña.

Campo 3 - GID: nº de Identidad de Grupo (el cero se reserva para el grupo root) Campo 4 - lista_usuarios: Es opcional. Lista separada por comas de usuarios que

tienen a ese grupo como grupo secundario. Para saber si algún usuario tiene el grupo como primario deberíamos mirarlo en el fichero passwd. Actualmente al crear al usuario con useradd se crea también automáticamente su grupo principal de trabajo GID, con el mismo nombre del usuario. Es decir, si se añade el usuario 'sergio' también se crea el /etc/group el grupo 'sergio'.

Para añadir un nuevo usuario a un grupo, basta con agregarlo en la lista de usuarios (sin olvidar poner la coma de separación entre usuarios)

Fichero /etc/gshadow

Fichero donde se guardan las contraseñas de los grupos del sistema. Aunque las contraseñas no se utilicen para los grupos, es necesario el fichero para proteger al grupo. Al igual que shadow, solo root tiene permiso de lectura sobre el fichero. Cada línea del fichero tiene la siguiente estructura:

Page 25: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

25 Jesús Fernández Toledo www.losteatinos.es

nombre:contraseña

Nombre: nombre del grupo.

Contraseña: puede ser una contraseña encriptada o bien caracteres “*” o”!”, dependiendo de si queremos usar las contraseñas de grupo o no.

3.2.1. Comandos para la creación/modificación/eliminación de grupos

addgroup / groupadd: utilizado para crear grupos.

groupmod: utilizado para modificar un grupo.

El comando groupmod permite modificar el nombre de un grupo o el gid del mismo. La sintaxis

es:

# groupmod [-g nuevo-gid] [-n nuevo-nombre] nombre-grupo

// Cambiar el gid del grupo profesores

# groupmod -g 2000 profesores

groupdel: Utilizado para eliminar grupos.

3.3 Directorio /etc/skel

Cuando se crea una cuenta, a los usuarios se les asignan una serie de valores por defecto, por

ejemplo para la configuración de la Shell. Esta información se encuentra en /etc/skel. En el

caso de que añadamos un usuario de forma manual, deberemos copiar el contenido de

/etc/skel en el directorio home del nuevo usuario y le asignaremos los permisos

correspondientes.

Para ampliar ver archivo “El directorio skel.odt”

Page 26: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

26 Jesús Fernández Toledo www.losteatinos.es

4. INFORMACIÓN DEL SISTEMA

4.1. Directorio (/proc)

El kernel durante su arranque pone en funcionamiento un pseudofilesystem llamado

/proc, donde vuelca la información que recopila de la máquina, así como muchos de sus

datos internos. El directorio /proc está implementado sobre memoria y no se guarda en

disco. Los datos contenidos son tanto de naturaleza estática como dinámica (varían

durante la ejecución).

El directorio /proc es un caso extraño. Realmente no existe, sin embargo puedes

explorarlo. Sus archivos de tamaño 0 no son ni binarios ni textos, sin embargo puedes

examinarlos y desplegar su contenido.

Este directorio especial contiene todos los detalles de tu sistema Linux, incluyendo el

kernel, procesos y parámetros de configuración.

Bajo Linux, todo es administrado como un archivo; incluso los dispositivos son accedidos

como archivos (en el directorio /dev). El directorio /proc contiene una extraño tipo de

archivo: archivos virtuales. Estos archivos son listados, pero realmente no existen en disco;

el sistema operativo los crea al vuelo si tratas de leerlos.

El directorio /proc en sí mismo es creado cada vez que arrancas tu equipo. Se requiere ser

root para poder examinar completamente el directorio en su totalidad; algunos de los

archivos (tales como los relacionados a procesos) son propiedad del usuario que los

ejecutó. Y aunque casi todos los archivos son de solo lectura, hay algunos pocos con

permisos de escritura (notablemente en /proc/sys) que permiten realizar cambios en los

parámetros del kernel.

Una de las características interesantes es que en el directorio /proc podremos encontrar

las imágenes de los procesos en ejecución, junto con la información que el kernel maneja

acerca de ellos. Cada proceso del sistema se puede encontrar en el directorio /proc/pid-

proceso, donde hay un directorio con ficheros que representan su estado. Esta

información es útil para programas de depuración, o bien para los propios comandos del

sistema como ps o top, que pueden utilizarla para ver el estado de los procesos.

Organización del directorio /proc

El directorio /proc está organizado en directorios virtuales y subdirectorios, que agrupan

archivos de tópicos similares. Trabajando como root el comando ls /proc te despliega algo

como lo siguiente:

#> ls /proc

1 2432 3340 3715 3762 5441 815 devices modules

129 2474 3358 3716 3764 5445 acpi diskstats mounts

1290 248 3413 3717 3812 5459 asound dma mtrr

133 2486 3435 3718 3813 5479 bus execdomains partitions

1420 2489 3439 3728 3814 557 dri fb self

165 276 3450 3731 39 5842 driver filesystems slabinfo

166 280 36 3733 3973 5854 fs interrupts splash

2 2812 3602 3734 4 6 ide iomem stat

2267 3 3603 3735 40 6381 irq ioports swaps

Page 27: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

27 Jesús Fernández Toledo www.losteatinos.es

2268 326 3614 3737 4083 6558 net kallsyms sysrq-trigger

2282 327 3696 3739 4868 6561 scsi kcore timer_list

2285 3284 3697 3742 4873 6961 sys keys timer_stats

2295 329 3700 3744 4878 7206 sysvipc key-users uptime

2335 3295 3701 3745 5 7207 tty kmsg version

2400 330 3706 3747 5109 7222 buddyinfo loadavg vmcore

2401 3318 3709 3749 5112 7225 cmdline locks vmstat

2427 3329 3710 3751 541 7244 config.gz meminfo zoneinfo

2428 3336 3714 3753 5440 752 cpuinfo misc

Los directorios con números corresponden a cada proceso en ejecución. Algunos archivos

virtuales nos dan información sobre el hardware, tal como /proc/cpuinfo y

/proc/interrupts. Otros proporcionan información relacionada a los archivos, tales como

/proc/filesystems o /proc/partitions. Los archivos situados bajo /proc/sys son

relacionados a la configuración de parámetros del kernel.

Al ejecutar cat /proc/meminfo se nos mostrara en pantalla algo así:

# cat /proc/meminfo

MemTotal: 483488 kB

MemFree: 9348 kB

Buffers: 6796 kB

Cached: 168292 kB

......

Ejecuta el comando free. ¿Qué información te da?

Algunos otros archivos interesantes son:

/proc/apm: Provee información sobre "Advanced Power Management", si es que está

instalado. Es un API desarrollado por Intel y Microsoft que permita que la BIOS administre

la energía, tal como reducir la velocidad de la CPU, apagar el HD o apagar

el monitor después de un período de inactividad para conservar corriente eléctrica,

especialmente para las computadoras portátiles.

/proc/acpi: Un directorio similar al anterior que ofrece bastantes datos sobre el más

moderno ACPI (Advanced Configuration and Power Interface). ACPI es el sucesor de APM.

Por ejemplo, para ver si tu portátil está conectada a la corriente, puedes usar:

cat /proc/acpi/ac_adapter/AC/state

o en algunas distros

cat /proc/acpi/ac_adapter/ACAD/state,

Obtendrás "on line" o "off line".

/proc/cmdline: Muestra los parámetros que fueron pasados al kernel al momento del

arranque (boot time).

Page 28: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

28 Jesús Fernández Toledo www.losteatinos.es

root=/dev/disk/by-id/scsi-SATA_FUJITSU_MHS2040_NLA5T3314DW3-part3 vga=0x317

resume=/dev/sda2 splash=silent PROFILE=QuintaWiFi

/proc/cpuinfo: Muestra datos sobre el procesador de tu equipo. Por ejemplo

cat /proc/cpuinfo puede producir el siguiente listado:

processor : 0

vendor_id : AuthenticAMD

cpu family : 6

model : 8

model name : Mobile AMD Athlon(tm) XP 2200+

stepping : 1

cpu MHz : 927.549

cache size : 256 KB

/proc/loadavg: Un archivo relacionado al anterior que muestra la carga promedio del

procesador; su información incluye el uso de CPU en el último minuto, últimos cinco

minutos y últimos 15 minutos, así como el número de procesos actuales ejecutándose.

/proc/stat: También proporciona estadísticas, pero tomando en cuenta el último

(arranque).

/proc/uptime: Un archivo pequeño que solo tiene dos números: por cuantos segundos tu

sistema ha estado encendido, y cuantos segundos ha estado inactivo.

/proc/devices: Despliega todos los dispositivos actuales configurados y cargados de

caracter y bloque.

/proc/ioports: Te muestra información sobre las regiones usadas para comunicaciones de

E/S (I/O) de esos dispositivos.

/proc/dma: Muestra los canales "Direct Memory Access" en uso.

/proc/filesystems: Muestra cuáles tipos de sistemas de archivos (filesystems) están

soportados por tu kernel. Una posible salida seria:

nodev sysfs

nodev rootfs

nodev bdev

nodev proc

nodev cpuset

nodev ramfs

nodev hugetlbfs

nodev mqueue

ext3

ext4

nodev usbfs

ext2

nodev autofs

/proc/mounts: Muestra todos los "mounts" usados por tu máquina (la salida es muy

similar a /etc/mtab).

Page 29: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

29 Jesús Fernández Toledo www.losteatinos.es

/proc/partititons: muestra todas las particiones.

/proc/swaps: muestra el espacio swap.

/proc/net: Muestra toda la información de red. Describir cada archivo en este directorio

requeriría demasiado espacio, pero incluye dev (todos los dispositivos de red), varios

archivos relacionados al firewall iptables, estadísticas de red y sockets, información sobre

wireless y más….

Archivos relacionados con la RAM.

/proc/meminfo, datos del uso de la memoria.

/proc/iomem, que muestra cuanta memoria RAM ha sido utilizada por tu sistema.

/proc/kcore, que representa la memoria física de tu RAM. Muestra un tamaño que es

igual a la memoria RAM más una pequeña sobrecarga (ojo es binario).

Archivos relacionados con el Hardware.

Estos incluyen información muy específica que normalmente no es necesaria.

/proc/interrupts y /proc/irq, mapa de interrupciones hardware (IRQ) utilizadas.

/proc/pci, dispositivos PCI del sistema.

/proc/bus, directorio con información de los buses PCI y USB.

/proc/cpuinfo, información de la CPU.

/proc/ide, directorio de información del bus IDE, características de discos.

4.2 Comandos útiles para obtener información del sistema

Además de utilizar el directorio /proc, Linux provee múltiple comandos para conocer

información sobre el sistema. A continuación se muestra un listado con los más importantes:

uname: Imprime información del sistema

(Procesador instalado en el equipo)

#> uname -p

Intel(R) Core(TM) Duo CPU T2450 @ 2.00GHz

(versión del kernel)

#> uname -r

2.6.22.9-laptop-1mdv

Page 30: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

30 Jesús Fernández Toledo www.losteatinos.es

( toda la información de uname a través de la opción -a)

#> uname –a

Linux segolap 2.6.22.9-laptop-1mdv #1 SMP Thu Sep 27 04:17:10 CEST 2007 i686

Intel(R) Core

fdisk: permite manipular/crear particiones en Linux, pero tiene una interesante opción de

consulta, -l. esta opción me da información sobre los discos montados y sus particiones. Esta

opción solo puede ser utilizada por el root.

#> fdisk -l

Disk /dev/sda: 160.0 GB, 160041885696 bytes

255 heads, 63 sectors/track, 19457 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk identifier: 0x0002ecbc

Device Boot Start End Blocks Id System

/dev/sda1 * 1 63 506016 83 Linux

/dev/sda2 64 10261 81915435 83 Linux

/dev/sda3 10262 18929 69625710 83 Linux

/dev/sda4 18930 19457 4241160 5 Extended

/dev/sda5 18930 19457 4241128+ 82 Linux swap / Solaris

Disk /dev/sdb: 40.0 GB, 40007761920 bytes

255 heads, 63 sectors/track, 4864 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk identifier: 0x000063b0

Device Boot Start End Blocks Id System

/dev/sdb1 1 4863 39062016 c WXP FAT32 (LBA)

Podemos observar en este listado varios aspectos muy útiles, primero que tenemos dos

dispositivos conectados al sistema, /dev/sda y /dev/sdb, los dos son discos duros, el primero es

el propio del equipo y tiene varias particiones, incluso determinamos cual es la partición de

arranque que es /dev/sda1. El segundo dispositivo contiene una partición Windows como

podemos ver en la columna 'System' del último renglón 'WXP FAT32', que indiscutiblemente es

de Windows, no es una memoria flash por el tamaño (Disk /dev/sdb: 40.0 GB) mostrado. Así

que se trata de un disco duro externo.

Page 31: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

31 Jesús Fernández Toledo www.losteatinos.es

free: Se utiliza para ver el estado de la memoria ram y swap de nuestro sistema.

(la opción -m muestra el listado en megas)

#> free -m

total used free shared buffers cached

Mem: 2018 989 1028 0 39 450

-/+ buffers/cache: 500 1517

Swap: 4141 0 4141

La línea 'Mem:' es la memoría fisica RAM, que en este ejemplo tiene 2 GB de los cuáles

se están usando 989 megas, bastante razonable todavía, la línea 'Swap:' muestra la

partición de swap (lo que en Windows se le conoce como archivo de intercambio), que

generalmente se establece al doble de la RAM y que idealmente no debe estar usada,

como el ejemplo lo muestra. Cuando tu línea Swap muestra demasiado uso y casi nada

libre, tienes serios problemas de rendimiento, considera entonces en incrementar tu

RAM. Prueba con free -mt para ver una línea más al final con la suma de las dos Mem +

Swap.

mount: Comando que se utiliza para montar dispositivos, algo complejo y con múltiples

opciones. Si lo ejecutamos sin ninguna opción nos indica que tienes montado y en qué lugar

está montado.

#> mount

/dev/sda1 on /boot type ext3 (rw,noatime)

/dev/sda2 on / type ext3 (rw,noatime)

/dev/sda3 on /home type ext3 (rw,noatime)

none on /proc type proc (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/dev/sdb1 on /media/hd type vfat

(rw,nosuid,nodev,sync,users,umask=0022,iocharset=utf8)

Un pequeño análisis me permite determinar que en el equipo hay tres particiones sobre el

mismo disco duro (dispositivo /dev/sda), que son /boot (sda1), / (sda2), y /home (sda3), todas

son del tipo. Hay dos sistemas virtuales montados en /proc y otro dispositivo (/dev/sdb1)

accesible a través del directorio /media/hd y que es del tipo DOS FAT. Esta información se

complementa a la aportada por fdisk -l.

lspci: Lista los dispositivos PCI del sistema.

Page 32: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

32 Jesús Fernández Toledo www.losteatinos.es

#> lspci

00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and

945GT Express Memory Controller Hub (rev 03)

00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML

Express Integrated Graphics Controller (rev 03)

00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio

Controller (rev 02)

00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02)

00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller

#2 (rev 02)

00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller

(rev 02)

00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)

00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)

00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02)

00:1f.2 SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA AHCI

Controller (rev 02)

00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)

04:00.0 Ethernet controller: Broadcom Corporation NetLink BCM5787M Gigabit

Ethernet PCI Express (rev 02)

05:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network

Connection (rev 02)

06:00.0 FLASH memory: ENE Technology Inc ENE PCI Memory Stick Card Reader

Controller

06:00.1 Generic system peripheral [0805]: ENE Technology Inc ENE PCI SmartMedia /

xD Card Reader Controller

06:00.3 FLASH memory: ENE Technology Inc ENE PCI Secure Digital / MMC Card

Reader Controller

Tomemos una línea de ejemplo:

05:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network

Connection (rev 02)

Page 33: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

33 Jesús Fernández Toledo www.losteatinos.es

El primer campo (05:00.0) es el slot PCI donde se ubica el dispositivo bus 05 dispositivo

00 función 0, después sigue la clase de dispositivo (Network controller), el fabricante

(Intel Corporation), el nombre del dispositivo (PRO/Wireless 3945ABG Network

Connection) y el número de revisión del mismo (rev 02).

Esta información es útil por ejemplo para conocer cual es nuestra tarjeta Wireless y

descargar los drivers adecuados

Podemos obtener aun más información de cada dispositivo PCI con la opción -v y aun

más con -vv, asi que trata con lspci -vv y observa cuanto puedes lograr saber de cada

dispositivo.

lsusb: Lista los dispositivos usb del sistema.

#> lsusb

Bus 005 Device 004: ID 05e3:0702 Genesys Logic, Inc. USB 2.0 IDE Adapter

Bus 005 Device 003: ID 064e:a101 Suyin Corp.

Bus 005 Device 001: ID 0000:0000

Bus 001 Device 001: ID 0000:0000

Bus 002 Device 004: ID 062a:0003 Creative Labs

Bus 002 Device 001: ID 0000:0000

Bus 003 Device 001: ID 0000:0000

Bus 004 Device 001: ID 0000:0000

A simple vista no nos ofrece información muy interesante. Pero si usamos la opción -v,

nos devuelve más información

Por ejemplo supongamos que la cámara web de mi portátil no funciona, para buscar

los drivers o configuración adecuada podemos utilizar la opción -v

#> lsusb -v

...

Bus 005 Device 003: ID 064e:a101 Suyin Corp.

Device Descriptor:

bLength 18

bDescriptorType 1

Page 34: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

34 Jesús Fernández Toledo www.losteatinos.es

bcdUSB 2.00

bDeviceClass 239 Miscellaneous Device

bDeviceSubClass 2 Common Class

bDeviceProtocol 1 Interface Association

bMaxPacketSize0 64

idVendor 0x064e Suyin Corp.

idProduct 0xa101

bcdDevice 1.00

iManufacturer 2 SuYin

iProduct 1 Acer CrystalEye webcam

iSerial 3 CN0314-OV03-VA-R02.00.00

...

El listado es bastante largo, asi que lo muestro con lo relevante solamente, en el 'Bus

005 Device 003:' se encuentra algo llamado 'Suyin Corp', y viendo más detalle con -v

encuentro que es 'Acer CrystalEye webcam', asi que con esto se facilita la búsqueda en

Internet para conseguir los drivers.

blkid. Muestra los atributos del dispositivo de bloque.

#> blkid

/dev/sda1: UUID="d22801c6-85ca-11dc-849e-afde43df714c" SEC_TYPE="ext2"

TYPE="ext3"

/dev/sda2: UUID="ae22f1dc-85ca-11dc-acbd-cb4aee4dedb7" SEC_TYPE="ext2"

TYPE="ext3"

/dev/sda3: UUID="d3990398-85ca-11dc-aab5-4d80db2607e2" SEC_TYPE="ext2"

TYPE="ext3"

/dev/sda5: TYPE="swap" UUID="f6bfa9b2-85ca-11dc-abd6-01935478454b"

/dev/sdb1: LABEL="SEGO" UUID="46CD-5C01" TYPE="vfat"

dmidecode y lshw: Este comando lee la información directamente de la BIOS y nos muestra un

listado muy completo sobre el hardware encontrado. Por defecto muestra “demasiada

informaión” si deseamos una versión mas reducida utilizaremos –q. Si no tenemos instalado

dmicode podemos utilizar lshw, que básicamente nos muestra los mismos resultados.

Page 35: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

35 Jesús Fernández Toledo www.losteatinos.es

df: Nos muestra el uso del espacio en los discos duros.

# df

Filesystem Size Used Avail Use% Mounted on

/dev/sda2 77G 16G 58G 22% /

/dev/sda1 479M 21M 433M 5% /boot

/dev/sda3 66G 36G 30G 55% /home

/dev/sdb1 38G 24G 14G 64% /media/hd

df tiene la opción -h para ver el mismo listado mostrado en Megas o Gigas.

uptime: Muestra cuanto tiempo lleva encendido el sistema.

#> uptime

19:59:45 up 2:18, 2 users, load average: 1.14, 1.13, 1.09

Primero la hora actual, seguido de 'up 2:18', lo segundo indica el tiempo total que lleva

encendido (este campo puede cambiar a días, etc.), dos usuarios en el sistema y por

último la carga promedio del CPU (load average), en el último minuto, 5 y 15

respectivamente. Mientras más bajo este número es mejor

w: Muestra que usuarios están en el sistema y lo que están haciendo.

# w

20:07:12 up 2:25, 2 users, load average: 1.18, 1.12, 1.09

USER TTY LOGIN@ IDLE JCPU PCPU WHAT

root tty1 19:09 7:34 0.16s 0.16s -bash

sergio :0 17:43 ?xdm? 2:22m 0.06s /bin/sh /usr/bin/quanta

La primera línea de w es lo mismo que nos muestra uptime, a continuación nos dice

quienes son los dos usuarios en el sistema, en que terminal están 'TTY', si fuera desde

otro equipo mostraría la IP, la hora en que se loguearon 'LOGIN@', y la última columna

muestra lo que están ejecutando.

Como complemento de uptime y w podemos usar lo siguiente:

#> who -b

system boot 2008-01-13 17:41

Indica la fecha y hora en que el sistema inició.

Page 36: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

36 Jesús Fernández Toledo www.losteatinos.es

last y lastb:

last muestra un listado de los últimos usuarios logueados al sistema e información

relevante,

lastb (last bad), muestra los últimos intentos de logueo al sistema que fracasaron,

utilísimo para determinar posibles intentos de acceso ilegítimo al sistema (hackeo).

#> last

root tty1 Sun Jan 13 19:59 still logged in

sergon :0 Sun Jan 13 17:43 still logged in

reboot system boot 2.6.22.9-laptop- Sun Jan 13 17:41 (04:19)

root tty1 Sun Jan 13 00:23 - crash (17:18)

sergon :0 Sat Jan 12 23:56 - 00:48 (00:52)

reboot system boot 2.6.22.9-laptop- Sat Jan 12 23:55 (22:05)

sergon :0 Sat Jan 12 19:35 - down (00:57)

reboot system boot 2.6.22.9-laptop- Sat Jan 12 19:34 (00:59)

sergon :0 Sat Jan 12 17:41 - down (01:16)

reboot system boot 2.6.22.9-laptop- Sat Jan 12 17:40 (01:17)

sergon :0 Sat Jan 12 08:15 - 12:41 (04:25)

reboot system boot 2.6.22.9-laptop- Sat Jan 12 08:15 (04:26)

sergon :0 Fri Jan 11 22:11 - crash (10:03)

reboot system boot 2.6.22.9-laptop- Fri Jan 11 21:49 (14:51)

sergon :0 Thu Jan 10 22:12 - 22:36 (00:23)

reboot system boot 2.6.22.9-laptop- Thu Jan 10 22:11 (00:24)

Podemos ver que usuario se logueó, en que terminal, día, fecha y hora, a qué hora

terminó o si continua logueado (still logged in). Es posible también conocer por ejemplo

en las líneas que dice 'crash' que el sistema no se apagó adecuadamente.

#> lastb

# lastb

pedro 192.168.0.10 Sun Jan 13 22:04 - 22:04 (00:00)

Page 37: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

37 Jesús Fernández Toledo www.losteatinos.es

root tty2 Sun Jan 13 21:20 - 21:20 (00:00)

Con lastb obtenemos los intentos de logueo que fracasaron. Por ejemplo, en un sistema

real en producción donde no existiera el usuario 'pedro' resultaría obvio que alguien

está tratando de obtener acceso remoto, adivinando usuario:contraseña. Deberías

preocuparte enormemente y tomar acción, si en el listado de last observas un logueo

de root u otro usuario que tú como administrador sepas no debió entrar al sistema en

esas fechas u horas, o peor aun que se trata de tu ¡¡usuario!! y no habías ingresado

previamente. Con seguridad significa que ya te hackearon tu sistema o consiguieron tu

contraseña.

Page 38: ADMINISTRACIÓN DEL SISTEMA LINUX - Los Teatinos · 2015. 12. 10. · 1.2. Navegación básica por el árbol de directorios 1.2.1. Creación de archivos y directorios 1.2.2. Borrado

38 Jesús Fernández Toledo www.losteatinos.es

1. ANEXO I

Comodines

(~) Sustituye el directorio home de manera que:

~/comandos.txt equivale a /home/paco/comandos.txt (si estamos en nuestro propio directorio) ~pepe/comandos.txt equivale a /home/pepe/comandos.txt (pepe es otro usuario)

(?) Sustituye un solo carácter. Ejemplos:

ls p?pe

mostraría todos los ficheros cuyos 1º 3º y 4º caracteres fuesen p,p y e

ls ?epe

mostraría todos los ficheros de 4 caracteres y acabados en epe

(*) Sustituye cualquier sucesión de caracteres. Ejemplos:

ls .ba*

muestra todos los directorios o ficheros que comiencen con .ba

ls .*

muestra todos los archivos ocultos.

rm -r *

otra manera de desinstalar el sistema operativo.

rm *.jpg

borra todas las imágenes jpg

oggdec *.ogg

pasa de ogg a wav todos los ogg del directorio en el que estamos.

(;) Puesto entre dos comandos hace que tras el primero se ejecute el segundo. Ejemplos:

nano nuevo.txt ; cat nuevo.txt

nos abrirá el editor nano para que escribamos lo que queramos en un nuevo archivo que se llamará nuevo.txt y tras guardar y salir del editor,cat nos mostrará el contenido de lo que acabamos de crear.

sleep 5m ; xmms canción.mp3

tras 5 minutos se iniciará el xmms