Listados de archivos

Section header image

Listados de archivos 5

El comando ls se utiliza para enumerar el contenido de un directorio. Ha visto cómo se utiliza en varios ejemplos anteriores. Esta página le ayudará a sentirse más cómodo con su uso.

ls [OPCIONES] [ARCHIVO]

De forma predeterminada, el comando ls usado sin opciones o argumentos mostrará los archivos contenidos en el directorio actual:

sysadmin@localhost:~$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates Videos

Para obtener información detallada sobre los archivos, como el tipo de archivo, los permisos, las propiedades o el sello horario, ejecute una lista larga utilizando la opción -l con el comando ls. En el ejemplo siguiente, se utiliza una lista del directorio /var/log, ya que proporciona una variedad de resultados:

sysadmin@localhost:~$ ls -l /var/log/
total 844                                                                       
-rw-r--r-- 1 root   root  18047 Dec 20  2017 alternatives.log                   
drwxr-x--- 2 root   adm    4096 Dec 20  2017 apache2                            
drwxr-xr-x 1 root   root   4096 Dec 20  2017 apt                                
-rw-r----- 1 syslog adm    1346 Oct  2 22:17 auth.log                           
-rw-r--r-- 1 root   root  47816 Dec  7  2017 bootstrap.log                      
-rw-rw---- 1 root   utmp      0 Dec  7  2017 btmp                               
-rw-r----- 1 syslog adm     547 Oct  2 22:17 cron.log                           
-rw-r----- 1 root   adm   85083 Dec 20  2017 dmesg                              
-rw-r--r-- 1 root   root 325238 Dec 20  2017 dpkg.log                           
-rw-r--r-- 1 root   root  32064 Dec 20  2017 faillog                            
drwxr-xr-x 2 root   root   4096 Dec  7  2017 fsck                               
-rw-r----- 1 syslog adm     106 Oct  2 19:57 kern.log                           
-rw-rw-r-- 1 root   utmp 292584 Oct  2 19:57 lastlog                            
-rw-r----- 1 syslog adm   19573 Oct  2 22:57 syslog                             
drwxr-xr-x 2 root   root   4096 Apr 11  2014 upstart                            
-rw-rw-r-- 1 root   utmp    384 Oct  2 19:57 wtmp 

Cada línea corresponde a un archivo contenido en el directorio. La información sobre cada archivo se puede dividir en campos separados por espacios. Los campos son los siguientes:

  1. Tipo de archivo

    -rw-r--r-- 1 root   root  18047 Dec 20  2017 alternatives.log       
                
    drwxr-x--- 2 root   adm    4096 Dec 20  2017 apache2  
    

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

    Símbolo Tipo de archivo Descripción
    d directorio Un archivo usado para contener otros archivos.
    - archivo ordinario Incluye archivos leíbles, imágenes, archivos binarios, y archivos comprimidos.
    l enlaces simbólicos Apunta a otro archivo.
    s socket Permite la comunicación entre procesos.
    p tubería (pipe) Permite la comunicación entre procesos.
    b archivo bloque Usado para comunicaciones con el equipo (hardware).
    c archivo carácter Usado para comunicaciones con el equipo (hardware).

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

  2. Permisos

    drwxr-xr-x 2 root   root   4096 Apr 11  2014 upstart

    Los permisos indican cómo determinados usuarios pueden acceder a un archivo. Siga leyendo para obtener más información sobre los permisos.

  3. Número de enlaces directos

    -rw-r----- 1 syslog adm    1346 Oct  2 22:17 auth.log

    Este número indica cuántos enlaces directos apuntan a este archivo. Los enlaces directos están fuera del alcance de este módulo, pero están cubiertos en el curso NDG Linux Essentials.

  4. Propietario del archivo

    -rw-r----- 1 syslog adm     106 Oct  2 19:57 kern.log

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

  5. Grupo propietario del archivo

    -rw-rw-r-- 1 root   utmp 292584 Oct  2 19:57 lastlog

    Indica qué grupo posee este archivo.

  6. Tamaño del archivo

    -rw-r----- 1 syslog adm   19573 Oct  2 22:57 syslog

    Los directorios y archivos más grandes pueden mostrarse en kilobytes ya que mostrar su tamaño en bytes resultaría en un número demasiado grande. Por lo tanto, en el caso de un directorio, este número podría ser un múltiplo del tamaño de bloque utilizado por el sistema de archivos. El tamaño de bloque es el tamaño de una serie de datos almacenados en el sistema de archivos.

  7. Sello horario o de tiempo

    drwxr-xr-x 2 root   root   4096 Dec  7  2017 fsck

    Indica la fecha y hora en que el contenido del archivo se modificó por última vez.

  8. Nombre del archivo

    -rw-r--r-- 1 root   root  47816 Dec  7  2017 bootstrap.log

    El campo final contiene el nombre del archivo o directorio.

  9. A tener en cuenta

    En el caso de enlaces simbólicos, un archivo que apunta a otro archivo, el nombre del enlace se mostrará junto a una flecha y el nombre de la ruta del archivo original.

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

    Los enlaces simbólicos están fuera del alcance de este módulo, pero están cubiertos en el curso NDG Linux Essentials.

Ordenar archivos

Por defecto, el resultado del comando ls está ordenado alfabéticamente según el nombre del archivo. Pero también se puede ordenar usando otros método.

Siga leyendo

Las opciones en los siguientes ejemplos se combinarán con la opción -l para mostrar los detalles relevantes de cada archivo. Preste atención a los campos correspondientes a la opción de búsqueda.

La opción -t ordenará los archivos por su sello de tiempo (timestamp):

