Ir al contenido principal

La terminal de GNU/Linux y algunos de sus comandos (II)


En este artículo continuaré explicando algunos de los comandos que se utilizan en la consola de GNU/Linux. Aunque antes explicaré un poco el tema de los permisos que me quedó pendiente de la entrada anterior.

En GNU/Linux todos los archivos y directorios tienen asociados una serie de permisos. Estos permisos se encuentran agrupados en tres secciones, que son: propietario, grupo y otros. Además, cada uno de los ficheros y carpetas tienen un propietario (dueño) y pertenecen a un grupo

Para ver los datos sobre el propietario, grupo y permisos de un archivo tenemos que ejecutar la orden ls -l (formato extendido del ls) que expliqué en el artículo anterior. Esta orden nos muestra una salida en la pantalla como la que se muestra en la figura:
Salida del comando ls -l
Como se puede observar en la salida del comando ls, empezando por la parte izquierda de cada línea se muestra la siguiente información: 
  • El primer carácter indica el tipo de archivo. Existen muchos tipos de archivos, pero los que generalmente nos van a interesar son dos: d, indica que corresponde con un directorio y -, que nos indica que se trata de un archivo. 
  • Un grupo de nueve caracteres que nos indican los permisos del archivo, agrupados de tres en tres para cada uno de estos actores:
    • Propietario: la mayoría de las veces, es el usuario que crea el archivo. Veremos que se puede cambiar de propietario un fichero.
    • Grupo: los usuarios en GNU/Linux tienen asignado al menos un grupo al que pertenecen, aunque lo normal es que pertenezcan a varios grupos. Los permisos de grupo asignados a un archivo conceden privilegios a todos los usuarios pertenecientes al mismo grupo al que pertenece el archivo.
    • Otros: este grupo de permisos concede o revoca privilegios sobre el archivo a otros usuarios que no pertenezcan al grupo del fichero o que no sean propietarios del mismo.
  • El número que aparece a continuación corresponde a la cantidad de enlaces duros que tiene ese archivo. En este artículo no voy a explicar que es eso, ya que el tema de los enlaces debería llevar un artículo por sí mismo. 
  • El nombre que aparece a continuación corresponde al del propietario del archivo.
  • Seguidamente aparece el grupo al que pertenece el archivo.
  • La columna siguiente corresponde al tamaño del archivo.
  • Fecha y hora de la última modificación.
  • Nombre del archivo.
En cuanto a los permisos que se pueden conceder o revocar asociados a un fichero o directorio, hay que especificar que los hay de tres tipos. Éstos son: 
  • r: si aparece en la línea es que el archivo tiene permiso de lectura. En el caso de que sea un directorio quiere decir que se permite la lectura del contenido del escritorio.
  • w: este corresponde a un permiso de escritura en el caso de que sea un archivo. Si se trata de un directorio, indica que se permite la eliminación de  ese directorio.
  • x: este es el permiso de ejecución. Todos los archivos ejecutables, binarios y/o scripts de comandos (archivos por lotes), deben tenerlo para poder ejecutarse. Si se trata de un directorio, lo que permite este permiso es el acceso a él.
  • -: si aparece este símbolo es que el permiso que correspondería en la ubicación en la que está ha sido revocado o, más bien, no se ha concedido. 
Una vez que hemos visto el tema de los permisos, vamos a explicar algunos de los comandos que nos ayudarán en la gestión de los mismos. Asumiremos que cuando ejecutemos estos comandos seremos o bien el propietario del archivo o archivos sobre los que se van a aplicar, o bien, el superusuario.
  • chown (del inglés change owner): este comando permite cambiar el propietario del archivo o directorio. También permite cambiar el grupo. Tiene varias opciones, pero la más importante es -R ya que aplica el comando recursivamente. Veamos unos ejemplos:
    $chown pepito /home/usuario/miarchivo.txt
    Esta orden establecería como propietario del archivo /home/usuario/miarchivo.txt al usuario pepito.
    $chown -R pepito:users /datos
    Este comando establece como usuario a pepito y como grupo a users al directorio /datos y todo su contenido de forma recursiva.
  • chgrp (del inglés change group): cambia el grupo asignado a un archivo o directorio. Este comando también dispone de varias opciones, pero la más común a la hora de usuarlo sigue siendo -R para aplicarlo recursivamente. Ejemplos:
    $chgrp users /home/usuario/miarchivo.txt
    Este comando aplica el cambio de grupo al archivo /home/usuario/miarchivo.txt asignándoselo al grupo users.
    $chgrp -R users /datos
    Esta orden cambia recursivamente el grupo al directorio /datos y todo su contenido.
  • chmod (del inglés change mode): cambia los permisos de un archivo o directorio. Si se aplica con el modificador -R, los cambios se aplican recursivamente. La sintaxis de este comando es la siguiente:
    chmod [opciones] {ugoa}{+-}{rwx} ARCHIVO
    Ahora explicaremos con más detalle esta sintaxis:
    • ugoa: corresponde al grupo de permisos sobre los que se va a aplicar el comando: u, si se trata de aplicarlos al usuario; g, si se trata de aplicarlos al grupo; o, si se aplican sobre otros y a si se aplica a todos.
    • +-: el signo indicará si se asigna (+) o se elimina (-) el permiso.
    • rwx: el tipo de permiso que se va a aplicar.
    • La utilización de este comando es bastante más complicada de lo aquí explicado. Pero con esto basta para entender su funcionamiento y empezar a utilizarlo.
      Ahora veremos unos ejemplos que ilustrarán el uso de este comando.
      $chmod a+rw /datos/mifichero.txt
      Esta orden aplicará los permisos de lectura (r) y escritura (w) sobre el fichero /datos/mifichero.txt a todos. Es decir, al usuario, al grupo y a otros.
      $chmod -R go-x /datos
      Este comando eliminará el permiso de ejecución (x) al directorio /datos y todo su contenido para el grupo y otros. Si el usuario tiene permiso de ejecución, éste no será eliminado.
      Puedes crear un archivo de prueba e ir intentando diferentes combinaciones para ver cómo se van aplicando y revocando los permisos sobre él.

