Está en la página 1de 25

PRIMEROS PASOS EN LINUX

Nota: Los comandos ó directorios pueden variar ligeramente de unas distribuciones a


otras. Los especificados en este documento son válidos para distribuciones tipo RedHat o
Fedora.

Al arrancar un ordenador con el sistema operativo Linux existen dos


posibilidades para el entorno de trabajo:

 Un entorno de trabajo consistente en un terminal en modo texto con


línea de comandos. Este modo de trabajo, el más habitual hace no
demasiado tiempo, está siendo reemplazado por el entorno gráfico.
 Un entorno de trabajo gráfico basado en ventanas, denominado
XWindow, similar al que se puede encontrar en los sistemas
operativos Windows. Fedora incluye Gnome como entorno por
defecto al ser instalado, aunque se pueden instalar otros.

En cualquier caso, lo primero que hay que hacer para trabajar en el


ordenador es introducir un nombre de usuario y una contraseña válidos en
el sistema.

La instalación por defecto de Fedora 12 no permite el login directo con la


cuenta de administración (root), por lo que habrá que entrar con un usuario
del sistema (lo cual es una buena práctica). Cuando queramos acceder al
modo administrador para insertar comandos, utilizaremos el comando su en
una ventana de terminal, y nos pedirá la correspondiente contraseña. Si
estamos utilizando el entorno gráfico para la administración, y se necesitan
permisos de root, el sistema nos pedirá también la contraseña.

Para acceder a una ventana de comandos, deberemos ir al menú


"Aplicaciones -> Herramientas del sistema -> Terminal":

1
Como resumen, en Fedora 12 entraremos con un usuario del sistema, que
habremos dado de alta durante la instalación, al entorno de ventanas.
Luego, para insertar comandos, utilizaremos una ventana de comandos ó
"terminal", pasando a super usuario (comando su, cuenta root) si es
necesario.

La shell de comandos

En el modo terminal, o dentro de una ventana de comandos, se podrán


introducir comandos que serán procesados línea a línea por el intérprete de
comandos. Al intérprete de comandos se le denomina shell e incluye
también la ventana donde se introducen esos comandos.

Pero la shell no sólo es un intérprete de comandos, es intérprete de un


lenguaje especial (shell script) para administración y uso del sistema
operativo y mediante el cual se construyen los archivos de configuración
que se utilizan para configurar el funcionamiento del equipo en el arranque
(por ejemplo, ver el archivo /etc/profile).

Existen varias shell diferentes, provenientes de los diferentes


desarrolladores existentes en un principio. Algunas de las más conocidas
son: Korn Shell (ksh), Bourne-Shell (sh) ó C-Shell (csh). La más usada en
Linux es la Bourne-Again-Shell (bash). Además, existen otras shell
“especiales” para ejecutar comandos en un ordenador remoto, como la
Remote-Shell (rsh) o para establecer una conexión segura con un

2
ordenador remoto Secure-Shell (ssh). Cada usuario puede utilizar una shell
diferente, muchas veces es cuestión de gustos. Cuando se crea una cuenta
de usuario nueva se puede indicar qué shell utilizará dicho usuario (también
se puede configurar más tarde).

Todos los comandos del sistema operativo Linux distinguen el uso de


mayúsculas y minúsculas, por lo que habrá que tener cuidado en cómo se
escriben las instrucciones.

Terminales virtuales

El funcionamiento habitual de los primeros sistemas UNIX era tener un


servidor central al que se conectaban de forma remota diferentes
terminales “tontos” que consistían en un monitor y un teclado. Todos los
usuarios ejecutaban sus programas sobre ese servidor principal y
guardaban sus datos allí. Linux permite emular este funcionamiento
mediante los denominados “terminales virtuales”. Estos terminales se
denominan en Linux tty<x>, donde <x> es el número del terminal (siendo
0 para el primero que se abre).

Para cambiar de un terminal a otro basta con pulsar la tecla Alt y una de las
teclas de función (Alt+F1 para el primer terminal, Alt+F2 para el segundo y
así sucesivamente). De esa forma pasaremos a otro terminal, donde
tendremos que realizar la operación de inicio de sesión en el sistema
(introducir el usuario y la contraseña).

Uno de los principales usos de los terminales virtuales es la posibilidad de


solucionar problemas que se hayan producido en el terminal principal y que
puedan haber hecho “colgarse” a algún programa. Abriendo sesión en otro
terminal permitirá averiguar qué proceso está causando problemas y tomar
las medidas pertinentes (por ejemplo eliminar ese proceso para poder
desbloquear el sistema en el primer terminal).

