Permisos de directorios y archivos de Linux explicados

Linux es un sistema operativo multiusuario, por lo que varios usuarios pueden interactuar con la misma computadora al mismo tiempo usando Linux. Al ser un sistema operativo multiusuario, para Linux es importante garantizar la seguridad y privacidad de los archivos pertenecientes a los diferentes usuarios.

Para lograr esto, Linux tiene un elaborado sistema para manejar los permisos de archivos y directorios. De esta manera, los usuarios de Linux pueden controlar el acceso a los archivos por parte de diferentes usuarios y qué acciones pueden realizar los usuarios cuando usan la computadora.

Como usuario de Linux, es fundamental comprender cómo Linux maneja los permisos de archivos y directorios y cómo puede trabajar con los diferentes permisos disponibles para proteger sus archivos y garantizar la funcionalidad de su computadora. Para comprender cómo Linux administra los permisos de archivos y directorios, veamos primero las diferentes categorías de usuarios en un sistema operativo Linux.

Categoría de usuarios en Linux

La primera categoría de usuarios son propietarios de un archivo o directorio. Cada archivo o directorio en Linux tiene un propietario. A este propietario normalmente se le conceden más permisos para su archivo o directorio. El propietario de un archivo suele indicarse con la letra u de usuario.

En Linux, se pueden colocar varios usuarios en un grupo y otorgarles permisos para archivos como grupo. Estos se conocen como propietarios de grupo y están representados por la letra g.

Por ejemplo, si tiene un archivo con recomendaciones de libros y desea otorgar permisos similares a varios usuarios sobre el archivo, una manera fácil de hacerlo es colocar a los usuarios en un grupo y otorgar permisos al grupo en su conjunto.

La otra categoría de usuarios se conoce como otros y está representada por la letra o. Estos son usuarios que no son propietarios del archivo y tampoco forman parte de un grupo con permisos para el archivo. Otro representa a todos los demás en el sistema.

Todos los usuarios de una computadora, es decir, los propietarios de archivos, los usuarios de grupos y otros usuarios, pueden especificarlo mediante la letra a.

Crear y agregar un nuevo usuario en Ubuntu Linux

Veamos cómo puede crear y agregar un nuevo usuario en Ubuntu Linux. Para seguir este tutorial, cree también un nuevo usuario.

1. Abra Configuración y en la barra de menú de la izquierda, haga clic en Usuario, luego haga clic en Desbloquear y proporcione su contraseña cuando se le solicite. Debe hacer clic en Desbloquear para poder agregar un nuevo usuario. De forma predeterminada, esta funcionalidad está bloqueada.

2. Una vez desbloqueado, verás una opción Agregar usuario. Haz clic en ella para agregar un nuevo usuario.

3. Para crear un nuevo usuario, proporcione su nombre completo y nombre de usuario, seleccione Establecer una contraseña ahora y establezca su contraseña. Además, asegúrese de que el tipo de cuenta esté configurado en Administrador, luego haga clic en Agregar para agregar un usuario.

4. Debería ver una nueva cuenta de usuario que acaba de crear como se muestra a continuación.

Permisos de archivos y directorios de Linux