sysadmin@localhost:~$ ls -lt /var/log                                           
total 844                                                                       
-rw-r----- 1 syslog adm   19573 Oct  2 22:57 syslog                             
-rw-r----- 1 syslog adm    1346 Oct  2 22:17 auth.log                           
-rw-r----- 1 syslog adm     547 Oct  2 22:17 cron.log                           
-rw-rw-r-- 1 root   utmp 292584 Oct  2 19:57 lastlog                            
-rw-rw-r-- 1 root   utmp    384 Oct  2 19:57 wtmp                               
-rw-r----- 1 syslog adm     106 Oct  2 19:57 kern.log                           
-rw-r--r-- 1 root   root  18047 Dec 20  2017 alternatives.log                   
-rw-r--r-- 1 root   root  32064 Dec 20  2017 faillog                            
-rw-r----- 1 root   adm   85083 Dec 20  2017 dmesg                              
-rw-r--r-- 1 root   root 325238 Dec 20  2017 dpkg.log                           
drwxr-x--- 2 root   adm    4096 Dec 20  2017 apache2                            
drwxr-xr-x 1 root   root   4096 Dec 20  2017 apt                                
-rw-r--r-- 1 root   root  47816 Dec  7  2017 bootstrap.log                      
drwxr-xr-x 2 root   root   4096 Dec  7  2017 fsck                               
-rw-rw---- 1 root   utmp      0 Dec  7  2017 btmp                               
drwxr-xr-x 2 root   root   4096 Apr 11  2014 upstart              

La opción -S (size) ordenará los archivos por tamaño de archivo:

sysadmin@localhost:~$ ls -l -S /var/log                                         
total 844                                                                       
-rw-r--r-- 1 root   root 325238 Dec 20  2017 dpkg.log                           
-rw-rw-r-- 1 root   utmp 292584 Oct  2 19:57 lastlog                            
-rw-r----- 1 root   adm   85083 Dec 20  2017 dmesg                              
-rw-r--r-- 1 root   root  47816 Dec  7  2017 bootstrap.log                      
-rw-r--r-- 1 root   root  32064 Dec 20  2017 faillog                            
-rw-r----- 1 syslog adm   19573 Oct  2 22:57 syslog                             
-rw-r--r-- 1 root   root  18047 Dec 20  2017 alternatives.log                   
drwxr-x--- 2 root   adm    4096 Dec 20  2017 apache2                            
drwxr-xr-x 1 root   root   4096 Dec 20  2017 apt                                
drwxr-xr-x 2 root   root   4096 Dec  7  2017 fsck                               
drwxr-xr-x 2 root   root   4096 Apr 11  2014 upstart                            
-rw-r----- 1 syslog adm    1346 Oct  2 22:17 auth.log                           
-rw-r----- 1 syslog adm     547 Oct  2 22:17 cron.log                           
-rw-rw-r-- 1 root   utmp    384 Oct  2 19:57 wtmp                               
-rw-r----- 1 syslog adm     106 Oct  2 19:57 kern.log                           
-rw-rw---- 1 root   utmp      0 Dec  7  2017 btmp

La opción -r (reverse) invertirá el orden de cualquier tipo de ordenación. Observe la diferencia cuando se agrega al ejemplo anterior:

sysadmin@localhost:~$ ls -lSr /var/log
total 844                                                                       
-rw-rw---- 1 root   utmp      0 Dec  7  2017 btmp                               
-rw-r----- 1 syslog adm     106 Oct  2 19:57 kern.log                           
-rw-rw-r-- 1 root   utmp    384 Oct  2 19:57 wtmp                               
-rw-r----- 1 syslog adm     654 Oct  2 23:17 cron.log                           
-rw-r----- 1 syslog adm    1669 Oct  2 23:17 auth.log                           
drwxr-xr-x 2 root   root   4096 Apr 11  2014 upstart                            
drwxr-xr-x 2 root   root   4096 Dec  7  2017 fsck                               
drwxr-xr-x 1 root   root   4096 Dec 20  2017 apt                                
drwxr-x--- 2 root   adm    4096 Dec 20  2017 apache2                            
-rw-r--r-- 1 root   root  18047 Dec 20  2017 alternatives.log                   
-rw-r----- 1 syslog adm   19680 Oct  2 23:17 syslog                             
-rw-r--r-- 1 root   root  32064 Dec 20  2017 faillog                            
-rw-r--r-- 1 root   root  47816 Dec  7  2017 bootstrap.log                      
-rw-r----- 1 root   adm   85083 Dec 20  2017 dmesg                              
-rw-rw-r-- 1 root   utmp 292584 Oct  2 19:57 lastlog                            
-rw-r--r-- 1 root   root 325238 Dec 20  2017 dpkg.log        

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

Utilizando solo la opción -r con la lista de 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
Did you know you can find Linux in: Facebook, Amazon, Google, McDonald's, NASA, BMW, Tesla, Wikipedia, United States Postal Service, Tesla.

Actualización de contraseñas de usuario 18/05/2021

Section header image

Actualización de contraseñas de usuario

El comando passwd se utiliza para actualizar la contraseña de un usuario. Los usuarios solo pueden cambiar sus propias contraseñas, mientras que el usuario root puede actualizar la contraseña para cualquier usuario.

passwd [OPCIONES] [USUARIO]

Por ejemplo, ya que hemos iniciado sesión como usuario sysadmin, podemos cambiar la contraseña de esa cuenta. Ejecute el comando passwd. Se le pedirá que introduzca la contraseña actual una vez y la contraseña nueva dos veces. Por razones de seguridad, no se muestra ningún resultado mientras se está escribiendo la contraseña. La salida se muestra de la siguiente manera:

sysadmin@localhost:~$ passwd                                                    
Changing password for sysadmin.                                                 
(current) UNIX password: netlab123                                                       
Enter new UNIX password:                                                       
Retype new UNIX password:                                                       
passwd: password updated successfully

Si el usuario desea ver información sobre su contraseña, puede utilizar la opción -S:

sysadmin@localhost:~$ passwd -S sysadmin                                        
sysadmin P 12/20/2017 0 99999 7 -1

Los campos de salida se explican a continuación:

Campo Ejemplo Significado
Nombre del usuario sysadmin El nombre del usuario.
Estado de la contraseña P

