Вы находитесь на странице: 1из 31

CURSO CISCO LINUX BASICO A

Este módulo aborda exclusivamente la CLI o Command Line Interface (o «Interfaz de la Línea de Comandos»), en lugar de la GUI o Graphical User Interface (o «Interfaz Gráfica de Usuario) con la que probablemente estás familiarizado. La terminal CLI es una poderosa herramienta que suele ser el método primario usado para administrar los pequeños dispositivos de baja potencia, servidores de cómputo extremadamente potentes, y todo lo demás. Un entendimiento básico del terminal es esencial para diagnosticar y corregir la mayoría de los sistemas basados en Linux. Puesto que Linux se ha convertido en un sistema que está en todas partes, incluso aquellos que trabajan principalmente con sistemas que no utilizan el kernel de Linux, pueden beneficiarse de tener un conocimiento básico de la terminal.

¿Qué es un comando? Un comando es un programa de software que al ejecutarlo en la CLI («interfaz de línea de comandos» en español) realiza una acción en la computadora. Cuando se escribe un comando, el sistema operativo ejecuta un proceso que puede leer una entrada, manipular datos y producir la salida. Un comando ejecuta un proceso en el sistema operativo, y entonces causa que la computadora realice un trabajo.

Para ejecutar un comando, el primer paso es introducir el nombre del comando. Haz clic

en la terminal de la derecha. Introduce al siguiente ejemplo:

ls
ls

y presiona Entrar. El resultado debe parecerse

Para ejecutar un comando, el primer paso es introducir el nombre del comando. Haz clic en la terminal de la derecha. Introduce ls y presiona Entrar. El resultado debe parecerse al siguiente ejemplo:

sysadmin@localhost:~$ ls

Desktop

Documents

Downloads

Music

Pictures Public Templates

Videos

El nombre del comando se basa frecuentemente en lo que hace o en lo que el desarrollador que creó el comando piensa que va a describir mejor la función del comando. Por ejemplo, el comando lsmuestra una lista de información acerca de los archivos. Asociando el nombre del comando con algo mnemotécnico para lo que hace puede ayudar a recordar más fácilmente los comandos.

 

Para considerar

 

Cada parte del comando es normalmente sensible a mayúsculas y minúsculas, así que LS es incorrecto y se producirá un error, pero ls es correcto y se ejecutará.

 

sysadmin@localhost:~$ LS -bash: LS: command not found

La mayoría de los comandos sigue un patrón simple de sintaxis:

comando [opciones…] [argumentos…]

Típicamente, las opciones alteran el comportamiento del comando y los argumentos son elementos o valores para el comando a actuar. Aunque haya algunos comandos en Linux que no son completamente consistentes con esta sintaxis, la mayoría de los comandos usa esta sintaxis o algo similar.

En el ejemplo anterior, el comando ls fue ejecutado sin opciones ni argumentos, cuando este es el caso, su comportamiento por defecto es devolver una lista de archivos contenidos dentro del directorio actual.

sysadmin@localhost:~$ ls

Desktop

Documents

Downloads

Music

Pictures Public Templates

Videos

Los Argumentos

comando [opciones…] [argumentos…]

Un argumento se puede utilizar para especificarle al comando sobre qué actuar. Al comando lspuede dársele el nombre de un directorio como argumento, y mostrará el contenido de ese directorio. En el siguiente ejemplo, el directorio Documents (o «documentos» en espaňol) se utilizará como argumento:

sysadmin@localhost:~$ ls Documents

School

alpha-second.txt food.txt

linux.txt

os.csv

Work

alpha-third.txt

hello.sh

longfile.txt

people.csv

adjectives.txt

alpha.txt

hidden.txt

newhome.txt

profile.txt alpha-first.txt animals.txt

letters.txt numbers.txt

red.txt

La salida resultante es una lista de archivos que están en el directorio Documents.

Ya que Linux es un sistema de código abierto (o «open source» en inglés), hay algunos secretos interesantes que los desarrolladores le han añadido. Por ejemplo, el comando aptitude es una herramienta de gestión de paquetes disponible en algunas distribuciones de Linux. Este comando acepta moo como argumento:

sysadmin@localhost:~$ aptitude moo There are no Easter Eggs in this program.

o en espaňol:

sysadmin@localhost:~$ aptitude moo No hay sorpresas en este programa.

Hay más trucos de los que se ven a simple vista. ¡Sigue leyendo!

Linux es de código abierto! Linux es desarrollado por una comunidad, usted ve y contribuye al

}

comando [opciones…] [ argumentos …] Un argumento se puede utilizar para especificarle al comando sobre qué

Las Opciones

comando [opciones…] [argumentos…]

Las opciones se pueden utilizar para modificar el comportamiento de un comando. En la página anterior, se utilizó el comando ls para listar el contenido de un directorio. En el ejemplo siguiente, vamos a utilizar la opción -l para el comando ls, que resulta en una salida «Visualización larga», lo que significa que la salida da más información sobre cada uno de los archivos listados

sysadmin@localhost:~$ ls -l total 32 drwxr-xr-x 2 sysadmin sysadmin 4096 Aug

4 20:58 Desktop

drwxr-xr-x 4 sysadmin sysadmin 4096 Aug 4 20:58 Documents

drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Downloads

drwxr-xr-x 2 sysadmin sysadmin 4096 Aug

4 20:58 Music

drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Pictures

drwxr-xr-x 2 sysadmin sysadmin 4096 Aug

4 20:58 Public

drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Templates

drwxr-xr-x 2 sysadmin sysadmin 4096 Aug

4 20:58 Videos

A menudo se elige un carácter mnemotécnico (tecla de acceso) para su propósito, tal como eligiendo la letra l para largo o r para el reverso. Por defecto el comando ls imprime los resultados en orden alfabético, así que añadiendo la opción -r imprimirá los resultados en el orden alfabético inverso.

sysadmin@localhost:~$ ls -r

Videos Templates Public Pictures Desktop

Music Downloads Documents

Las opciones múltiples pueden utilizarse a la vez, o bien como opciones separadas como la -l - ro combinadas -lr. La salida de todos estos ejemplos sería la misma:

ls -l -r ls -rl ls -lr
ls -l -r
ls -rl
ls -lr