3
Los procesos

Al igual que UNIX (y que los últimos sistemas operativos de Microsoft),


Linux es un sistema operativo multiproceso, lo cual quiere decir que varios
procesos pueden estar ejecutándose de forma concurrente (a la vez) en el
procesador. La concurrencia y el multiproceso real se producirá sólo si hay
más de un procesador en el sistema. Cuando sólo hay un procesador hay
concurrencia “virtual”, que consiste en que el procesador divide el tiempo
de procesamiento entre los diferentes procesos activos en el ordenador. De
cualquier modo, se puede decir que todos los procesos existentes en el
ordenador están ejecutándose de forma concurrente.

Un proceso es la unidad mínima en la que se puede dividir un programa o


aplicación. Un proceso tiene una identificación en el sistema, una zona de
memoria para sus datos, etc. La identificación de los procesos en el sistema
Linux se realiza mediante el código de identificación de procesos ó PID. Este
código es muy importante para poder solucionar los problemas que puedan
surgir por el mal funcionamiento de los procesos o simplemente para poder
averiguar en cierto momento qué procesos se están ejecutando en el
ordenador. Para consultar los procesos que se están ejecutando en el
ordenador se debe utilizar la instrucción ps:

ps -aux

(las opciones indicadas significan que se listen los procesos de cualquier


usuario -opción “-a”-, que se listen los procesos que no están controlados
por ninguna terminal -opción “-x”- y que se indique el usuario y la hora de
inicio del proceso -opción “-u”-)

Este comando dará como resultado un listado de los procesos que se están
ejecutando en el sistema y, entre otros, nos dará el número de
identificación del proceso o PID. De este modo, si el proceso está causando
algún tipo de problema, se le puede dar la orden de terminar mediante el
comando kill:

4
kill -9 numeroPID

El parámetro “-9” indica al comando kill que se envíe al proceso con PID
numeroPID la orden de terminar.

Tanto el comando ps como kill tienen muchas opciones. El sistema


operativo Linux, al igual que UNIX, contiene una extensa ayuda para
averiguar el funcionamiento y las diferentes opciones que se pueden utilizar
con los diferentes comandos. A esta ayuda se la denomina “páginas de
manual” ó “páginas man” y se accede a ella mediante el comando man:

man nombreComando

El comando man produce como resultado una serie de páginas por las que
se puede avanzar utilizando la barra espaciadora y las teclas de avance y
retroceso de página. Para salir del visionado de la ayuda, pulsar la letra “q”.

ARCHIVOS Y DIRECTORIOS

Después de arrancar el sistema y efectuar el inicio de sesión, el usuario


obtendrá un prompt para introducir comandos en el intérprete. El sistema
colocará al usuario en su directorio personal nada más iniciar la sesión. Los
directorios personales están en el directorio /home/nombredeusuario,
donde “nombredeusuario” es el nombre de la cuenta de usuario. En el caso
del administrador del sistema (usuario root) el directorio personal es /root.

En cualquier momento se puede consultar la posición actual dentro del


sistema de directorios mediante el comando:

pwd

El movimiento de un directorio a otro se realiza mediante el comando:

cd ruta

5
La ruta puede ser absoluta si comienza con el directorio raíz (/):

cd /home/pepe

o relativa:

cd pepe

Para moverse un directorio hacia arriba se utiliza la instrucción:

cd ..

(hay que poner el espacio entre “cd” y “..”)

El directorio actual se representa mediante un punto “.”, mientras que el


directorio superior al actual se representa mediante dos puntos “..”.

Para cambiar a un directorio, no necesitamos escribir todo su nombre, basta


con algunas letras y pulsar tabulador, el sistema nos pondrá el resto.

Para crear un nuevo directorio se utiliza la instrucción:

mkdir nombredirectorio

Para listar el contenido de un directorio se utiliza la instrucción:

ls

Si se quiere un listado más detallado, donde se incluyan los permisos y se


vean los archivos ocultos (aquellos cuyo nombre comienza por un punto “.”)
se deben indicar las opciones:

ls –la

6
Para eliminar un directorio se utiliza el comando:

rmdir nombredirectorio

Para ver un archivo de texto se pueden utilizar varios comandos. Para ver el
contenido solamente se puede utilizar:

cat nombrefichero

Para ver el contenido del fichero con pausa en cada pantalla:

more nombrefichero

Por supuesto, si lo que se quiere es ver el contenido y editarlo, es mejor