P indica que es una contraseña utilizable.

L indica que la contraseña está bloqueada.

NP indica que no hay contraseña.

Fecha de actualización 03/01/2015 La fecha en la que la contraseña fue actualizada por última vez.
Mínimo 0 El número mínimo de días que deben pasar antes de que el usuario pueda cambiar la contraseña actual.
Máximo 99999 El máximo número de días que restan hasta que expire la contraseña.
Aviso 7 El número de días precedentes a la expiración de la contraseña para que el usuario reciba el aviso.
Inactividad -1 El número de días después de la expiración de la contraseña que la cuenta del usuario se mantendrá activa.

Siga leyendo

Cambie a la cuenta root mediante el siguiente comando:

sysadmin@localhost:~$ su root                                                   
Password:                                                                       
root@localhost:~#

Use netlab123 como contraseña.

El usuario root puede cambiar la contraseña de cualquier usuario. Si el usuario root desea cambiar la contraseña de sysadmin, ejecutará el siguiente comando:

root@localhost:~# passwd sysadmin                                               
Enter new UNIX password:                                                        
Retype new UNIX password:                                                       
passwd: password updated successfully

Siga leyendo

Salga de la cuenta root mediante el comando exit:

root@localhost:~# exit                                                        
exit

Configuración de redes 11/05/2021

Section header image

Configuración de redes

El comando ifconfig significa “configuración de interfaz” (interface configuration) y se utiliza para mostrar información sobre la configuración de red.

ifconfig [OPCIONES] 

Nota

El comando iwconfig es similar al comando ifconfig, pero se refiere a interfaces de redes inalámbricas (wireless).

No todas las configuraciones de red son importantes para este módulo, pero en el siguiente ejemplo es importante tener en cuenta que la dirección IPv4 del dispositivo de red principal eth0 es 192.168.1.2 y que el dispositivo está activo actualmente (UP):

root@localhost:~# ifconfig                                     
eth0      Link encap:Ethernet  HWaddr 02:42:c0:a8:01:02                         
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0        
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1                    
          RX packets:59 errors:0 dropped:0 overruns:0 frame:0                   
          TX packets:86 errors:0 dropped:0 overruns:0 carrier:0                 
          collisions:0 txqueuelen:1000                                          
          RX bytes:4346 (4.3 KB)  TX bytes:5602 (5.6 KB)                        
                                                                                
lo        Link encap:Local Loopback                                             
          inet addr:127.0.0.1  Mask:255.0.0.0                                   
          UP LOOPBACK RUNNING  MTU:65536  Metric:1                              
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0                    
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0                  
          collisions:0 txqueuelen:1000                                          
          RX bytes:100 (100.0 B)  TX bytes:100 (100.0 B)           

Piense sobre lo siguiente

El dispositivo lo se conoce como dispositivo de loopback. Es un dispositivo de red especial utilizado por el sistema cuando envía datos basados en red a sí mismo.

El comando ifconfig también se puede utilizar para modificar temporalmente la configuración de red. Normalmente, estos cambios deben ser permanentes, por lo que raramente se usa el comando ifconfig para realizar dichos cambios.

El comando ping se utiliza para verificar la conectividad entre dos equipos. Para hacer esto, envía paquetes a otra máquina a través de la red. Que el remitente reciba una respuesta indica que es posible conectarse a esa máquina.

La información se envía mediante “paquetes”; que es la unidad encapsulada de datos enviada a través de una red. Para que los paquetes encuentren la otra computadora, necesitan una dirección. El comando ping utiliza direcciones IP para identificar un equipo en la red al que desea conectarse.

De forma predeterminada, el comando ping continuará enviando paquetes hasta que se introduzca el comando break (CTL +C) en la consola. Para limitar el número de pings que se envían, utilice la opción -c seguida del número de pings que desea enviar. El siguiente ejemplo muestra un ping limitado a 4 iteraciones usando -c 4.

Si el comando ping funciona, obtendrá un resultado como el siguiente:

root@localhost:~# ping -c 4 192.168.1.2                                       
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.                          
64 bytes from 192.168.1.2: icmp_req=1 ttl=64 time=0.051 ms                    
64 bytes from 192.168.1.2: icmp_req=2 ttl=64 time=0.064 ms                    
64 bytes from 192.168.1.2: icmp_req=3 ttl=64 time=0.050 ms                    
64 bytes from 192.168.1.2: icmp_req=4 ttl=64 time=0.043 ms                    
                                                                              
--- 192.168.1.2 ping statistics ---                                           
4 packets transmitted, 4 received, 0% packet loss, time 2999ms                
rtt min/avg/max/mdev = 0.043/0.052/0.064/0.007 ms                             
root@localhost:~#

Si el comando ping falla, recibirá un mensaje indicando que no se encontró el ordenador de destino o máquina remota (Destination Host Unreachable):

root@localhost:~# ping -c 4 192.168.1.3                                       
PING 192.168.1.3 (192.168.1.3) 56(84) bytes of data.                            
From 192.168.1.2 icmp_seq=1 Destination Host Unreachable                        
From 192.168.1.2 icmp_seq=2 Destination Host Unreachable                        
From 192.168.1.2 icmp_seq=3 Destination Host Unreachable                        
From 192.168.1.2 icmp_seq=4 Destination Host Unreachable                        
                                                                                
--- 192.168.1.3 ping statistics ---                                             
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3065ms     
pipe 4  
root@localhost:~#

El comando ping puede fallar aunque la máquina remota esté conectada a la red. Esto se debe a que, como medida de seguridad, algunos administradores configuran sus equipos, o incluso redes enteras, para que no respondan a solicitudes ping. El comando ping también funciona con un nombre de host, o con un nombre de dominio como yahoo.com. Usar ésto primero puede ahorrar tiempo, ya que si ese comando ping tiene éxito, indica que hay una resolución de nombre adecuada Y que la dirección IP también funciona correctamente.

