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

Añadir disco en caliente a un Ubuntu virtualizado

  En este artículo vamos a explicar cómo aumentar un volumen de discos en una máquina virtual. Pongamos por caso que tenemos un servidor que se nos ha quedado corto de espacio en disco y que no podemos parar. La solución es añadir un nuevo disco virtual a nuestra máquina y, con ese espacio añadido, extender el volumen de discos.  En principio, este es un proceso en el que no hay pérdida de datos. Sin embargo, es conveniente que exista una copia de seguridad antes de llevarlo a cabo como precaución. He de decir que yo lo he hecho en un par de ocasiones y no ha habido problemas con la máquina virtual ni con los datos. De hecho, los usuarios ni se enteraron de que se amplió el espacio en disco. Consideraciones iniciales En primer lugar, este es un proceso que sólo se puede llevar a cabo en una máquina virtual. Para añadir un disco nuevo en una máquina física hay que pararla y, por lo tanto, no se puede añadir en caliente. Cierto es que la parte de extender el volumen sí que se realiza igu

Atom ha muerto, viva Zed

El día 8 de junio de 2022, Microsoft anunció que a partir del día 31 de diciembre de este mismo año dejaría de dar soporte para el editor de código Atom .  ¿En qué nos afecta esto a nosotros? Bueno, pues si me han seguido en artículos anteriores saben que tras una comparativa de varios IDEs había decidido utilizar Atom para los ejemplos que tuviera que hacer en este blog. Sobre todo los artículos que prepararé para ilustrar el uso de Laravel . Amén de los miles de programadores que actualmente usan Atom  en sus proyectos, claro. Pero, ¿qué editor de código abierto podremos utilizar para sustituir a Atom ? En el mismo comunicado, Microsoft explicaba que el abandono del proyecto Atom  se debía a que querían volcar todos sus esfuerzos en el Visual Studio Code y, por supuesto, recomendó a los usuarios de Atom la utilización del mismo como alternativa natural. No quiero entrar en las bondades o defectos del Visual Studio Code  si quieres elegirlo como tu IDE para desarrollo predeterm

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 programación.