utilizar un editor como gedit, tecleando esta palabra como un comando
más.

Para copiar un fichero a otra ubicación:

cp ficheroorigen ficherodestino

Para copiar un directorio con todo su contenido se utiliza el mismo comando


con la opción -s

Para mover un fichero (también un directorio) a otro lugar:

mv origen destino

En la línea de comandos se pueden utilizar diversos tipos de comodines. Los


más utilizados son:

* cualquier cadena de caracteres


? cualquier caracter (sólo uno)
[lista de cualquier conjunto de caracteres de

7
caracteres] los indicados entre corchetes

Por ejemplo, para listar los archivos que contienen los caracteres “ftp”
dentro del nombre en el directorio actual se haría:

ls *ftp*

MONTAR Y DESMONTAR DISPOSITIVOS

Para acceder a los datos de las diferentes particiones de los discos y a los
dispositivos de almacenamiento que no son los directorios del sistema Linux
(como el CD-ROM, el disquette, disco USB, etc) es necesario montar todas
estas particiones y dispositivos en la estructura de directorios del sistema.

Además del montaje de las particiones del sistema, el uso más frecuente del
montado de dispositivos es para el caso de acceder al CD-ROM y al
disquete. Los dispositivos que pueden montarse aparecen en el directorio
/dev.

NOTA: Todo lo que se verá a continuación se refiere al montado manual de dispositivos.


Hace un tiempo, esto era necesario hacerlo para el acceder al CD-ROM, DVD, disquete,
discos USB. Hoy en día estos dispositivos se detectan y se montan de forma automática en
el arranque o al insertarlos (como en el caso de la memoria USB) por lo que las
indicaciones que vienen a continuación se incluyen prácticamente por completar la
información y porque el concepto de "montado" se verá en el tema de compartición de
archivos (NFS - Network File System).

La orden para montar un dispositivo es mount:

mount /dev/hdd /mnt/cdrom

En este ejemplo se monta el dispositivo CD-ROM (representado por el


archivo/dev/hdd) en el punto de montaje (directorio) /mnt/cdrom (este
punto de montaje debe existir previamente). En este caso el CD-ROM está
representado como “hdd”, pero esto puede variar dependiendo de en qué
interfaz esté el CD-ROM y de si está configurado como maestro o esclavo.

8
Para evitar saber a qué nombre de dispositivo corresponde el CD-ROM,
Linux al arrancar lo detecta y crea un enlace simbólico (se verán
posteriormente) llamado /dev/cdrom de forma que la instrucción para
montar un CD-ROM será siempre:

mount /dev/cdrom /mnt/cdrom

independientemente de que el CD-ROM esté en hdb, hdd, hdc, etc.

Se ha omitido la opción -t, que indica qué tipo de dispositivo se trata, por lo
que el sistema lo trata y lo detecta automáticamente. Si no se detectase
automáticamente, habría que poner el tipo de archivos de forma explícita.

Una vez accedido al dispositivo se debe desmontar (para sacar el cd-rom o


el disquete). Para desmontar se utiliza la opción umount, indicando bien el
punto de montaje o bien el dispositivo.

umount /mnt/cdrom

Para realizar la operación de desmontaje de un dispositivo hay que estar


fuera de él, es decir, fuera de /mnt/cdrom en el caso del ejemplo ya que, si
no, aparecerá un mensaje de dispositivo utilizándose y no se efectuará la
operación.

Actualemente no se suele hacer todo el proceso de montado de forma


manual, sino que se trata de automatizar esta tarea. Para hacer esto
existen dos posibilidades:

 El archivo /etc/fstab
 El programa autofs

El archivo fstab guarda las correspondencias entre el sistema a montar y el


punto de montaje de forma que para montar un sistema de los que
aparezcan dentro de este archivo no haga falta especificar la instrucción
mount completa, sino sólo indicar el punto de montaje, por ejemplo.

9
Un ejemplo de algunas líneas de un archivo fstab sería:

/dev/hda9 / ext2 defaults 1 1


/dev/hda7 /boot ext2 defaults 1 2
/dev/hda8 swap swap defaults 0 0
/dev/hda1 /mnt/win_c vfat user,exec,umask=0 0 0
/dev/hda5 /mnt/win_d vfat user,exec,umask=0 0 0
/dev/hda6 /mnt/win_e vfat user,exec,umask=0 0 0

/dev/hdd /mnt/cdrom auto nouser,owner,noauto,nosuid,exec,nodev,ro 0 0