Siga leyendo

Salga de la cuenta root mediante el comando exit:

root@localhost:~# exit                                                        
logout

SECURE SHELL 6/05/2021

Cómo usted recordara SSH es utilizado para acceder a equipos remotos dentro de una red. Con la finalidad de administrar y gestionar completamente nuestro servidor por medio de un intérprete de comandos o la interfaz gráfica.

Para realizar está práctica utilizaremos el sistema operativo opensuse como servidor y un cliente de windows, ambos sistemas operativos tienen que estar iniciados y dentro de la misma red dónde usted se encuentre en este caso porque estamos usando una maquina virtual.

Cabe mencionar que está distribución tiene preestablecido el servicio solo necesitamos abrir el cortafuegos y desde luego agregar al grupo sshd el usuario que haya decidido usará el servicio. Entonces iniciemos con lo siguiente:

  1. Ejecute la herramienta de yast   y dentro del centro de control de yast del lado izquierdo en el menu seleccione seguridad y usuarios ahora del lado derecho presione el icono cortafuegos, muy bien seleccione de su lado izquierdo servicios autorizados, observe del lado derecho dos interfaces gráficas con un menu desplegable  presione la segunda y seleccione SSH .
  2. Ahora regrese al nuevamente al menu seguridad y usuarios y presione el botón gestionar usuarios observe que del lado derecho se encuentran los usuarios que hemos dado de alta en este caso su nombre deberá seleccionarlo y presionar el botón editar . En los botones superiores presione el que dice detalles como verá hay varios cuadros de texto necesitamos que edite el segundo el cual lleva por nombre Directorio personal y lo direccione al siguiente path  /srv/www/htdocs   porque le daremos acceso a este usuario para que pueda administrar el portal web. Aun no termina ahora del lado derecho en el menu de opción llamado grupos seleccione sshd muy bien solo presione para finalizar el botón de aceptar y se escribirán los datos correspondientes.
  3. Ahora vayamos a nuestro cliente en este caso windows y como ya tiene instalado el programa ejecute CLI como se muestra en la siguiente figura:
  4. Complete los datos que se le piden como lo muestra la siguiente figura

 

Ahora solo presione el botón conectar y listo se realiza la autentificación con la llave pública de sus sistema operativo.

y se le solicitará el pwd del usuario en proceso de inicio de sesión.

Muy bien se dará cuenta que es un usuario que tiene privilegios limitados, pero usted puede modificar esas limitaciones… Hagamos una prueba por favor dar de alta a el usuario Gabriel Flores Hernandez remotamente utilizando la aplicación ssh         

Cambiar los permisos de los archivos

Section header image

Cambiar los permisos de los archivos

El comando chmod se utiliza para cambiar los permisos de un archivo o directorio. Sólo el usuario raíz o el usuario propietario del archivo puede cambiar los permisos de un archivo.

Considere esto

¿Por qué el comando se llama chmod en lugar de chperm? Los permisos solían denominarse modos de acceso, por lo que el comando chmod realmente significa cambiar los modos de acceso (change access mode).

Hay dos métodos para cambiar permisos usando el comando chmod: el método simbólico y el método octal. El método simbólico es útil para cambiar un conjunto de permisos a la misma vez. El método octal o numérico requiere conocer el valor octal de cada uno de los permisos y requiere que los tres conjuntos de permisos (usuario, grupo, otros) se especifiquen cada vez. Para simplificar las cosas, solamente trataremos el método simbólico. 

Siga leyendo

 

El método simbólico

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

Para usar el método simbólico de chmod primero debe indicar qué conjunto de permisos se está cambiando:

chmod [<CONJUNTO DE PERMISOS><ACCIÓN><PERMISOS>]... ARCHIVO
Símbolo Significado
u Usuario: El usuario propietario del archivo.
g Grupo: El grupo propietario del archivo.
o Otros: Cualquier otro que no sea el usuario propietario o un miembro del grupo propietario.
a Todos: Se refiere al usuario, grupo, y todos los demás.

A continuación, especifique un símbolo para la acción:

chmod [<CONJUNTO DE PERMISOS><ACCIÓN><PERMISOS>]... ARCHIVO
Símbolo Significado
+ Añadir permiso, si es necesario
= Especificar el permiso exacto
- Eliminar el permiso, si es necesario

Después del símbolo de acción, especifique uno o más permisos.

chmod [<CONJUNTO DE PERMISOS><ACCIÓN><PERMISOS>]... ARCHIVO
Símbolo Significado
r leer (read)
w escribir (write)
x ejecutar (execute)

Finalmente, añada un espacio y los nombres de ruta para los archivos a los que quiere asignar los permisos.

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

 

 

Permisos

Section header image

Permisos

Los permisos determinan la forma en que los diferentes usuarios pueden interactuar con un archivo o directorio. Al enumerar un archivo con el comando ls -l, el resultado incluye información sobre sus permisos.

 

A continuación repasamos los campos más relevantes para los permisos.

Tipo de archivo

-rw-r--r-- 1 sysadmin sysadmin 647 Dec 20  2017 hello.sh

El primer carácter de esta salida indica el tipo de archivo. Recuerde que si el primer carácter es un -, este es un archivo ordinario. Si el carácter fuera una d, se trataría de un directorio.

Permisos