Como se explicó anteriormente, la opción -l da salida a un formato de listado largo mientras que la -r invierte la lista. El resultado del uso de ambas opciones es un listado largo dado en orden inverso:

sysadmin@localhost:~$ ls -l -r total 32 drwxr-xr-x 2 sysadmin sysadmin 4096 Aug

4 20:58 Videos

drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Templates

drwxr-xr-x 2 sysadmin sysadmin 4096 Aug

4 20:58 Public

drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Pictures

drwxr-xr-x 2 sysadmin sysadmin 4096 Aug

4 20:58 Music

drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Downloads drwxr-xr-x 4 sysadmin sysadmin 4096 Aug 4 20:58 Documents

drwxr-xr-x 2 sysadmin sysadmin 4096 Aug sysadmin@localhost:~$ ls -rl total 32 drwxr-xr-x 2 sysadmin sysadmin 4096 Aug

4 20:58 Desktop

4 20:58 Videos

drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Templates

drwxr-xr-x 2 sysadmin sysadmin 4096 Aug

4 20:58 Public

drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Pictures

drwxr-xr-x 2 sysadmin sysadmin 4096 Aug

4 20:58 Music

drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Downloads

drwxr-xr-x 4 sysadmin sysadmin 4096 Aug 4 20:58 Documents

drwxr-xr-x 2 sysadmin sysadmin 4096 Aug

4 20:58 Desktop

En definitiva, los comandos pueden utilizar muchas combinaciones de opciones y argumentos, así pues las posibilidades para cada comando serán únicas. ¿Recuerdas la sorpresa de la de la opción aptitude?

sysadmin@localhost:~$ aptitude moo There are no Easter Eggs in this program.

Es posible alterar el comportamiento de este comando utilizando las opciones. Observa lo que sucede cuando se agrega la opción -v (verbose o «salida detallada» en español):

sysadmin@localhost:~$ aptitude -v moo There really are no Easter Eggs in this program.

sysadmin@localhost:~$ aptitude -v moo Realmente no hay sorpresas en este programa.

Combinando las múltiples opciones -v, podemos obtener una variedad de respuestas:

sysadmin@localhost:~$ aptitude -vv moo

Didn't I already tell you that there are no Easter Eggs in this program?

sysadmin@localhost:~$ aptitude -vvv moo Stop it!

sysadmin@localhost:~$ aptitude -vv moo ¿No te dije que no hay sorpresas en este programa? sysadmin@localhost:~$ aptitude -vvv moo ¡Para!

Recuerda que las opciones múltiples pueden ser introducidas por separado o combinadas:

aptitude -v -v moo aptitude -vv moo

¡Sigue añadiendo las opciones -v para que veas cuántas respuestas únicas puedes obtener!

imprimiendo un Directorio de Trabajo

Para descubrir dónde estás ubicado actualmente en el sistema de archivos, puedes utilizar el comando pwd. El comando pwd imprime el directorio de trabajo, tu ubicación actual en el sistema de archivos:

pwd [OPCIONES]

Para considerar

¡Aún no enciendas tu impresora! En los inicios de la informática la salida de línea de comandos sería enviada a las impresoras físicas. Este método fue reemplazado por pantallas de video que pueden mostrar la información más rápidamente. Todavía usamos la palabra imprimir (o «print» en inglés) a pesar de que la salida sólo se está visualizando en la pantalla.

sysadmin@localhost:~$ pwd /home/sysadmin

La salida del comando anterior indica que el usuario está actualmente en su carpeta de inicio, que se muestra en el sistema de archivos a continuación.

 

Para considerar

 

Observa que nuestras máquinas virtuales emplean un prompt que muestra el directorio actual de trabajo, acentuado con el color azul. En el primer prompt abajo, el ~ azul es equivalente a /home/sysadmin, que representa el directorio de inicio del usuario.

 

sysadmin@localhost:~$

Después de cambiar de directorios, también puede confirmarse la nueva ubicación en el nuevo prompt, que
Después de cambiar de directorios, también puede confirmarse la nueva ubicación en el
nuevo prompt, que de nuevo aparece en azul.
sysadmin@localhost:/etc/calendar$

Cambiando Directorios

Cambiando Directorios

Los archivos se utilizan para almacenar datos tales como texto, gráficos y programas. Los directorios se utilizan para guardar archivos y proporcionar una estructura de organización jerárquica. La imagen de abajo muestra una versión abreviada de la estructura del sistema de archivos en las máquinas virtuales.

Cambiando Directorios Cambiando Directorios Los archivos se utilizan para almacenar datos tales como texto, gráficos y

Al iniciar una máquina virtual nueva, abriendo el curso o después usando el botón reiniciar, estás registrado como usuario sysadmin en tu directorio de inicio:

Cambiando Directorios Cambiando Directorios Los archivos se utilizan para almacenar datos tales como texto, gráficos y
cd (change
cd
(change

Para navegar por la estructura del sistema de archivos, utiliza el comando de directory o «cambiar directorio» en español) para cambiar directorios.

cd (change Para navegar por la estructura del sistema de archivos, utiliza el comando de directory

cd [opciones] [ruta]

Si nos fijamos en el gráfico anterior, el directorio Documents está ubicado en el directorio home, donde se encuentra actualmente. Para moverte a un directorio desde tu

ubicación actual, utilizalo como argumento para el comando

cd :
cd :

sysadmin@localhost:~$ cd Documents sysadmin@localhost:~/Documents$

Los directorios equivalen a las carpetas en Windows y Mac OS. Al igual que estos sistemas operativos más populares, una estructura de directorios de Linux tiene un nivel superior. No se llama «Mi PC», sino más bien el directorio root (o «raíz» en español) y está representado por el carácter /. Para moverse al directorio raíz, utiliza el carácter / como

argumento para el comando

cd .
cd .

sysadmin@localhost:~$ cd /

cd (change Para navegar por la estructura del sistema de archivos, utiliza el comando de directory

El argumento para el comando

cd
cd

es más que sólo el nombre de un directorio, en realidad

es una ruta de acceso (o «path» en inglés). Una ruta de acceso es una lista de directorios

separados por el carácter /. Por ejemplo, /home/sysadmin es la ruta de acceso a tu directorio de inicio:

Si piensas en el sistema de archivos como un mapa, las rutas de acceso son las

Si piensas en el sistema de archivos como un mapa, las rutas de acceso son las indicaciones paso a paso; pueden ser utilizadas para indicar la ubicación de cualquier archivo dentro del sistema de archivos. Hay dos tipos de rutas de acceso: absoluta y relativa. Las rutas absolutas comienzan con el directorio raíz del sistema de archivos, las rutas relativas se consideran a partir de tu ubicación actual en el sistema de archivos.

Las Rutas Absolutas

Una ruta absoluta te permite especificar la ubicación exacta de un directorio. Siempre empieza en el directorio raíz, por lo tanto siempre comienza con el carácter /. La ruta al directorio de inicio /home/sysadmin es una ruta absoluta. La ruta comienza en el directorio raíz /, pasa al directorio home y luego al directorio sysadmin. Siguiendo este camino en una interfaz gráfica de usuario (GUI) como tu computadora de casa, se vería algo como esto:

Si piensas en el sistema de archivos como un mapa, las rutas de acceso son las

Utiliza esta ruta como el argumento para el comando inicio del usuario sysadmin.

cd
cd

para retroceder al directorio de

sysadmin@localhost:~$

Si no hay salida, esto significa que el comando tuvo éxito. Sigue adelante y confírmalo

mediante el comando

pwd :
pwd :

sysadmin@localhost:~$ pwd /home/sysadmin

Las Rutas Relativas

Una ruta de acceso relativa da instrucciones a un archivo con respecto a tu ubicación actual en el sistema de archivos. Las rutas relativas no empiezan con el carácter /, empiezan con el nombre de un directorio. Observa de nuevo el primer ejemplo del

comando

cd
cd

. El argumento es un ejemplo de la ruta de acceso relativa más simple: el

nombre de un directorio en tu ubicación actual.

sysadmin@localhost:~$ cd Documents sysadmin@localhost:~/Documents$

La siguiente imagen muestra un mapa de los archivos contenidos en el directorio sysadmin. Actualmente estás ubicado en el directorio Documents y quieres moverte al directorio Art:

Una ruta de acceso relativa comienza con el directorio actual. Sin embargo, no lo incluye en

Una ruta de acceso relativa comienza con el directorio actual. Sin embargo, no lo incluye en la ruta. Primero pasa al directorio School, y luego al directorio Art. Utiliza el carácter / para separar los nombres de directorio. El resultado School/Art es una ruta relativa desde el directorio Documents al directorio Art.

Utiliza la ruta relativa como un argumento para el comando cd para entrar al directorio Art.
Utiliza la ruta relativa como un argumento para el comando cd para entrar al
directorio Art.

Utiliza el comando

pwd
pwd

para confirmar el cambio:

sysadmin@localhost:~/Documents/School/Art$ pwd /home/sysadmin/Documents/School/Art Para considerar La salida del comando pwd es la ruta absoluta al directorio
sysadmin@localhost:~/Documents/School/Art$ pwd
/home/sysadmin/Documents/School/Art
Para considerar
La salida del comando pwd es la ruta absoluta al directorio School.
También indicado como:
Para considerar
En el ejemplo anterior el comando cd había seguidola ruta de acceso School/Art:
cd School/Art
Una ruta de acceso puede también dividirse en múltiples comandos cd . El siguiente
conjunto de comandos lograría los mismos resultados:
cd School
cd Art

Los Accesos Directos o Atajos

El Carácter ..

Sin importar en qué directorio estás,

siempre representa un directorio superior relativo

.. al directorio actual. Para moverte desde el directorio Art de regreso al directorio School:

sysadmin@localhost:~/Documents/School/Art$ cd .. sysadmin@localhost:~/Documents/School$

El Carácter « . »

Sin importar en qué directorio estás, el carácter . siempre representa tu directorio actual.

Para el comando comandos.

cd
cd

este acceso directo no es muy útil, pero será muy útil para otros

El carácter ~

El directorio de inicio del usuario actual está representado por el carácter ~. Como se mencionó anteriormente, siempre comienzas como un usuario sysadmin, y su inicio se encuentra en /home/sysadmin. Para volver a tu directorio de inicio en cualquier momento puedes ejecutar el siguiente comando:

sysadmin@localhost:~/Documents/School$ cd ~

Listado de Archivos

El comando

ls
ls

se utiliza para listar el contenido de un directorio. Ya lo has visto usado un

par de veces antes en los ejemplos, pero esta página te ayudará a estar cómodo al utilizarlo.

ls [OPCIONES] [ARCHIVO]

De forma predeterminada, cuando el comando listará los archivos en el directorio actual:

ls
ls

se utiliza sin opciones o argumentos,

sysadmin@localhost:~$ ls

Desktop Documents Videos

Downloads Music

Pictures Public Templates

Para conocer los detalles de un archivo, como el tipo de archivo, los permisos, la

propiedad o la fecha y hora, realiza un listado largo utilizando la opción

-l
-l

para el

comando ls. A continuación, vamos a ver un listado del directorio /var/log como un ejemplo, puesto que proporciona una salida variada:

-rw-r--r-- 1 root

root 17869 Mar 14 17:48 alternatives.log

drwxr-x--- 2 root

adm

4096 Mar 14 17:48 apache2

drwxr-xr-x 2 root

root

4096 Mar 14 17:45 apt

-rw-r----- 1 syslog adm

380 Jul 28 03:45 auth.log

-rw-r--r-- 5 root

root

47816 Mar 2 23:10 bootstrap.log

-rw-rw---- 5 root

utmp

0 Mar

2 23:10 btmp

-rw-r----- 1 syslog adm

324 Jul 28 03:45 cron.log

-rw-r----- 1 root

adm

85083 Mar 14 17:48 dmesg

-rw-r--r-- 1 root

root 315196 Mar 14 17:48 dpkg.log

-rw-r--r-- 1 root

root

32064 Mar 14 17:48 faillog

drwxr-xr-x 2 root

root

4096 Jun 30 06:53 fsck

-rw-r----- 1 syslog adm

106 Jul 28 03:45 kern.log

-rw-rw-r-- 1 root

utmp 292584 Jul 28 03:45 lastlog

-rw-r----- 1 syslog adm

18703 Jul 28 03:46 syslog

drwxr-xr-x 2 root

root

4096 Apr 11

2014 upstart

-rw-rw-r-- 1 root

utmp

384 Jul 28 03:45 wtmp

Cada línea corresponde a un archivo dentro del directorio. La información puede dividirse en campos separados por espacios. Los campos son los siguientes:

Tipo de archivo

 

- d
-
d

rw-r--r-- 1 root

root 17869 Mar 14 17:48 alternatives.log

rwxr-x--- 2 root

adm

4096 Mar 14 17:48 apache2

El primer campo en realidad contiene diez caracteres, donde el primer carácter indica el tipo de archivo y los siguiente nueve especifican los permisos. Los tipos de archivo son:

Símbolo Tipo de Archivo Descripción
Símbolo
Tipo de Archivo
Descripción
  • d para un directorio

Archivo que se usa para guardar otros archivos.

  • - para un archivo regular

Incluye archivos leíbles, imágenes, archivos binarios y archivos comprimidos

  • l para un enlace simbólico

Apunta a otro archivo

Símbolo Tipo de Archivo Descripción
Símbolo
Tipo de Archivo
Descripción

s

para la ranura

Permite la comunicación entre procesos

p

para una barra vertical

Permite la comunicación entre procesos

b

para un archivo de bloque

Permite la comunicación con el Hardware

c

para un archivo de carácter

Permite la comunicación con el Hardware

El primer archivo alternatives.log es un archivo regular -, mientras que el segundo archivo apache2 es un directorio d.

 

Los Permisos

 

d

rwxr-xr-x
rwxr-xr-x

1 root root 0 Apr 11 21:58 upstart

 

Los permisos indican de qué manera determinados usuarios pueden acceder a un archivo. Sigue leyendo para aprender más acerca de los permisos.

Cuenta de Vínculo Físico

-rw-r-----

1
1

syslog adm 23621 Aug 23 15:17 auth.log

Este número indica cuántos vínculos físicos apuntan a este archivo. Los vínculos físicos están más allá del alcance de este módulo, pero se cubren en el curso de NDG Linux Essentials.

Usuario Propietario

-rw-r----- 1

syslog
syslog

adm 416 Aug 22 15:43 kern.log

El usuario syslog es el propietario de este archivo. Cada vez que se crea un archivo, la propiedad se asigna automáticamente al usuario que lo creó.

Grupo Propietario

-rw-rw-r-- 1 root

utmp
utmp

292584 Aug 20 18:44 lastlog

Indica el grupo propietario de este archivo

Tamaño del Archivo

-rw-r----- 1 syslog adm

1087150
1087150

Aug 23 15:17 syslog.1

El tamaño del archivo en bytes. En el caso de un directorio, realmente podría ser un múltiplo del tamaño de bloques utilizado para el sistema de archivos.

Fecha y hora

drwxr-xr-x 1 root root 32

Jul 17 03:36
Jul 17 03:36

fsck

Esto indica el momento en el que el contenido del archivo se modificó por última vez.

Nombre de archivo

-rw-r--r-- 1 root root 47816 Jul 17 03:36

bootstrap.log
bootstrap.log

El último campo contiene el nombre del archivo o directorio.

 

Para considerar

 

En el caso de los vínculos simbólicos, se mostrará el nombre del vínculo junto con una flecha y la ruta de acceso del archivo original.

 

lrwxrwxrwx. 1 root root 22 Nov 6 2012 /etc/grub.conf

->
->

/boot/grub/grub.conf

Los vínculos simbólicos están más allá del alcance de este módulo, pero están cubiertos en el curso NDG Linux Essentials.

Ordenación

Por defecto la salida del comando

ls
ls

está ordenada alfabéticamente por nombre de

archivo. Puede ordenarse por otros métodos.

Observa

Las opciones en los siguientes ejemplos se combinarán con la opción

-l
-l

para que los

detalles pertinentes de los archivos se muestran. Observa los campos correspondientes a la opción de la búsqueda.

La opción

-t

ordenará los archivos por fecha y hora:

sysadmin@localhost:~$ ls -lt /var/log

total 840 -rw-r----- 1 syslog adm

-rw-r----- 1 syslog adm

27014 Jul 28 00:10 syslog 380 Jul 27 23:10 auth.log

-rw-rw-r-- 1 root

utmp 292584 Jul 27 23:10 lastlog

-rw-rw-r-- 1 root

utmp

384 Jul 27 23:10 wtmp

-rw-r----- 1 syslog adm

324 Jul 27 23:10 cron.log

-rw-r----- 1 syslog adm

106 Jul 27 23:10 kern.log

drwxr-xr-x 2 root

root

4096 Jun 30 06:56 fsck

-rw-r--r-- 1 root

root 17869 Mar 14 17:48 alternatives.log

-rw-r----- 1 root

adm

85083 Mar 14 17:48 dmesg

-rw-r--r-- 1 root

root

32064 Mar 14 17:48 faillog

-rw-r--r-- 1 root

root 315196 Mar 14 17:48 dpkg.log

drwxr-x--- 2 root

adm

4096 Mar 14 17:48 apache2

drwxr-xr-x 2 root

root

4096 Mar 14 17:45 apt

-rw-r--r-- 5 root -rw-rw---- 5 root drwxr-xr-x 2 root

utmp

root

root

47816 Mar 2 23:10 bootstrap.log

2 23:10 btmp 2014 upstart

0 Mar 4096 Apr 11

La opción

  • ordenará los archivos por tamaño del archivo:

sysadmin@localhost:~$ ls -l -S /var/log total 840

-rw-r--r-- 1 root -rw-rw-r-- 1 root

root 315196 Mar 14 17:48 dpkg.log utmp 292584 Jul 27 23:10 lastlog

-rw-r----- 1 root

adm

85083 Mar 14 17:48 dmesg

-rw-r--r-- 5 root

root

47816 Mar 2 23:10 bootstrap.log

-rw-r--r-- 1 root

root

32064 Mar 14 17:48 faillog

-rw-r----- 1 syslog adm

27014 Jul 28 00:10 syslog

-rw-r--r-- 1 root

root 17869 Mar 14 17:48 alternatives.log

drwxr-x--- 2 root

adm

4096 Mar 14 17:48 apache2

drwxr-xr-x 2 root

root

4096 Mar 14 17:45 apt

drwxr-xr-x 2 root

root

4096 Jun 30 06:56 fsck

drwxr-xr-x 2 root

root

4096 Apr 11

2014 upstart

-rw-rw-r-- 1 root

utmp

384 Jul 27 23:10 wtmp

-rw-r----- 1 syslog adm -rw-r----- 1 syslog adm -rw-r----- 1 syslog adm

380 Jul 27 23:10 auth.log 324 Jul 27 23:10 cron.log 106 Jul 27 23:10 kern.log

-rw-rw---- 5 root

utmp

0 Mar

2 23:10 btmp

La opción

  • invierte el orden de cualquier tipo de orden. Observa la diferencia cuando se

añade al ejemplo anterior:

sysadmin@localhost:~$ ls -lSr /var/log total 840

-rw-rw---- 5 root

utmp

0 Mar

2 23:10 btmp

-rw-r----- 1 syslog adm -rw-r----- 1 syslog adm -rw-r----- 1 syslog adm

106 Jul 27 23:10 kern.log 324 Jul 27 23:10 cron.log 380 Jul 27 23:10 auth.log

-rw-rw-r-- 1 root

utmp

384 Jul 27 23:10 wtmp

drwxr-xr-x 2 root

root

4096 Apr 11

2014 upstart

drwxr-xr-x 2 root

root

4096 Jun 30 06:56 fsck

drwxr-xr-x 2 root

root

4096 Mar 14 17:45 apt

drwxr-x--- 2 root

adm

4096 Mar 14 17:48 apache2

-rw-r--r-- 1 root

root 17869 Mar 14 17:48 alternatives.log

-rw-r----- 1 syslog adm

27014 Jul 28 00:10 syslog

-rw-r--r-- 1 root

root

32064 Mar 14 17:48 faillog

-rw-r--r-- 5 root

root

47816 Mar 2 23:10 bootstrap.log

-rw-r----- 1 root

adm

85083 Mar 14 17:48 dmesg

-rw-rw-r-- 1 root -rw-r--r-- 1 root

utmp 292584 Jul 27 23:10 lastlog root 315196 Mar 14 17:48 dpkg.log

Los números en el campo de tamaño de archivo cambian de descendente a ascendente.

Si se utiliza sólo la opción

-r
-r

, se listarán los archivos en orden alfabético inverso:

sysadmin@localhost:~$ ls -r /var/log

wtmp

lastlog

faillog

cron.log

auth.log alternatives.log

upstart kern.log dpkg.log btmp

apt

syslog

fsck

dmesg

bootstrap.log apache2

¿Sabías qué? Puedes encontrar Linux en:

-rw-r--r-- 1 root root 17869 Mar 14 17:48 alternatives.log -rw-r----- 1 syslog adm 27014 Jul 28

Acceso Administrativo

Hay muchos comandos de Linux que lidian con la información sensible como contraseñas, hardware del sistema, u operan bajo otras circunstancias excepcionales. Previniendo que los usuarios habituales ejecuten estos comandos ayuda a proteger el sistema. Iniciar la sesión como el usuario root proporciona acceso de administrador, lo que permite la ejecución de algunos de los comandos privilegiados.

El Comando

su
su

su OPCIONES USUARIO

El comando

  • te permite actuar temporalmente como un usuario diferente. Esto se logra

mediante la creación de un nuevo shell. Por defecto, si no se especifica una cuenta de

usuario, el comando administrativos.

su
su

abre un nuevo shell como usuario root, que proporciona privilegios

 

Observa

 

Se recomienda utilizar la opción login shell, ya que el login shell configura un shell completamente nuevo con la configuración del nuevo usuario. Esta opción puede ser especificada de tres maneras:

 

su -

su -l

su --login

Después de ejecutar el comando

su
su

, se requiere una contraseña. En nuestras máquinas

virtuales, la contraseña para ambas cuentas, la de root y, sysadmin es netlab123. Si la olvidas, ésta se muestra cada vez que se inicia una nueva máquina virtual. Como medida de seguridad, la contraseña no será visible cuando la vas introduciendo.

sysadmin@localhost:~$ su - Password:

root@localhost:~#

Observa que el prompt de comando ha cambiado para reflejar que has iniciado la sesión como usuario root. Para cerrar la sesión y volver a la cuenta sysadmin, utiliza el

comando

  • . Observa que el prompt cambia de nuevo:

root@localhost:~# exit exit sysadmin@localhost:~$

Para evitar que se ejecuten los comandos sensibles, hemos configurado el comando

Steam Locomotive (o «locomotora de vapor» en español), el comando de

sl
sl

, que requiere

acceso de administrador. Si el comando se ejecuta como sysadmin, fallará:

sysadmin@localhost:~$ sl sl: Permission denied

su
su

Utiliza el comando acceso administrativo:

para cambiar a la cuenta de root y ejecuta el comando de

sl
sl

con

sysadmin@localhost:~$ su - Password:

root@localhost:~# sl

|-----------I /~~\ /~~\ | / =| o |=-~~\ | __ Y __________________ ____ | |=======| I
|-----------I
/~~\
/~~\
|
/
=| o |=-~~\
|
__
Y
__________________
____
|
|=======|
I
/~~\
|
|/
-|
|
D
/[][]~\_______|
[][] []
|
__
/
__
H
___
|_D
\_/
\_/
\_/
\_/
\_O=====O=====O=====O/
\_/
__
|_D
D_|
__
D
__
|
/~\___/
|
_____
||
||
||
|=
___
|/-=|
____________________
___________
____
)
|
|
|
|(_)---
\__I_I_____===__|_________|
/
|
_D _|
___________
________
====
(@@@)
=|
(
(@@@@)
)
(
@
O
@
()
@@
)
(
) (@)
|
| ________
=|
|
]
[
|
H
|
|
|
_|
||_| |_||
(@@) (
|
|
|
H
|
|
/
_________________
|
___
___

Utilice el comando

exit
exit

otra vez para volver a la cuenta sysadmin.

root@localhost:~# exit exit sysadmin@localhost:~$

El Comando sudo

sudo [OPCIONES] COMANDO

El comando

sudo
sudo

permite que el usuario ejecute un comando como otro usuario sin crear

un nuevo shell. En cambio, para ejecutar un comando con privilegios de administrador,

utilizalo como argumento para el comando

sudo
sudo

. Igual que el comando

su
su

, el

comando

sudo
sudo

asume por defecto que la cuenta del usuario root debe utilizarse para

ejecutar comandos.

Para considerar

El comando

sudo
sudo

puede ser usado para utilizar temporalmente otras cuantas también.

Para especificar otro usuario de cuenta utiliza la opción

-u

.

Ejecuta el comando

sl

como el usuario root poniendo

sudo

delante de éste:

 
Password:
Password:

Nota:

Recuerda que la contraseña es netlab123. El prompt de la contraseña no aparecerá de

nuevo mientras el usuario continúa ejecutando comandos de cinco minutos.

sudo
sudo

con diferencia de menos

Una vez que el comando haya terminado y el prompt no haya cambiado, sigues registrado

como sysadmin. El comando

sudo
sudo

sólo proporciona acceso administrativo para la

ejecución del comando especificado. Esto es una ventaja, ya que reduce el riesgo de que

un usuario accidentalmente ejecute un comando como root. La intención de ejecutar un

comando es clara; el comando se ejecuta como root si tiene como prefijo el

comando

sudo
sudo

. De lo contrario, se ejecuta el comando como un usuario normal.

Los Permisos

Los permisos determinan en que manera los diferentes usuarios pueden interactuar con un

archivo o directorio. Cuando se lista un archivo con el comando

ls -l
ls -l

, la salida incluye

información de permiso. Por ejemplo, vamos a usar un script llamado hello.sh ubicado

en el directorio Documents:

 

Observa Utiliza el siguiente comando para cambiar al directorio Documents:

 
 

sysadmin@localhost:~$ cd ~/Documents sysadmin@localhost:~/Documents$ ls -l hello.sh

 

-rw-rw-r-- 1 sysadmin sysadmin 21 Aug

1 02:35 hello.sh

A continuación vas a ver una revisión de los campos correspondientes a los permisos.

Campo del Tipo de Archivo

-
-

rw-rw-r-- 1 sysadmin sysadmin 21 Aug

1 02:35 hello.sh

El primer carácter de esta salida indica el tipo de un archivo. Recuerda que si el primer carácter es un -, entonces es un archivo regular. Si el carácter era una d, entonces es un directorio.

Campo de los Persmisos

-

rw-rw-r--
rw-rw-r--

1 sysadmin sysadmin 21 Aug

1 02:35 hello.sh

Después del carácter del tipo de archivo, se muestran los permisos. Los permisos se dividen en tres grupos de tres caracteres:

Propietario

El primer grupo para el usuario que posee el archivo. Si tu cuenta actual es el usuario propietario del archivo, entonces se aplicará el primer grupo de los tres permisos y los otros permisos no tienen ningún efecto.

El usuario que posee el archivo y a quién se aplican estos permisos, puede ser determinado por el campo de user owner:

-rw-rw-r-- 1

sysadmin
sysadmin

sysadmin 21 Aug

1 02:35 hello.sh

Grupo

-rw-

rw-
rw-

r-- 1 sysadmin sysadmin 21 Aug

1 02:35 hello.sh

El segundo conjunto para el grupo propietario del archivo. Si tu cuenta actual no es el usuario propietario del archivo y eres miembro de un grupo que posee el archivo, entonces se aplicará el segundo grupo de los tres permisos y los otros permisos no tendrán ningún efecto.

El grupo de este archivo puede ser determinado por el campo group owner:

-rw-rw-r-- 1 sysadmin

sysadmin
sysadmin

21 Aug

1 02:35 hello.sh

Otro

r--
r--
  • -rw-rw- 1 sysadmin sysadmin 21 Aug

1 02:35 hello.sh

El último conjunto para todos los demás, cualquier usuario a quien no le aplican los otros dos conjuntos de permisos. Si no eres el usuario propietario del archivo o un miembro del grupo que posee el archivo, se te aplicaran el tercer conjunto de permisos.

Los Tipos de Permisos

Hay tres permisos diferentes que pueden colocarse en un archivo o directorio: permiso de lectura, escritura y ejecución. La manera en que estos permisos se aplican difiere en el caso de los archivos y de los directorios, tal como se muestra en la siguiente tabla:

Permiso

Efectos en el archivo

Efectos en el directorio

     

read (o

Permite que el contenido del

Sin permiso de ejecución en el directorio,

«leer» en

archivo se lea o copie.

permite un listado no detallado de los

español) (r)

archivos. Con permiso de ejecutar, el

comando

ls -l
ls -l

puede proporcionar una

lista detallada.

     

write (o

Permite modificar y sobrescribir el

Para que este permiso funcione, el directorio

«escribir» en

contenido. Permite añadir o quitar

debe también tener el permiso de ejecución.

español)

los archivos de un directorio.

 

Permiso

Efectos en el archivo

Efectos en el directorio

     
 

execute (o

Permite que un archivo se ejecute

Permite a que un usuario se cambie al

«ejecutar» en

como un proceso, aunque los

directorio si el directorio padre tiene también

español)

archivos de script también requieren permiso de lectura.

permiso de escritura.

Para considerar

 

Entender los permisos que se aplican es una habilidad importante en Linux. Por ejemplo, considera el siguiente grupo de permisos:

 

-r--rw-rwx. 1 sysadmin staff 999 Apr 10 2013 /home/sysadmin/test

   

En este escenario, el usuario sysadmin acaba teniendo menos acceso a este archivo que los miembros del grupo staff o cualquier otro. El usuario sysadmin sólo tiene permisos de r--. No importa si el usuario sysadmin es un miembro del grupo staff; una vez se ha establecido la propiedad del usuario, se aplicarán sólo los permisos del usuario propietario.

Cambiar los Permisos de Archivo

El comando

chmod
chmod

se utiliza para cambiar los permisos de un archivo o directorio. Sólo el

usuario root o el usuario que posee el archivo puede cambiar los permisos de un archivo.

Para considerar

 

¿Por qué el comando se llama

chmod
chmod

en vez de chperm? A los permisos se les solía

referir como modos de acceso, por lo que el comando

chmod
chmod

realmente significa cambiar

los modos de acceso. (o «change the modes of access» en inglés)

 

Hay dos métodos para cambiar los permisos con el comando

chmod

: simbólico y octal. El

método simbólico es bueno para cambiar un conjunto de permisos a la vez. El método octal o numérico requiere el conocimiento del valor octal de cada uno de los permisos y requiere que todos los tres conjuntos de permisos (usuario, grupo, otros) se especifiquen cada vez. Para la simplicidad, se cubrirá sólo el método simbólico. Para aprender más sobre el método octal puedes consultar el curso NDG Linux Essentials.

 

Observa Utiliza el siguiente comando para cambiar al directorio Documents:

 
 

sysadmin@localhost:~$ cd ~/Documents

El Método Simbólico

chmod [<COJUNTO DE PERMISOS><ACCIÓN><PERMISOS>]

...

ARCHIVO

Para utilizar el método simbólico del permisos vas a cambiar:

chmod
chmod

primero tienes que indicar que conjunto de

chmod [

<CONJUNTO DE PERMISOS>

<ACCIÓN><PERMISOS>]

...

ARCHIVO

Símbolo

Significado

   

u

Usuario: El usuario que posee el archivo.

   

g

Grupo: El grupo que posee el archivo.

   

o

Otros: Cualquiera que no sea el usuario propietario o miembro del grupo propietario.

   

a

Todos: Se refiere al usuario, grupo y otros.

A continuación, especifica un símbolo de acción:

chmod [<CONJUNTO DE PERMISOS>

<ACCIÓN>
<ACCIÓN>

<PERMISOS>]

...

ARCHIVO

 

Símbolo

Significado

   

+

Agregar el permiso, si es necesario

   

=

Especificar el permiso exacto

   

-

Quitar el permiso, si es necesario

Después de un símbolo de acción, especifica uno o más permisos sobre el que quieres actuar.

chmod [<CONJUNTO DE PERMISOS><ACCIÓN>

<PERMISOS>
<PERMISOS>

]

...

ARCHIVO

 

Símbolo

Significado

   

r

lectura

   

w

escritura

   

x

ejecución

Por último, un espacio y los nombres de los archivos para asignar los permisos.

chmod [<CONJUNTO DE PERMISOS><ACCIÓN><PERMISOS>] ...

ARCHIVO
ARCHIVO

El archivo hello.sh utilizado en los ejemplos en la página anterior es una secuencia de comandos. Un script es un archivo que puede ser ejecutado, similar a un comando:

sysadmin@localhost:~/Documents$ ls -l hello.sh

-rw-rw-r-- 1 sysadmin sysadmin 21 Aug

1 02:35 hello.sh

Sin embargo en la actualidad, el permiso de ejecución no está configurado para ninguno de los grupos de permisos:

-rw

  • rw

-
-
-
-
  • r- 1 sysadmin sysadmin 21 Aug

1 02:35 hello.sh

Tratar de ejecutar este script con la siguiente sintaxis resultará en error:

sysadmin@localhost:~/Documents$ ./hello.sh -bash: ./hello.sh: Permission denied

Puesto que el sistema inició la sesión como el usuario sysadmin, y el sysadmin es el dueño de este archivo, proporcionar al usuario propietario el permiso de ejecución debe

permitirte ejecutar este script. Al usar el comando

chmod
chmod

con el carácter u para representar

el conjunto de permisos del propietario usuario, el carácter + para indicar que se añade un permiso, y el carácter x para representar el permiso de ejecución, el comando se debe ejecutar como sigue:

sysadmin@localhost:~/Documents$ chmod u+x hello.sh

Si no arroja una salida, esto significa que el comando se ha ejecutado correctamente.

Comprueba Confirme comprobando los permisos usando el comando

ls -l :
ls -l :

sysadmin@localhost:~/Documents$ ls -l hello.sh

-rwxrw-r-- 1 root sysadmin 112 Aug

1 03:48 hello.sh

El usuario propietario ahora tiene el permiso de ejecución listado:

-rw

  • rw-r-- 1 sysadmin sysadmin 21 Aug

1 02:35 hello.sh

Por último, trata de ejecutar el script otra vez. Utiliza la sintaxis del comando que se muestra a continuación:

./hello.sh

sysadmin@localhost:~/Documents$ ./hello.sh

______________ ( Hello World! )

--------------

\

\

 

<(^)

( )
(
)
   

Para considerar

 

Observa que para ejecutar la secuencia de comandos en el ejemplo anterior, la combinación de caracteres . / fue colocada delante del nombre del script.

 
./
./

hello.sh

 

Esto indica que el «comando» debe ejecutarse desde el directorio actual.

 

Cambiar la Propiedad de Archivo

El propietario de un archivo es el usuario que lo crea. El comando

chown
chown

se utiliza para

cambiar la propiedad de los archivos y directorios. Cambiar el usuario propietario requiere acceso de administrador, un usuario normal no puede utilizar este comando para cambiar el usuario propietario de un archivo, ni siquiera para pasar la propiedad de uno de sus

propios archivos a otro usuario. Sin embargo, el comando

chown
chown

también permite cambiar

la propiedad del grupo, que se puede lograr a través del root o el propietario del archivo.

Para cambiar el usuario propietario de un archivo, se puede utilizar la siguiente sintaxis. El primer argumento [OWNER] especifica que el usuario debe ser el nuevo dueño. El segundo argumento FILE especifica de qué archivo está cambiando de propiedad.

chown [OPCIONES] [DUEÑO] ARCHIVO

 

Observa Utiliza el siguiente comando para cambiar al directorio Documents:

 
 

sysadmin@localhost:~$ cd ~/Documents

Actualmente todos los archivos en el directorio Documents son propiedad del

usuario sysadmin. Esto se puede verificar mediante el uso del comando que la tercera columna indica al usuario propietario.

ls -l
ls -l

. Recuerda

sysadmin@localhost:~/Documents$ ls -l

total 148 drwxrwxr-x 2 sysadmin sysadmin

4096 Aug

1 03:40 School

drwxrwxr-x 2 sysadmin sysadmin

4096 Aug

1 03:40 Work

-rw-r--r-- 1 sysadmin sysadmin -rw-r--r-- 1 sysadmin sysadmin -rw-r--r-- 1 sysadmin sysadmin

39 Mar 14 17:48 adjectives.txt 90 Mar 14 17:48 alpha-first.txt 89 Mar 14 17:48 alpha-

first.txt.original -rw-r--r-- 1 sysadmin sysadmin -rw-r--r-- 1 sysadmin sysadmin

106 Mar 14 17:48 alpha-second.txt 195 Mar 14 17:48 alpha-third.txt

-rw-r--r-- 1 sysadmin sysadmin -rw-r--r-- 1 sysadmin sysadmin -rw-r--r-- 1 sysadmin sysadmin -rwxrw-r-- 1 sysadmin sysadmin -rw-r--r-- 1 sysadmin sysadmin -rw-r--r-- 1 sysadmin sysadmin -rw-r--r-- 1 sysadmin sysadmin

390 Mar 14 17:48 alpha.txt

42 Mar 14 17:48 animals.txt 14 Mar 14 17:48 food.txt

112 Aug

1 03:48 hello.sh

67 Mar 14 17:48 hidden.txt 10 Mar 14 17:48 letters.txt 83 Mar 14 17:48 linux.txt

-rw-r--r-- 1 sysadmin sysadmin 66540 Mar 14 17:48 longfile.txt

-rw-r--r-- 1 sysadmin sysadmin -rw-r--r-- 1 sysadmin sysadmin -rw-r--r-- 1 sysadmin sysadmin -rw-r--r-- 1 sysadmin sysadmin -rw-r--r-- 1 sysadmin sysadmin -rw-r--r-- 1 sysadmin sysadmin

235 Mar 14 17:48 newhome.txt 10 Mar 14 17:48 numbers.txt 77 Mar 14 17:48 os.csv 59 Mar 14 17:48 people.csv 110 Mar 14 17:48 profile.txt 51 Mar 14 17:48 red.txt

Para cambiar al propietario del script hello.sh al usuario root, utiliza root como primer argumento y hello.sh como segundo argumento. No olvides utilizar el

comando sudo para obtener los privilegios de administrador necesarios. Utiliza la contraseña netlab123 cuando se solicite:
comando sudo para obtener los privilegios de administrador necesarios. Utiliza la
contraseña netlab123 cuando se solicite:

sysadmin@localhost:~/Documents$ sudo chown root hello.sh [sudo] password for sysadmin:

Confirma que el usuario propietario ha cambiado introduciendo el comando el nombre de archivo como argumento para limitar la salida:

ls -l
ls -l

. Utiliza

sysadmin@localhost:~/Documents$ ls -l hello.sh

-rwxrw-r-- 1 root sysadmin 112 Aug

1 03:48 hello.sh

El campo de usuario propietario ahora es root lo que indica que el cambio fue exitoso.

 

Para considerar Trata de ejecutar el script de hello.sh otra vez. ¡Se produce un error! ¿Por qué?

 
 

sysadmin@localhost:~/Documents$ ./hello.sh -bash: ./hello.sh: Permission denied

 

Sólo el usuario propietario tiene el permiso de ejecución, y ahora el usuario root es el usuario propietario. Ahora, este archivo requiere acceso de administrador para que se

 

ejecute. Utiliza el comando

sudo

para ejecutar el script como usuario root.

 

sysadmin@localhost:~/Documents$ sudo ./hello.sh [sudo] password for sysadmin:

 

______________ ( Hello World! )

-------------- \ \ <(^) ( )
--------------
\
\
<(^)
(
)

Mover los Archivos

El comando mv sirve para mover un archivo desde una ubicación en el sistema de archivos a otra.

mv ORIGEN DESTINO

El comando mv requiere al menos dos argumentos. El primer argumento es la fuente, una ruta para el archivo que se va a mover. El segundo argumento es el destino, una ruta hacia dónde se moverá el archivo. Los archivos que se quieren copiar a veces se denominan fuente y la ubicación a dónde se van a colocar las copias se denominan destinos.

 

Observa Utiliza el siguiente comando para cambiar al directorio Documents:

 
 

sysadmin@localhost:~$ cd ~/Documents

Para mover el archivo people.csv al directorio Work, utiliza el nombre de archivo como la fuente y el nombre del directorio como destino:

sysadmin@localhost:~/Documents$ mv people.csv Work

Si se mueve un archivo de un directorio a otro sin especificar un nuevo nombre para el archivo, se conservará su nombre original. El paso anterior puede confirmarse mediante el comando ls en el directorio Work:

sysadmin@localhost:~/Documents$ ls Work people.csv

El comando mv puede mover varios archivos, siempre que el argumento final proporcione al comando el destino. Por ejemplo, para mover tres archivos en al directorio School:

sysadmin@localhost:~/Documents$ mv numbers.txt food.txt alpha.txt School sysadmin@localhost:~/Documents$ ls School Art Engineering Math alpha.txt food.txt numbers.txt

Mover un archivo dentro del mismo directorio es una manera eficaz de cambiar el nombre. Por ejemplo, en el siguiente ejemplo el archivo animals.txt recibe un nombre nuevo de zoo.txt:

mv animals.txt zoo.txt

 

sysadmin@localhost:~/Documents$ ls

 

School

alpha-second.txt hidden.txt

newhome.txt

Work

alpha-third.txt

letters.txt

os.csv

adjectives.txt

animals.txt

linux.txt

profile.txt

alpha-first.txt hello.sh

longfile.txt red.txt

sysadmin@localhost:~/Documents$ mv animals.txt zoo.txt

sysadmin@localhost:~/Documents$ ls

 

School

alpha-second.txt letters.txt

os.csv

Work

alpha-third.txt

linux.txt

profile.txt

adjectives.txt

hello.sh

longfile.txt red.txt

alpha-first.txt hidden.txt

newhome.txt

zoo.txt

Para Considerar

Los permisos pueden tener un impacto en los comandos de la administración de archivos, como el comando mv. Mover un archivo requiere permisos de escritura y ejecución en ambos directorios, el origen y el destino.

¡Pingüinos en el Espacio! NASA utiliza Linux. La Estación Espacial Internacional funciona en Linux. Hemos migrado las funciones clave de Windows a Linux porque

nece

sitáb

amos

un

siste

ma

opera

tivo

estab

le y

fiable

. El

Mars

Rove

r

«Curi

osity

».