/dev/fd0 /mnt/floppy auto sync,nouser,owner,noauto,nosuid,nodev 0 0

En este ejemplo se montan las particiones del disco en los diferentes puntos
de montaje del sistema (/, /boot y espacio swap en este caso). Se montan
también tres particiones correspondientes a sistemas windows (montadas
en /mnt/win_c, /mnt/win_d y /mnt/win_e, respectivamente). Todos estos
puntos de montaje se montan en el arranque del sistema, por lo que una
vez arrancado, los datos existentes en las particiones windows estarán
accesibles para el usuario.

Todas las particiones a las que se quiera tener acceso deberán aparecer en
el archivo fstab y de esa forma estarán accesibles desde el arranque del
ordenador. Si se hiciese una nueva partición en un disco existente o se
instalase un nuevo disco con nuevas particiones haría falta indicar el/los
punto/s de montaje al que corresponden cada una de las particiones para
poder acceder a los datos.

También se especifican en este ejemplo los montajes para el CD-ROM y el


disquete. Con este archivo fstab, para montar el CD-ROM rom sólo habría
que indicar el comando:

mount /mnt/cdrom

10
y todas las demás opciones se cogerían del archivo fstab. Si no se
encuentra el punto de montaje especificado en el comando mount se
devolvería un mensaje de error.

Montaje automático con automount

La otra forma de realizar el montaje y desmontaje automático es la


utilizazión del programa automount, que funciona junto al demonio autofs,
que será necesario arrancar mediante la instrucción:

service autofs start

El programa automount permite montar los dispositivos de forma dinámica


y automática, sin tener que invocar el comando como en el caso visto
anteriormente. Esta utilidad tiene varios ficheros de configuración en el
directorio /etc. El fichero de configuración principal es auto.master. En este
archivo se especifican los puntos de montaje principales, los archivos que
contienen las especificaciones para cada punto de montaje, etc.

Un ejemplo de archivo auto.master sería:

/mnt /etc/auto.varios --timeout=3

En esta línea se especifica que los montajes en el directorio /mnt serán los
indicados en el archivo /etc/auto.varios (que recibe el nombre de “map
file”). Además mediante la opción –timeout=3 se especifica que si el
dispositivo montado no presenta actividad durante tres segundos se
desmontará de forma automática, evitando que el sistema reserve recursos
de forma contínua para ese montaje.

El contenido del archivo auto.varios podría ser:

cdrom -fstype=iso9660 :/dev/hdd

11
floppy -fstype=auto :/dev/fd0

Estas dos líneas especifican los subdirectorios cdrom y floppy dentro del
directorio especificado en el archivo auto.master, por lo que los dos puntos
de montaje definidos son /mnt/cdrom y /mnt/floppy. La opción –fstype
indica el tipo de archivos que contendrán esos puntos de montaje y
finalmente se especifican los dispositivos que van a montarse (/dev/hdd
para el CD-ROM y /dev/fd0 para el disquete, aunque podría haberse usado
también /dev/cdrom para el CD-ROM como se vio antes).

USUARIOS, GRUPOS Y PERMISOS

Usuarios y grupos

Toda la seguridad para el acceso a los recursos del sistema en Linux está
implementada en la forma de permisos de acceso asignados a los usuarios y
los grupos.

Los usuarios pueden ser tanto personas como usuarios lógicos (cuentas
asociadas con determinados programas o aplicaciones, como la cuenta
apache, asociada al servidor web Apache Web Server). Todos los usuarios
tienen un número identificativo denominado UID (User ID).

Los grupos son entidades que agrupan usuarios. Se utilizan para poder
asignar ciertos permisos sobre directorios o archivos de forma simultánea
para varios usuarios. Todos los usuarios a los que se quiera dar acceso a un
directorio determinado pasarán a formar parte de un grupo y será a ese
grupo al que se le den los permisos de acceso. Para ganar en flexibilidad, un
mismo usuario puede pertenecer a más de un grupo, aunque siempre
existirá un “grupo principal” para cada usuario.

Permisos de los ficheros y directorios

Todos los ficheros y directorios en Linux tienen una serie de especificaciones


de permisos para tres entidades diferentes:

12
 Permisos para el usuario propietario del fichero o directorio.
 Permisos para el grupo propietario del fichero o directorio.
 Permisos para el resto de usuarios.

A su vez, cada uno de estos permisos se dividen en:


 Permisos de lectura.
 Permisos de escritura.
 Permisos de ejecución.

En un listado con el comando ls –la, se puden ver los permisos