-rw-r--r-- 1 sysadmin sysadmin 647 Dec 20  2017 hello.sh

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

  1. Propietario

    -rw-r--r-- 1 sysadmin sysadmin 647 Dec 20  2017 hello.sh

    El primer grupo se refiere al usuario que posee el archivo. Si su cuenta actual es la propietaria del archivo, se usará el primer grupo de permisos y los demás permisos no tendrán efecto.

    El usuario propietario del archivo y a quién se refieren estos permisos se puede determinar mediante el campo que muestra el usuario propietario:

    -rw-r--r-- 1 sysadmin sysadmin 647 Dec 20  2017 hello.sh
  2. Grupo

    -rw-r--r-- 1 sysadmin sysadmin 647 Dec 20  2017 hello.sh

    El segundo conjunto se refiere al grupo que posee el archivo. Si su cuenta actual no es la del propietario del archivo pero es miembro del grupo que posee el archivo, se aplicarán los permisos del grupo y los demás permisos no tendrán efecto.

    El grupo propietario para este archivo puede ser determinado en el campo grupo propietario:

    -rw-r--r-- 1 sysadmin sysadmin 647 Dec 20  2017 hello.sh
  3. Otros

    -rw-r--r-- 1 sysadmin sysadmin 647 Dec 20  2017 hello.sh

    El último grupo es para todos los demás, cualquiera a quien los dos primeros conjuntos de permisos no sean aplicables. Si no es el usuario que posee el archivo o un miembro del grupo que posee el archivo, se le aplicará el tercer conjunto de permisos.

Tipos de permisos

Un archivo o directorio puede presentar tres permisos diferentes: leerescribir y ejecutar. La forma en que se aplican estos permisos difiere entre archivos y directorios, como se muestra en la tabla siguiente:

Permiso Efectos sobre los Archivos Efectos sobre los Directorios
leer (read) (r) Permite que el contenido del archivo sea leído o copiado. Sin el permiso para ejecutar, permite obtener un listado poco detallado de los archivos que contiene el directorio. Con el permiso para ejecutar, ls -l proporciona un listado detallado de archivos.
escribir (write) (w) Permite modificar o reescribir el contenido del archivo. Permite añadir o eliminar archivos en un directorio. Para que este permiso funcione, el directorio debe tener permiso para ejecutar.
ejecutar (execute) (x) Permite que un archivo funcione como un proceso, aunque archivos script también requerirán el permiso leer (read). Permite que el usuario se traslade del directorio si en el directorio padre también posee permiso escribir (write).

A tener en cuenta

Comprender qué permisos se aplican en cada momento es una aptitud importante cuando trabajamos con Linux. Por ejemplo, considere el siguiente conjunto de permisos:

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

En este escenario, el usuario sysadmin termina teniendo menos acceso a este archivo que los miembros del grupo staff o todos los demás. El usuario sysadmin sólo tiene los permisos de r--. No importa si sysadmin es miembro del grupo staff; una vez establecida la propiedad del usuario, solo se aplican los permisos del usuario propietario.

 

Sintaxis de comandos básicos(Gnu/Linux)

Section header image

Sintaxis de comandos básicos

Este módulo se ocupa exclusivamente de la CLI o interfaz de línea de comandos, en lugar de la GUI o interfaz gráfica de usuario con la que quizás esté más familiarizado. El terminal CLI es una poderosa herramienta y a menudo es el método principal utilizado para administrar dispositivos pequeños de bajo consumo, servidores de computación de gran capacidad en la nube, y mucho más. Una comprensión básica del terminal es esencial para diagnosticar y reparar la mayoría de los sistemas basados en Linux. Puesto que Linux se ha vuelto tan omnipresente, incluso aquellos que planean trabajar con sistemas que no utilizan el núcleo Linux pueden beneficiarse de tener una comprensión básica del terminal.

¿Qué es un comando? Un comando es un programa de software que, cuando se ejecuta en la CLI (interfaz de línea de comandos), realiza una acción en el ordenador. Cuando usted escribe un comando, el sistema operativo ejecuta un proceso para leer su entrada, manipular datos y producir resultados. Un comando ejecuta un proceso en el sistema operativo, que luego hace que el ordenador realice una tarea determinada.

Para ejecutar un comando, el primer paso es escribir el nombre del comando. Haga clic en el terminal de la derecha. Escriba ls (letras minúsculas) y pulse Enter. Obtendrá un resultado parecido al del siguiente ejemplo:

cox:~# ls
bin  dev  home  boot  opt root  srv var

Generalmente, el nombre del comando se basa en la tarea que hace o en lo que el programador que creó el comando cree que mejor describe la función del comando. Por ejemplo, el comando ls muestra una lista de información sobre archivos. Asociar el nombre del comando con algo mnemotécnico sobre lo que hace puede ayudarle a recordar los comandos más fácilmente.

A tener en cuenta

Generalmente, los comandos distinguen entre mayúsculas y minúsculas. Por ejemplo LS es incorrecto y generará un mensaje de error, pero ls es correcto y se ejecutará normalmente.

cox:~# LS
-bash: LS: command no found

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

comando [opciones…] [argumentos…]

En otras palabras, escriba un comando, seguido de las opciones y/o argumentos antes de presionar la tecla Enter. Generalmente, las opciones (options) alteran el comportamiento del comando y los argumentos (arguments) son elementos o valores sobre los que debe actuar el comando. Aunque hay algunos comandos en Linux que no son completamente consistentes con estas normas de sintaxis, la mayoría de los comandos usan esta sintaxis o alguna similar.

En el ejemplo anterior, el comando ls se ejecutó sin opciones ni argumentos. Cuando este es el caso, su comportamiento predeterminado es el de devolver una lista de los archivos contenidos en el directorio actual.

cox:~# ls
bin  dev  home  boot  opt root  srv var

Argumentos

comando [opciones…] [argumentos…]

Un argumento (argument) se puede usar para especificar algo sobre lo que el comando debe actuar. Si al comando ls se le da el nombre de un directorio como argumento, obtendremos como resultado una lista del contenido de ese directorio. En el siguiente ejemplo, el directorio home se utilizará como argumento:

cox:~# ls home
El resultado es una lista de los archivos incluidos en el directorio home

Opciones

comando [opciones…] [argumentos…]

Las opciones (options) se pueden utilizar para modificar el comportamiento de un comando. En la página anterior, el comando ls se utilizó para enumerar el contenido de un directorio. En el ejemplo siguiente, la opción -l se agrega al comando ls para obtener un resultado de “pantalla larga”, y proporcionar más información sobre cada uno de los archivos enumerados:

cox:~# ls home -l
total 44
Que sucede...

Tenga en cuenta que, en el comando anterior, -l es la letra “L” minúscula.

A menudo, el carácter elegido para el comando es mnemotécnico de su propósito en inglés. Por ejemplo, la letra l para indicar largo (long) o r para invertir (reverse en inglés). De forma predeterminada, el comando ls imprime los resultados en orden alfabético, al agregar la opción -r se imprimirán los resultados en orden alfabético inverso.

cox:~# ls home -l -r
total 44
Que sucede... 

Se pueden usar varias opciones a la vez, ya sea como opciones separadas como en -l -r o combinadas como -lr . El resultado de los siguientes ejemplos sería el mismo:

ls -l -r
ls -rl
ls -lr

Como se ha explicado anteriormente, -l proporciona un formato de listado largo y -r invierte el listado. El resultado de usar ambas opciones será un listado largo en orden alfabético inverso.

Ejecute y comente que sucede.

Los comandos pueden utilizar muchas combinaciones de opciones y argumentos. Las posibilidades para cada comando serán únicas.

Section header image

Imprimir el directorio de trabajo

Para descubrir dónde se encuentra actualmente dentro del sistema de archivos, puede utilizar el comando pwd. El comando pwd imprime el directorio de trabajo (print working directory), su ubicación actual dentro del sistema de archivos:

pwd [OPCIONES]

A tener en cuenta

¡No encienda su impresora todavía! En los inicios de la computación, el resultado de un comando se enviaba directamente a impresoras físicas. Este método ha sido reemplazado por pantallas de vídeo que muestran información más rápidamente. Aún así, actualmente seguimos utilizando la palabra imprimir (print) aunque el resultado se esté mostrando en una pantalla.

cox:~# pwd
/

El resultado del comando anterior indica que el usuario está actualmente en su carpeta de inicio, tal y como muestra el sistema de archivos siguiente.

Sistema de archivos que muestra el directorio root en la parte superior y los directorios debajo, incluido el directorio de inicio. Debajo del directorio de inicio hay un directorio sysadmin resaltado y los directorios dentro de sysadmin (es decir, Documents) que se muestran a continuación.

Section header image

Cambio de Directorios

Los archivos se utilizan para almacenar datos como texto, gráficos y programas. Los directorios son un tipo de archivo utilizado para almacenar otros archivos: proporcionan una estructura organizativa jerárquica. 

 
 

Utilice el comando cd (change directory) para cambiar de directorio y navegar por la estructura del sistema de archivos.

cd [opciones] [ruta]

Los directorios son equivalentes a las carpetas en Windows y Mac OS. Al igual que estos sistemas operativos más populares, una estructura de directorios Linux también tiene un nivel superior. No se llama “Mi PC”, sino directorio raíz (root) y está representado por el carácter /. Para desplazarse al directorio root, utilice el carácter / como argumento del comando cd.

cox:~# cd /

Imagine que el sistema de archivos es un mapa, las rutas son las instrucciones que indican paso a paso la ubicación de cualquier archivo dentro del sistema de archivos. Hay dos tipos de rutas: absolutas y relativas. Las rutas absolutas comienzan en la raíz del sistema de archivos, las rutas relativas comienzan en su ubicación actual.

Rutas absolutas