Los permisos se refieren a las reglas que rigen el acceso a archivos y directorios y las acciones que diferentes usuarios pueden realizar sobre ellos. Linux tiene tres categorías de permisos principales:

  Cómo despertar automáticamente a Linux de la suspensión
  • Leer (r): permite al usuario ver el contenido de un archivo y enumerar el contenido de un directorio.
  • Write(w): permite al usuario modificar el contenido de un archivo. Con los directorios, los permisos de escritura permiten al usuario modificar el contenido de un directorio, por ejemplo, creando, eliminando, cambiando el nombre o moviendo archivos y subdirectorios en el directorio. Sin embargo, los permisos de escritura con directorios sólo funcionan si el usuario también tiene permisos de ejecución.
  • Ejecutar (x): permisos de ejecución significa que un archivo puede tratarse como un programa que se puede ejecutar. Con los directorios, el permiso de ejecución permite al usuario ingresar o ‘cd’ en el directorio.
  • Los permisos de lectura, escritura y ejecución se asignan a las tres categorías de usuarios disponibles en Linux.

    También puedes leer cómo eliminar archivos y directorios en Linux.

    Listado largo en Linux

    Para ver el contenido de un archivo en un directorio de Linux, normalmente ejecutamos el comando ls. Sin embargo, esto sólo enumera los archivos y directorios disponibles y no proporciona ninguna información adicional.

    Para ver más información sobre los contenidos es necesario utilizar el formato de lista larga. Para hacer esto, ejecute el comando ls con el indicador -l. Esto le dará los permisos de archivo, los propietarios de un archivo y los propietarios de grupo de un archivo como se muestra a continuación:

    En Ubuntu, de forma predeterminada, si no se ha creado ningún grupo, el nombre del grupo es el mismo que el del propietario del archivo.

    Para crear un grupo, usamos el comando addgroup. Para agregar un grupo llamado editores, ejecute el siguiente comando y proporcione una contraseña cuando se le solicite

    sudo addgroup editors

    sudo nos permite ejecutar comandos como usuario root, que es un superusuario con privilegios para ejecutar cambios que afectan a todos los usuarios del ordenador.

    Para agregar usuarios a un grupo utilizamos la siguiente sintaxis:

    adduser <user> <group>

    Por lo tanto, para agregar tanto a belmont como a madici al grupo de editores, ejecutamos

    sudo adduser belmont editors
    sudo adduser madici editors

    Para ver los grupos a los que pertenece un usuario ejecuta:

    groups <username>

    El resultado de los comandos anteriores se muestra a continuación:

    Veamos ahora los atributos del archivo que nos informan sobre los tipos de archivos y los permisos del archivo. a.

    Atributos de archivo en Linux

    En Linux, los atributos de los archivos constan de exactamente diez caracteres. El primer carácter indica el tipo de archivo. Algunos de los primeros caracteres comunes que representan diferentes archivos incluyen:

    • d indica un directorio
    • – indica un archivo normal, por ejemplo, archivos de texto
    • c indica un archivo de carácter especial
    • l indica un enlace simbólico
    • b indica un archivo especial de bloque

    Los nueve caracteres restantes se utilizan para mostrar los permisos del propietario, del propietario del grupo y de otros usuarios. Los nueve personajes se dividen en grupos de tres. El primer grupo indica los permisos del propietario, el segundo grupo indica los permisos del propietario del grupo y los tres últimos indican permisos para otros, es decir, todos los demás usuarios de la computadora.

    Los permisos, para cada categoría, se indican comenzando con el permiso de lectura, luego de escritura y finalmente el permiso de ejecución. El permiso de lectura se indica con la letra r, el permiso de escritura con la letra w y el permiso de ejecución con la letra x.

      Cómo arreglar un escritorio Linux XFCE congelado

    El símbolo – se utiliza en caso de que un usuario no tenga un permiso particular. Por ejemplo, rw- para el propietario del grupo significa que tiene permisos de lectura y escritura, pero no tiene permiso de ejecución en ese directorio (d).

    Cambiar permisos de archivos usando notación simbólica

    Para cambiar los permisos en un archivo o directorio, usamos el comando chmod y especificamos para quién estamos cambiando los permisos.

    Este puede ser el propietario del archivo representado por la letra u para el usuario, el propietario del grupo representado por la letra g u otros usuarios representados por la letra o. También podemos dirigirnos a las tres categorías de usuarios utilizando la letra a, que significa todo lo anterior.

    Lo siguiente que especificamos es el cambio que estamos realizando. Para agregar un permiso usamos + (signo más). Para eliminar un permiso utilizamos – (signo menos). Lo último que proporcionamos son los permisos que agregamos usando r, w o x para representar los tres permisos disponibles.

    Para ver esto en acción, cree un directorio llamado libros usando el siguiente comando

    mkdir books

    Ingrese o haga ‘cd’ en el directorio:

    cd books

    Crea un archivo llamado ReadingList.txt

    touch readingList.txt

    Haga una lista larga del contenido del directorio de libros ejecutando:

    ls -l

    El resultado es el que se muestra:

    El archivo que creamos es un archivo normal, indicado por primero –, el propietario y el propietario del grupo tienen permisos de lectura y escritura, mientras que otros usuarios solo tienen permiso de lectura. Para otorgar a otros usuarios el permiso para escribir en el archivo, ejecutaríamos el siguiente comando:

    chmod o+w readingList.txt

    Para ver si los permisos para otros usuarios han cambiado, ejecute

    ls -l

    Producción:

    Observe que el permiso de archivos de otros usuarios ha cambiado de r– a rw-, lo que significa que ahora tienen permiso de escritura.

    Para agregar permisos de ejecución al propietario (usuario) del archivo, ejecute:

    chmod u+x readingList.txt

    Para eliminar los permisos de escritura de los propietarios del grupo, ejecute:

    chmod g-w readingList.txt

    Para eliminar los permisos de lectura de todos los usuarios para que nadie pueda ver el archivo, ejecute:

    chmod a-r readingList.txt

    Para volver a agregar permiso de lectura para el propietario del archivo, ejecute:

    chmod u+r readingList.txt

    Para agregar permisos de escritura y ejecución al grupo propietario del archivo, ejecute:

    chomod g+wx readingList.txt

    Cambiar permisos usando la notación octal

    En Linux, cada uno de los tres permisos disponibles tiene sólo dos valores posibles. El permiso de lectura solo puede ser r o –, el permiso de escritura solo puede ser w o – y el permiso de ejecución solo puede ser x o –.

    Por lo tanto, se puede pensar que estos permisos están activados o desactivados y, por lo tanto, se pueden representar mediante números binarios, que sólo tienen dos valores disponibles. Esto es 1 para activado o verdadero y 0 para desactivado o falso. Allí, un permiso como rw– se puede representar como 110 usando números binarios.

    Por lo tanto, para cualquier categoría de usuario, tres números binarios son suficientes para presentar todos sus permisos. Por ejemplo, el permiso para el propietario, grupo y otros rwxrw-r– se puede representar como 111110100 usando un número binario.

    Sin embargo, para evitar escribir números binarios, que son largos y fácilmente confusos, una mejor alternativa es utilizar números octales.

    Los números octales tienen una base de 8 y, por lo tanto, solo tienen 8 valores posibles. Cada número octal se asigna a exactamente tres dígitos binarios.

      Cómo instalar Irssi y usar IRC desde la terminal de Linux

    Por lo tanto, un permiso como rw- se puede representar como 110 en binario. El equivalente octal de 110 es 6 y, por tanto, 6 se puede utilizar para representar rw-. Los números octales se pueden utilizar para representar los permisos de lectura, escritura y ejecución del propietario, grupo y otros, como se muestra a continuación:

    En lugar de escribir dígitos binarios largos, es mejor representar los permisos mediante números octales. Por lo tanto, todos los permisos del propietario, grupo y otros se representan mediante números octales únicos, como se muestra en el diagrama anterior.

    La ventaja de utilizar la notación octal para establecer permisos es que le permite establecer el permiso para todos los usuarios a la vez, a diferencia de la notación simbólica, donde sólo puede establecer el permiso de un único usuario a la vez.

    Sin embargo, usar la notación octal requiere algo de tiempo y práctica para poder recordar a qué se resuelve cada número octal. Dicho esto, no dudes en consultar el diagrama anterior siempre que utilices la notación octal. Veamos varios ejemplos de cómo cambiar permisos usando la notación octal.

    Para otorgar a todos los usuarios, es decir, el propietario, el propietario del grupo y otros usuarios, permiso de lectura, escritura y ejecución para leerList.txt, ejecute:

    chmod 777 readingList.txt

    Para comprobar si se han cambiado los permisos, ejecute:

    ls -l

    Producción:

    total 0
    -rwxrwxrwx 1 madici madici 0 Sep  6 05:45 readingList.txt

    Observe que ahora el propietario, el grupo y otros usuarios tienen permiso para leer, escribir y ejecutar ReadingList.txt.

    Para eliminar los permisos de escritura tanto del propietario del grupo como de otros, ejecute:

    chmod 755 readingList.txt

    Para eliminar el permiso de ejecución del propietario y de otros, ejecute:

    chmod 654 readingList.txt

    Permisos especiales en Linux

    Linux tiene tres permisos especiales que se pueden aplicar a archivos y directorios además de los permisos estándar de lectura, escritura y ejecución. Estos permisos proporcionan funcionalidad avanzada para el control de acceso y permiten a los usuarios con menos privilegios ejecutar archivos y comandos con mayores privilegios, al igual que el propietario del archivo o el propietario del grupo.

    Los permisos especiales incluyen:

    • Establecer ID de usuario (SUID): el permiso SUID permite a un usuario ejecutar un archivo o programa con los privilegios del propietario, y no los del usuario que lo ejecuta. Esto resulta útil cuando los usuarios estándar necesitan realizar tareas que requieren privilegios elevados.
    • Establecer ID de grupo (SGID): el permiso SGID permite a un usuario ejecutar un archivo con los permisos del propietario del grupo del archivo, en lugar de los permisos de su grupo real.
    • Sticky Bit: el bit adhesivo es un permiso que generalmente se establece en los directorios para garantizar que los archivos del directorio solo puedan ser eliminados por el propietario real del directorio, el propietario de ese archivo en particular o el usuario raíz.

    Los tres permisos especiales se pueden utilizar junto con los permisos estándar: lectura, escritura y ejecución.

    Conclusión

    Los permisos son un concepto importante en Linux, incluso si su computadora no tiene varios usuarios. Comprender el permiso es importante para garantizar el control, la seguridad y la privacidad de los datos almacenados en un sistema Linux y su funcionalidad. Por lo tanto, considere familiarizarse con los permisos practicando lo que ha aprendido sobre los permisos en este artículo.

    También puede explorar cómo usar los comandos de Linux en Windows.