mencionados, organizados como puede verse en el siguiente ejemplo:

-rwxr-xr-- 1 pepe gest 1470 abr 15 12:05 informe.antiguo.txt


^^^^^^^^^^ ^ ^ ^ ^ ^ ^ ^ ^ ^
|||||||||| | | | | | | | | |__nombre del fich.
|||||||||| | | | | | | | |
|||||||||| | | | | | | | |__minutos : Fecha y
|||||||||| | | | | | | |_____hora : hora de la
|||||||||| | | | | | |____día del més : última
|||||||||| | | | | |________més : modificación
|||||||||| | | | |
|||||||||| | | | |___________ Tamaño en bytes
|||||||||| | | |
|||||||||| | | |_______nombre del grupo
|||||||||| | |____________nombre del propietario del fichero
|||||||||| |
|||||||||| |_______________número de enlaces rígidos (hard links)
||||||||||
||||||||||__________________ permiso de ejecución para : El resto de
|||||||||___________________ permiso de escritura para : usuarios
||||||||____________________ permiso de lectura para :
|||||||
|||||||_____________________ permiso de ejecución para : Un usuario
||||||______________________ permiso de escritura para : pertene-
|||||_______________________ permiso de lectura para : ciente al
|||| : grupo “gest”
||||
||||________________________ permiso de ejecución para : El usuario
|||_________________________ permiso de escritura para : propieta-
||__________________________ permiso de lectura para : rio (pepe)
|
|____________________________tipo de fichero
- Fichero regular (fichero normal)
d Directorio
l Enlace simbólico

Los permisos de los ficheros aparecen en la primera columna del listado y


se especifican mediante tres letras que significan:

 r, permiso de lectura.
 w, permiso de escritura.
 x, permiso de ejecución.

13
Si aparece la letra correspondiente, el permiso se concede. Si aparece el
símbolo “-“ en el lugar de la letra, el permiso no se concede.

Se definen permisos para el propietario del fichero, para los usuarios que
pertenecen al mismo grupo que el grupo propietario del fichero y para el
resto de usuarios. en total habrá 9 símbolos especificando los permisos para
un fichero. Se usa un décimo símbolo, colocado en primer lugar que
especifica si el archivo es un directorio (letra d) o no (símbolo “-”).

En el ejemplo mostrado, el usuario propietario del fichero es el usuario


pepe, que tiene permisos de lectura, escritura y ejecución sobre el mismo.
El grupo propietario del fichero es “gest” y todos los usuarios que
pertenezcan a ese grupo tienen permiso para leer y ejecutar el fichero, pero
no para modificarlo. Por último, el resto de usuarios del sistema sólo tienen
permiso de lectura sobre el fichero.

Antes del nombre del archivo, se puede ver el del propietario del mismo, y
el grupo (“pepe” y “gest” respectivamente en el ejemplo)

En cualquier momento se pueden cambiar los permisos de los ficheros y


directorios. Para esto se utiliza el comando:

chmod mascaradepermisos ficheros

La máscara de permisos indica cómo se cambiarán los permisos para el


fichero. Habitualmente se especifican tres números correspondientes a los
permisos del usuario propietario, grupo propietario y resto de usuarios. El
número se forma pasando a decimal el número binario que resulta de poner
un cero allí donde se deniegue un permiso y un 1 allí donde se conceda.

Por ejemplo para llegar al nivel de permisos visto en el ejemplo:

-rwxr-xr-- 1 pepe gest 1470 abr 15 12:05 informe.antiguo.txt

Se tendría que indicar:

14
rwx r-x r-- = 111 101 100 = 754

La instrucción será por lo tanto:

chmod 754 informe.antiguo.txt

En el caso de los directorios, los permisos r, w y x tienen un sentido


diferente al del caso de los archivos. El permiso de ejecución (x) significa en
un directorio que el usuario o grupo al que se le da el permiso puede entrar
en ese directorio. El permiso de lectura (r) significa que ese usuario puede
acceder al contenido de ese directorio, es decir, puede hacer un comando ls
sobre ese directorio. El permiso de escritura (w) significa que el usuario que
lo posea puede crear archivos nuevos dentro de ese directorio.

También es posible cambiar el usuario propietario del archivo o el grupo


propietario del archivo, para hacer eso habrá que teclear:

chown nuevopropietario archivo

chgrp nuevogrupopropietario archivo

Administración de usuarios y grupos

Existen diferentes comandos para la administración de usuarios y grupos. A


continuación se ven los más importantes.

Administración de usuarios