Una ruta absoluta le permite especificar la ubicación exacta de un directorio. Siempre comienza en el directorio root, por lo tanto siempre comienza con el carácter /. La ruta al directorio de inicio (home/home es una ruta absoluta. La ruta comienza en el directorio root /, se mueve al directorio de inicio home . Esta ruta en una interfaz gráfica de usuario (GUI) como la de su ordenador personal aparecería así:

Utilice esta ruta como argumento para el comando cd para volver al directorio principal del usuario. 

cox:/# cd 

Que no aparezca un resultado en la línea de comandos significa que el comando se ha ejecutado correctamente. Continúe y confirme que es así usando el comando pwd:

cox:~# pwd                                                       
/root

Rutas relativas

Una ruta relativa ubica un archivo en relación con la ubicación actual del usuario en el sistema de archivos. Las rutas relativas no comienzan con el carácter /, comienzan con el nombre de un directorio. Eche otro vistazo al primer ejemplo de comando cd. En este caso, el argumento es un ejemplo de la ruta relativa más simple: el nombre de un directorio en su ubicación actual.

cox:~# cd Desktop                                             
cox:~/Desktop #
 

Una ruta relativa comienza con el directorio actual, sin embargo, éste no se incluye en la ruta. 

Accesos Directos o Atajos

Dos puntos ..

Independientemente del directorio en el que se encuentre, el carácter .. siempre representa un directorio superior en relación al directorio actual, a veces denominado directorio padre.

Un punto .

Independientemente del directorio en el que se encuentre, el carácter . siempre representa su directorio actual. Para el comando cd, este atajo no es muy útil, pero será útil para los comandos que estudiaremos en las secciones siguientes.

El símbolo ~

El directorio principal del usuario actual está representado por el carácter ~ . 

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

 

Section header image

Listados de archivos

El comando ls se utiliza para enumerar el contenido de un directorio. Ha visto cómo se utiliza en varios ejemplos anteriores. La siguiente lectura le ayudará a sentirse más cómodo con su uso.

ls [OPCIONES] [ARCHIVO]

De forma predeterminada, el comando ls usado sin opciones o argumentos mostrará los archivos contenidos en el directorio actual como lo vimos anteriormente.

Para obtener información detallada sobre los archivos, como el tipo de archivo, los permisos, las propiedades o el sello horario, ejecute una lista larga utilizando la opción -l con el comando ls. En el ejemplo siguiente, se utiliza una lista del directorio /var/log, ya que proporciona una variedad de resultados:

sysadmin@localhost:~$ ls -l /var/log/
total 844                                                                       
-rw-r--r-- 1 root   root  18047 Dec 20  2017 alternatives.log                   
drwxr-x--- 2 root   adm    4096 Dec 20  2017 apache2                            
drwxr-xr-x 1 root   root   4096 Dec 20  2017 apt                                
-rw-r----- 1 syslog adm    1346 Oct  2 22:17 auth.log                           
-rw-r--r-- 1 root   root  47816 Dec  7  2017 bootstrap.log                      
-rw-rw---- 1 root   utmp      0 Dec  7  2017 btmp                               
-rw-r----- 1 syslog adm     547 Oct  2 22:17 cron.log                           
-rw-r----- 1 root   adm   85083 Dec 20  2017 dmesg                              
-rw-r--r-- 1 root   root 325238 Dec 20  2017 dpkg.log                           
-rw-r--r-- 1 root   root  32064 Dec 20  2017 faillog                            
drwxr-xr-x 2 root   root   4096 Dec  7  2017 fsck                               
-rw-r----- 1 syslog adm     106 Oct  2 19:57 kern.log                           
-rw-rw-r-- 1 root   utmp 292584 Oct  2 19:57 lastlog                            
-rw-r----- 1 syslog adm   19573 Oct  2 22:57 syslog                             
drwxr-xr-x 2 root   root   4096 Apr 11  2014 upstart                            
-rw-rw-r-- 1 root   utmp    384 Oct  2 19:57 wtmp 

Cada línea corresponde a un archivo contenido en el directorio. La información sobre cada archivo se puede dividir en campos separados por espacios. Los campos son los siguientes:

  1. Tipo de archivo

    -rw-r--r-- 1 root   root  18047 Dec 20  2017 alternatives.log       
                
    drwxr-x--- 2 root   adm    4096 Dec 20  2017 apache2  
    

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

    Símbolo Tipo de archivo Descripción
    d directorio Un archivo usado para contener otros archivos.
    - archivo ordinario Incluye archivos leíbles, imágenes, archivos binarios, y archivos comprimidos.
    l enlaces simbólicos Apunta a otro archivo.
    s socket Permite la comunicación entre procesos.
    p tubería (pipe) Permite la comunicación entre procesos.
    b archivo bloque Usado para comunicaciones con el equipo (hardware).
    c archivo carácter Usado para comunicaciones con el equipo (hardware).

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

  2. Permisos

    drwxr-xr-x 2 root   root   4096 Apr 11  2014 upstart

    Los permisos indican cómo determinados usuarios pueden acceder a un archivo. Siga leyendo para obtener más información sobre los permisos.

  3. Número de enlaces directos

    -rw-r----- 1 syslog adm    1346 Oct  2 22:17 auth.log

    Este número indica cuántos enlaces directos apuntan a este archivo. Los enlaces directos están fuera del alcance de este módulo.

  4. Propietario del archivo

    -rw-r----- 1 syslog adm     106 Oct  2 19:57 kern.log

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

  5. Grupo propietario del archivo

    -rw-rw-r-- 1 root   utmp 292584 Oct  2 19:57 lastlog

    Indica qué grupo posee este archivo.

  6. Tamaño del archivo

    -rw-r----- 1 syslog adm   19573 Oct  2 22:57 syslog

    Los directorios y archivos más grandes pueden mostrarse en kilobytes ya que mostrar su tamaño en bytes resultaría en un número demasiado grande. Por lo tanto, en el caso de un directorio, este número podría ser un múltiplo del tamaño de bloque utilizado por el sistema de archivos. El tamaño de bloque es el tamaño de una serie de datos almacenados en el sistema de archivos.

  7. Sello horario o de tiempo

    drwxr-xr-x 2 root   root   4096 Dec  7  2017 fsck

    Indica la fecha y hora en que el contenido del archivo se modificó por última vez.

  8. Nombre del archivo

    -rw-r--r-- 1 root   root  47816 Dec  7  2017 bootstrap.log

    El campo final contiene el nombre del archivo o directorio.

  9. A tener en cuenta

    En el caso de enlaces simbólicos, un archivo que apunta a otro archivo, el nombre del enlace se mostrará junto a una flecha y el nombre de la ruta del archivo original.

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

    Ordenar archivos

Por defecto, el resultado del comando ls está ordenado alfabéticamente según el nombre del archivo. Pero también se puede ordenar usando otros método.

Siga leyendo

Las opciones en los siguientes ejemplos se combinarán con la opción -l para mostrar los detalles relevantes de cada archivo. Preste atención a los campos correspondientes a la opción de búsqueda.

La opción -t ordenará los archivos por su sello de tiempo (timestamp):

sysadmin@localhost:~$ ls -lt /var/log                                           
total 844                                                                       
-rw-r----- 1 syslog adm   19573 Oct  2 22:57 syslog                             
-rw-r----- 1 syslog adm    1346 Oct  2 22:17 auth.log                           
-rw-r----- 1 syslog adm     547 Oct  2 22:17 cron.log                           
-rw-rw-r-- 1 root   utmp 292584 Oct  2 19:57 lastlog                            
-rw-rw-r-- 1 root   utmp    384 Oct  2 19:57 wtmp                               
-rw-r----- 1 syslog adm     106 Oct  2 19:57 kern.log                           
-rw-r--r-- 1 root   root  18047 Dec 20  2017 alternatives.log                   
-rw-r--r-- 1 root   root  32064 Dec 20  2017 faillog                            
-rw-r----- 1 root   adm   85083 Dec 20  2017 dmesg                              
-rw-r--r-- 1 root   root 325238 Dec 20  2017 dpkg.log                           
drwxr-x--- 2 root   adm    4096 Dec 20  2017 apache2                            
drwxr-xr-x 1 root   root   4096 Dec 20  2017 apt                                
-rw-r--r-- 1 root   root  47816 Dec  7  2017 bootstrap.log                      
drwxr-xr-x 2 root   root   4096 Dec  7  2017 fsck                               
-rw-rw---- 1 root   utmp      0 Dec  7  2017 btmp                               
drwxr-xr-x 2 root   root   4096 Apr 11  2014 upstart              

La opción -S (size) ordenará los archivos por tamaño de archivo:

sysadmin@localhost:~$ ls -l -S /var/log                                         
total 844                                                                       
-rw-r--r-- 1 root   root 325238 Dec 20  2017 dpkg.log                           
-rw-rw-r-- 1 root   utmp 292584 Oct  2 19:57 lastlog                            
-rw-r----- 1 root   adm   85083 Dec 20  2017 dmesg                              
-rw-r--r-- 1 root   root  47816 Dec  7  2017 bootstrap.log                      
-rw-r--r-- 1 root   root  32064 Dec 20  2017 faillog                            
-rw-r----- 1 syslog adm   19573 Oct  2 22:57 syslog                             
-rw-r--r-- 1 root   root  18047 Dec 20  2017 alternatives.log                   
drwxr-x--- 2 root   adm    4096 Dec 20  2017 apache2                            
drwxr-xr-x 1 root   root   4096 Dec 20  2017 apt                                
drwxr-xr-x 2 root   root   4096 Dec  7  2017 fsck                               
drwxr-xr-x 2 root   root   4096 Apr 11  2014 upstart                            
-rw-r----- 1 syslog adm    1346 Oct  2 22:17 auth.log                           
-rw-r----- 1 syslog adm     547 Oct  2 22:17 cron.log                           
-rw-rw-r-- 1 root   utmp    384 Oct  2 19:57 wtmp                               
-rw-r----- 1 syslog adm     106 Oct  2 19:57 kern.log                           
-rw-rw---- 1 root   utmp      0 Dec  7  2017 btmp

La opción -r (reverse) invertirá el orden de cualquier tipo de ordenación. Observe la diferencia cuando se agrega al ejemplo anterior:

sysadmin@localhost:~$ ls -lSr /var/log
total 844                                                                       
-rw-rw---- 1 root   utmp      0 Dec  7  2017 btmp                               
-rw-r----- 1 syslog adm     106 Oct  2 19:57 kern.log                           
-rw-rw-r-- 1 root   utmp    384 Oct  2 19:57 wtmp                               
-rw-r----- 1 syslog adm     654 Oct  2 23:17 cron.log                           
-rw-r----- 1 syslog adm    1669 Oct  2 23:17 auth.log                           
drwxr-xr-x 2 root   root   4096 Apr 11  2014 upstart                            
drwxr-xr-x 2 root   root   4096 Dec  7  2017 fsck                               
drwxr-xr-x 1 root   root   4096 Dec 20  2017 apt                                
drwxr-x--- 2 root   adm    4096 Dec 20  2017 apache2                            
-rw-r--r-- 1 root   root  18047 Dec 20  2017 alternatives.log                   
-rw-r----- 1 syslog adm   19680 Oct  2 23:17 syslog                             
-rw-r--r-- 1 root   root  32064 Dec 20  2017 faillog                            
-rw-r--r-- 1 root   root  47816 Dec  7  2017 bootstrap.log                      
-rw-r----- 1 root   adm   85083 Dec 20  2017 dmesg                              
-rw-rw-r-- 1 root   utmp 292584 Oct  2 19:57 lastlog                            
-rw-r--r-- 1 root   root 325238 Dec 20  2017 dpkg.log        

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

Utilizando solo la opción -r con la lista de 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
Did you know you can find Linux in: Facebook, Amazon, Google, McDonald's, NASA, BMW, Tesla, Wikipedia, United States Postal Service, Tesla.

«¿Sabía que puede encontrar Linux en…?»

 
 
 
 
 

Acceso administrativo

Section header image

Acceso administrativo

En GNU/Linux (y Unix en general), hay un super-usuario llamado root. El equivalente en Windows para root es el Administrador. El super-usuario puede hacer todo, por lo que trabajar a diario como super-usuario puede ser peligroso.

Hay muchos comandos de Linux que tratan con información confidencial como contraseñas, hardware del sistema, u otros que operan bajo circunstancias excepcionales. Evitar que usuarios ordinarios ejecuten estos comandos ayuda a proteger el sistema. Iniciar una sesión como usuario root proporciona acceso administrativo, y permite la ejecución de algunos de los comandos privilegiados.

Puedes, a partir de la terminal, usar el comando “sudo” para los comandos que requieren privilegios de root. Todos los programas en el menú usarán una interfaz gráfica para sudo, que te preguntarán la contraseña. Cuando se te pregunte por la contraseña, tendrás que proporcionarla. Esto significa que la contraseña del root no es necesaria.

El comando su

su OPCIONES NOMBRE-DE-USUARIO

El comando su le permite actuar temporalmente como un usuario diferente. Lo hace creando un nuevo shell. El shell es simplemente una consola de entrada de texto que le permite escribir comandos. De forma predeterminada, si no se especifica una cuenta de usuario, el comando su abrirá un nuevo shell como usuario root, proporcionando privilegios administrativos.

Siga leyendo

Se recomienda utilizar la opción shell para iniciar la sesión, ya que el shell de inicio de sesión configura completamente el nuevo shell con la configuración del nuevo usuario. Esta opción se puede especificar de tres maneras:

su -
su -l
su --login

Después de ejecutar el comando su, se requiere una contraseña. 

Tenga en cuenta que el símbolo del sistema ha cambiado para reflejar que ahora ha iniciado sesión como usuario root. Para cerrar la sesión y volver a la cuenta sin privilegio, use el comando exit. Note como el símbolo vuelve a cambiar.

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

Utilice el comando su para cambiar a la cuenta root .

El comando sudo

sudo [OPCIONES] COMANDO

El comando sudo permite a un usuario ejecutar un comando como otro usuario sin tener que crear un nuevo shell. 

Para iniciar un shell como root, por ejemplo una terminal de comandos que puedan ejecutar comandos de root, utiliza:

sudo -i