Bueno, esto es todo lo que ha dado de si este artículo. Espero que les sirva para aprender a utilizar la consola de GNU/Linux.

Comentarios

Entradas populares de este blog

Cambiar fondo de pantalla de Gnome Display Manager (GDM)

  Después de la parada por vacaciones vuelvo otra vez con nuevas entradas para el blog. Por recomendación he dejado de lado, por un tiempo, el tema de la programación. Pues como bien me dijeron este es un blog de Ubuntu y debería escribir algo más que sobre temas de programación. Me decidí por hacer esta entrada sobre el gestor de pantalla de Gnome pensando que iba a ser un artículo fácil que no me llevaría mucho tiempo. ¡Qué equivocado estaba! La documentación oficial del GDM está obsoleta. Por lo que he tenido que investigar, leer y practicar lo que voy a explicar en este artículo. Así que lo que inicialmente pensaba me iba a llevar poco tiempo, me ha llevado más de una semana realizarlo. Después de esta diatriba es hora de comenzar. ¿Qué es el GDM?  GNOME Display Manager (GDM) es un administrador de pantalla (un administrador de inicio de sesión gráfico) para los sistemas de ventanas X11 y Wayland . También se le conoce como Gestor de Entrada . Esto quiere decir que este...

Instalación de Laravel Homestead y (IV)

  En esta entrada, la última de la serie dedicada al Homestead , veremos como llevar a la práctica lo que hemos aprendido hasta ahora. Lo haremos desde dos puntos de vista. Con el Homestead  instalado de forma global y con una instalación por proyecto. De este modo, podrás usar el Homestead de la forma en que más prefieras. Ejecución del entorno Homestead con una instalación global Llegados a este punto, supongo que ya tienen instalado el Homestead  en modo global y configurado el fichero Homestead.yaml . En él pondremos nuestra carpeta compartida ~/code  mapeada a /home/vagrant/code.  Pues ahora lo primero que hay que hacer es crear la máquina virtual. En el directorio donde instalamos nuestro Homestead : cd /Homestead vagrant up   Durante un buen rato se estará creando la máquina virtual, automáticamente se irá descargando e instalando el software definido en Homestead.yaml . Esto sólo ocurrirá la primera vez que se cree la máquina virtual. Las sigu...

Zed: ahora un editor de código de código abierto

  Zed: ahora un editor de código de código abierto Introducción Como ya les comenté en un artículo anterior  Atom ha muerto, viva ZED , Microsoft dejó de dar soporte para el editor de código Atom en el año 2022 en beneficio del Visual Studio Code . En aquel artículo les comentaba que para mi el sucesor de Atom era Zed pues era un editor que se estaba creando por el mismo grupo de trabajo que creó el Atom . Además de que parecía que iba a seguir con la misma filosofía con la que nació  Atom . El editor Zed, una descripción de sus características Zed es un editor de código desarrollado en Rust que, como deberíamos saber, es un lenguaje de programación de sistemas que se enfoca en la seguridad, el rendimiento y la concurrencia. Pues, como decíamos, Zed acaba de dar el salto a ser de código abierto bajo la licencia GPL v3 . Este cambio no solo representa una nueva era para Zed , sino que también nos dirige a un nuevo mundo de colaboración y desarrollo en el ámbito de la...