Para crear un nuevo usuario se utiliza la instrucción:

adduser nombreusuario

(el comando useradd es equivalente a adduser)

15
Para establecer o cambiar la contraseña de un usuario se utiliza el
comando:

passwd nombreusuario

El sistema pedirá entonces la contraseña nueva, debiendo introducirla dos


veces para asegurar que se ha escrito lo pretendido. En el caso de que la
contraseña no se halla escrito de forma correcta o en el caso de que sea
demasiado sencilla, se dará un mensaje de advertencia. En el caso de que
sea el administrador el que está introduciendo la contraseña, se permitirá
cualquier valor en la misma, mientras que a un usuario “normal” no se le
permitirá poner una contraseña que no sea segura (un usuario normal sólo
puede cambiar su propia contraseña).

Cuando se crea un usuario nuevo suceden varias cosas de forma


automática. La primera de ellas es que el usuario es asignado a un grupo.
En el sistema operativo UNIX (y en el funcionamiento estándar de Linux) el
grupo por defecto asignado inicialmente al usuario es user, pero Red Hat
tiene un comportamiento diferente para mejorar la seguridad. En el caso de
Red Hat, al crear un usuario se crea de forma automática un grupo con el
mismo nombre del usuario en el que el único constituyente es ese mismo
usuario. Para que se siga el “estándar UNIX” y no se use esta característica
de Red Hat se debe indicar la opción –n en el comando de creación del
usuario:

useradd -n nombreusuario

Los usuarios del sistema se pueden ver en el archivo /etc/passwd, donde


cada línea corresponde a la información correspondiente a un usuario
diferente:

nombreusuario:x:IDusuario:IDgrupo:directoriousuario:shellausar

16
nombreusuario es el nombre de usuario que se ha dado al crear al usuario.
Después vendría la contraseña pero en su lugar aparece una x indicando
que las contraseñas se encuentran encriptadas y protegidas en el archivo
/etc/shadow. Seguidamente viene el identificador de usuario y después el
identificador de grupo principal al que pertenece el usuario.

directoriousuario es el directorio en el que el usuario tendrá sus datos


particulares. Este directorio se crea de forma automática al crear el usuario.
Todos los directorios de usuario se crean como subdirectorios del directorio
/home y además se crean con el propio nombre del usuario si no se indica
lo contrario. Por ejemplo, si el usuario se llama pepe, el directorio particular
sería /home/pepe.

Por último aparece el nombre de la shell que será la que el usuario utilizará
por defecto. Si no se indica nada, será la Bourne Again SHell (bash).

Un ejemplo de línea del archivo /etc/passwd sería:

pepe:x:403:512:/home/pepe:/bin/bash

Para modificar los datos de un usuario se utilizará la instrucción:

usermod <opciones> nombreusuario

Las opciones serán las características que se quieran cambiar. Entre otras,
se pueden indicar las siguientes:

 -d directorioinicial Esta opción sirve para cambiar el directorio de


usuario.
 -g grupoinicial Esta opción sirve para cambiar el grupo primario o
principal al que pertenece el usuario (users si se usa el estilo UNIX y
un grupo con el mismo nombre del usuario si se usa el estilo Red
Hat)
 -G grupo1,grupo2,grupo3 Esta opción sirve para indicar otros
grupos a los que también pertenece el usuario. Se pueden indicar

17
varios grupos separados por comas. Si el usuario ya pertenecía a un
grupo y no aparece en esta lista al modificarlo, se le eliminará de ese
grupo.
 -l login Esta opción sirve para cambiar el nombre del usuario.
 -p password Esta opción sirve para cambiar la contraseña del
usuario, pero habrá que indicar la contraseña ya encriptada, por lo
que el comando passwd es mucho más cómodo.
 -s shell Esta opción sirve para cambiar la shell de comandos con la
que trabajará el usuario por defecto.

Para eliminar un usuario la instrucción será:

userdel nombreusuario

Administración de grupos

Los grupos existentes en el sistema se pueden ver en el archivo /etc/group.


En ese archivo, además del nombre del grupo y su identificador se puede
ver el nombre de los usuarios que forman parte del mismo.

Para añadir un grupo nuevo se utiliza el comando:

groupadd nombregrupo

Para modificar un grupo se utiliza el comando groupmod y para eliminar


un grupo:

groupdel nombregrupo

Para añadir un usuario a un grupo se puede hacer mediante la opción –G


vista para el comando usermod o también (mejor) mediante la instrucción:

gpasswd -a nombreusuario nombregrupo

Igualmente, para quitar a un usuario de un grupo se hará:

18
gpasswd -d nombreusuario nombregrupo

Toda la estrategia de seguridad de directorios y archivos debe realizarse con


el uso de los usuarios y grupos y los permisos de acceso según se ha
indicado anteriormente.

TIPOS ESPECIALES DE ARCHIVOS

Enlaces

Los enlaces son un tipo de archivo especial, son archivos virtuales. En


realidad no es más que un nombre que hace referencia a un archivo real
localizado en algún otro lugar (es algo parecido a un acceso directo en
Windows). Para crear un enlace simbólico se utiliza la instrucción:

ln –s ficheroreal ficherovirtual

Para ver a qué fichero real apunta un enlace simbólico se usa la opción –l
del comando ls:

ls –l

El resultado de este comando es el nombre del enlace y una flecha que


apunta al archivo real. Los enlaces simbólicos se utilizan para varios
cometidos. Por ejemplo, de una versión a otra de Linux o de una
distribución a otra se cambian los lugares (directorios) en los que se
guardan los diferentes archivos de configuración. Para que los usuarios que
están acostumbrados a encontrar esos archivos en determinado sitio no se
vean desorientados se suelen crear enlaces simbólicos en todos los sitios en
los que es “normal” encontrar el fichero.

Otro uso de los enlaces simbólicos es el caso de los directorios de arranque


de servicios. En unos ciertos directorios se deben poner los archivos de los
servicios que se quiere arrancar cuando el sistema arranca. Los ficheros

19
verdaderos de los servicios se encuentran centralizados en un directorio
único, por lo que si se quiere hacer “como si estuvieran” en otro directorio o
directorios distintos habrá que hacer también enlaces simbólicos. Por
ejemplo, ver el directorio /etc/rc.d/rc5.d.

Archivos ocultos

Si no se quiere que un archivo aparezca en un listado de directorio


efectuado con la instrucción ls su nombre debe comenzar por un punto “.”.
Si se quieren ver todos los archivos, incluyendo los ocultos se utilizará el
comando:

ls –la

REDIRECCIONAMIENTO

Casi todos los comandos que se utilizan en un terminal recogen los datos
del teclado y sacan el resultado por la pantalla. Linux permite sustituir tanto
la entrada como la salida de datos por otros elementos, como puede ser un
archivo. Seguidamente se ven los principales redireccionamientos que se
pueden conseguir.

Redireccionamiento “>”

Este redireccionamiento toma los flujos de datos que van hacia la salida
estándar (que normalmente es el monitor) y las envía a un archivo. Por
ejemplo, para guardar el listado de un directorio en un archivo se haría:

ls > listado.txt

Redireccionamiento “>>”

Este redireccionamiento es igual que el anterior con la salvedad de que si el


archivo ya existe, los datos se anexan a continuación del lugar donde
termina el archivo actual.

20
Redireccionamiento “<”

Este tipo de redireccionamiento permite enviar a un programa datos


provenientes de un archivo y no del teclado (dispositivo de entrada por
defecto). Por ejemplo, la instrucción:

sendmail pepe@hotmail.com < correo.txt

enviará un correo electrónico a la dirección indicada. El mensaje de ese


correo será el contenido del archivo llamado “correo.txt”.

Redireccionamiento “|”

El carácter | se obtiene pulsando la tecla AltGr y la tecla del número 1 en el


teclado alfanumérico.

Este redireccionamiento sirve para dirigir la salida de un programa o


comando a la entrada de otro. Por ejemplo, si se quiere ver el contenido de
un archivo pero éste ocupa más de una pantalla se puede hacer que el la
salida del comando cat, que sirve para ver un archivo, sea la entrada para
el comando more, que permite hacer pausas para poder visualizar un flujo
de texto pantalla a pantalla:

cat /etc/passwd | more

Un uso muy común es para paginar el resultado de una orden ls:

ls –la|more

o también para paginar el resultado de una consulta de los procesos activos


en el sistema:

ps –aux|more

21
o también para encontrar, dentro de ese listado, un cierto proceso que sea
de interés:

ps –aux|grep httpd

En este último caso, el comando grep busca cadenas de caracteres dentro


de un flujo de texto. En el ejemplo se busca la cadena “httpd” (que
correspondería al nombre del servidor web) dentro del flujo de texto
generado por la instrucción ps.

TRABAJO CON ARCHIVOS (VISIONADO, CREACIÓN, EDICIÓN)

Existen diferentes herramientas y comandos para trabajar con archivos en


Linux. Ya se ha visto el comando cat, que saca por pantalla el contenido de
un determinado archivo.

cat nombrearchivo

Otra utilidad es more, que permite ver el contenido de un archivo de forma


paginada. more sólo permite pasar hacia delante en el archivo, utilizando la
barra espaciadora para ir pasando página a página. Para salir antes de
acabar de ver el archivo se debe pulsar la letra “q”. El uso de more es
simple:

more nombrearchivo

La utilidad less es un poco más potente que more, permite recorrer el


archivo avanzando o retrocediendo, utilizando para ello las teclas de avance
y retroceso de página respectivamente. Para salir del programa se usará la
letra “q”, al igual que en el caso anterior.

less nombrearchivo

22
Las utilidades vistas anteriormente sirven para ver el contenido de un
archivo pero no para crearlo ni editar uno existente. Para hacer esto existe
un editor de textos muy básico que incluyen todas las distribuciones de
Linux. Su nombre es vi y se invoca así desde línea de comandos:

vi nombrearchivo

Si el archivo no existe se crea uno nuevo y si existe, se muestra su


contenido. Para poder escribir en un archivo nuevo o modificar uno
existente se debe activar el modo insertar pulsando para ello la letra “a”.
Una vez pulsada esta tecla se puede mover el cursor por el archivo
utilizando las teclas del cursor del teclado. Para borrar caracteres se utilizan
las teclas suprimir y backspace. Una vez editado el archivo, si se quiere salir
guardando los cambios realizados se pulsará la secuencia de teclas:

Escape :x

Si se quiere salir sin grabar los cambios se hará:

Escape :q!

Si se quiere salir y no se había editado el contenido del archivo bastará con


hacer:

Escape :q

La tecla escape se utiliza para salir del modo edición al de introducción de


comandos. Los comandos se introducen pulsando dos puntos y luego uno o
más caracteres.

A pesar de su extendido uso, el editor vi es demasiado engorroso teniendo


en cuenta las opciones que nos proporcionan los actuales entornos gráficos.
Para la edición de archivos de texto se recomienda e uso de gedit, al que
se puede acceder tecleando en una ventana de comandos esta misma
palabra.

23
OTROS COMANDOS ÚTILES

El comando touch crea un fichero nuevo (vacío) si no existía antes o


cambia su fecha si ya existía.

El comando find se utiliza para buscar ficheros en el árbol de directorios del


sistema. En el siguiente ejemplo se buscan archivos cuyo nombre empiece
por “hol” dentro del directorio /home/pepe. En algunos sistemas Linux es
necesario indicar la opción –print para que los resultados de la búsqueda
salgan por pantalla:

find /home/pepe -name “hol*” -print

El comando which busca en $PATH el comando especificado y devuelve la


ruta completa al lugar donde está ese comando. Por ejemplo:

which ls

Es útil también para localizar dónde se encuentran instalados ciertos


servidores (demonios):

which httpd

En este ejemplo, estaríamos localizando la situación del demonio


correspondiente al servidor web Apache.

El comando tree ofrece una vista en forma de árbol de los directorios del
sistema. Se puede indicar a partir de qué directorio se quiere empezar:

tree /directorio/base

El comando who muestra todos los usuarios que tienen actualmente una
sesión abierta y muestra en qué terminal está activa la sesión

24
El comando finger permite obtener información ampliada sobre un
determinado usuario del sistema. Este comando es peligroso en algunos
entornos porque permite obtener información de si una cuenta existe o no y
de algunos datos de la misma.

Variables de entorno PATH

La variable de entorno PATH sirve para introducir rutas a ciertos directorios


del sistema de forma que se puedan usar comandos o librerías situadas en
esos directorios sin tener que especificar la ruta completa en la que está ese
archivo. Para ver el contenido de esta variable se puede utilizar el comando
echo:

echo $PATH

Si se quiere añadir una ruta nueva (por ejemplo /home/pepe/juegos) a la


variable PATH habrá que introducir el comando:

PATH=$PATH:/home/pepe/juegos
export PATH

Este nuevo valor de la variable de entorno PATH sólo permanecerá así


durante la sesión actual. Si se quiere conservar este valor
permanentemente habrá que añadir la nueva ruta en un archivo que guarde
el valor de la variable. Este archivo existe para cada usuario y se llama
.bashrc (el punto indica que es un archivo oculto). Normalmente el archivo
se encuentra en el directorio /home/nombreusuario ó en /root para el
administrador del sistema.

25

También podría gustarte