{"id":253485,"date":"2022-10-23T06:25:54","date_gmt":"2022-10-23T06:25:54","guid":{"rendered":"https:\/\/magazineoffice.com\/como-usar-el-comando-chmod-en-linux\/"},"modified":"2022-10-23T06:25:56","modified_gmt":"2022-10-23T06:25:56","slug":"como-usar-el-comando-chmod-en-linux","status":"publish","type":"post","link":"https:\/\/magazineoffice.com\/como-usar-el-comando-chmod-en-linux\/","title":{"rendered":"C\u00f3mo usar el comando chmod en Linux"},"content":{"rendered":"


\n<\/p>\n

\n<\/p>\n
Fatmawati Achmad Zaenuri\/Shutterstock.com<\/span><\/figcaption><\/figure>\n

Chmod toma tres argumentos principales: r, w y x, que representan lectura, escritura y ejecuci\u00f3n, respectivamente. Agregar o eliminar combinaciones de argumentos controla los permisos de archivos y carpetas. Por ejemplo, chmod +rwx agrega permiso para leer, escribir y ejecutar scripts. Ejecutar chmod -wx elimina la capacidad de escribir y ejecutar.<\/p>\n

Controle qui\u00e9n puede acceder a los archivos, buscar directorios y ejecutar scripts con Linux chmod<\/code> dominio. Este comando modifica los permisos de archivos de Linux, que parecen complicados a primera vista, pero en realidad son bastante simples una vez que sabes c\u00f3mo funcionan.<\/p>\n

chmod modifica los permisos de archivo<\/h2>\n

En Linux, qui\u00e9n puede hacer qu\u00e9 con un archivo o directorio se controla a trav\u00e9s de conjuntos de permisos. Hay tres conjuntos de permisos. Un conjunto para el propietario del archivo, otro conjunto para los miembros del grupo del archivo y un conjunto final para todos los dem\u00e1s.<\/p>\n

Los permisos controlan las acciones que se pueden realizar en el archivo o directorio. Permiten o impiden que un archivo se lea, modifique o, si se trata de un script o programa, se ejecute. Para un directorio, los permisos rigen qui\u00e9n puede cd<\/code> en el directorio y qui\u00e9n puede crear o modificar archivos dentro del directorio.<\/p>\n

usas el chmod<\/code> comando para establecer cada uno de estos permisos. Para ver qu\u00e9 permisos se han establecido en un archivo o directorio, podemos usar ls<\/code>.<\/p>\n

Visualizaci\u00f3n y comprensi\u00f3n de los permisos de archivo<\/h2>\n

Podemos usar el -l<\/code> (formato largo) opci\u00f3n para tener ls<\/code> enumere los permisos de archivo para archivos y directorios.<\/p>\n

ls -l<\/pre>\n

\"\"<\/p>\n

En cada l\u00ednea, el primer car\u00e1cter identifica el tipo de entrada que se est\u00e1 enumerando. Si es un gui\u00f3n (-<\/code>) es un archivo. si es la letra d<\/code> es un directorio.<\/p>\n

Los nueve caracteres siguientes representan la configuraci\u00f3n de los tres conjuntos de permisos.<\/p>\n

    \n
  • Los tres primeros caracteres muestran los permisos del usuario propietario del archivo (Permisos de usuario<\/em>).<\/li>\n
  • Los tres caracteres del medio muestran los permisos para los miembros del grupo del archivo (permisos de grupo<\/em>).<\/li>\n
  • Los \u00faltimos tres caracteres muestran los permisos para cualquier persona que no est\u00e9 en las dos primeras categor\u00edas (otros permisos<\/em>).<\/li>\n<\/ul>\n

    Hay tres caracteres en cada conjunto de permisos. Los caracteres son indicadores de la presencia o ausencia de uno de los permisos. Son un gui\u00f3n (-<\/code>) o una carta. Si el car\u00e1cter es un gui\u00f3n, significa que no se otorga el permiso. Si el personaje es un r<\/code>, w<\/code>o un x<\/code>ese permiso ha sido concedido.<\/p>\n

    Las letras representan:<\/p>\n

      \n
    • r<\/em>: permisos de lectura. El archivo se puede abrir y ver su contenido.<\/li>\n
    • w<\/em>: Permisos de escritura. El archivo se puede editar, modificar y eliminar.<\/li>\n
    • X<\/em>: Permisos de ejecuci\u00f3n. Si el archivo es un script o un programa, se puede ejecutar (ejecutar).<\/li>\n<\/ul>\n

      Por ejemplo:<\/p>\n

        \n
      • ---<\/code> significa que no se han concedido permisos en absoluto.<\/li>\n
      • rwx<\/code> significa que se han concedido todos los permisos. Los indicadores de lectura, escritura y ejecuci\u00f3n est\u00e1n todos presentes.<\/li>\n<\/ul>\n

        En nuestra captura de pantalla, la primera l\u00ednea comienza con un d<\/code>. Esta l\u00ednea se refiere a un directorio llamado \u00abarchivo\u00bb. El propietario del directorio es \u201cdave\u201d, y el nombre del grupo al que pertenece el directorio tambi\u00e9n se llama \u201cdave\u201d.<\/p>\n

        Los siguientes tres caracteres son los permisos de usuario para este directorio. Estos muestran que el propietario tiene permisos completos. los r<\/code>, w<\/code>y x<\/code> todos los personajes est\u00e1n presentes. Esto significa que el usuario dave tiene permisos de lectura, escritura y ejecuci\u00f3n para ese directorio.<\/p>\n

        El segundo conjunto de tres caracteres son los permisos de grupo, estos son r-x<\/code>. Estos muestran que los miembros del grupo dave tienen permisos de lectura y ejecuci\u00f3n para este directorio. Eso significa que pueden enumerar los archivos y su contenido en el directorio, y pueden cd<\/code> (ejecutar) en ese directorio. No tienen permisos de escritura, por lo que no pueden crear, editar o eliminar archivos.<\/p>\n

        El conjunto final de tres personajes tambi\u00e9n r-x<\/code>. Estos permisos se aplican a las personas que no se rigen por los dos primeros conjuntos de permisos. Estas personas (llamadas \u201cotros\u201d) tienen permisos de lectura y ejecuci\u00f3n en este directorio.<\/p>\n

        Entonces, para resumir, los miembros del grupo y otros tienen permisos de lectura y ejecuci\u00f3n. El propietario, un usuario llamado dave, tambi\u00e9n tiene permisos de escritura.<\/p>\n

        Para todos los dem\u00e1s archivos (aparte del archivo de script mh.sh), Dave y los miembros del grupo Dave tienen propiedades de lectura y escritura en los archivos, y los dem\u00e1s solo tienen permisos de lectura.<\/p>\n

        Para el caso especial del archivo de script mh.sh, el propietario Dave y los miembros del grupo tienen permisos de lectura, escritura y ejecuci\u00f3n, y los dem\u00e1s solo tienen permisos de lectura y ejecuci\u00f3n.<\/p>\n

        Comprensi\u00f3n de la sintaxis de permisos<\/h2>\n

        Usar chmod<\/code> para establecer permisos, necesitamos decirle:<\/p>\n

          \n
        • Qui\u00e9n:<\/em> Para qui\u00e9n estamos configurando permisos.<\/li>\n
        • Qu\u00e9<\/em>: \u00bfQu\u00e9 cambio estamos haciendo? \u00bfEstamos agregando o eliminando el permiso?<\/li>\n
        • Cual<\/em>: \u00bfCu\u00e1l de los permisos estamos configurando?<\/li>\n<\/ul>\n

          Usamos indicadores para representar estos valores y formamos breves \u00abdeclaraciones de permisos\u00bb como u+x<\/code>donde \u00abu\u00bb significa \u00abusuario\u00bb (qui\u00e9n), \u00ab+\u00bb significa agregar (qu\u00e9) y \u00abx\u00bb significa el permiso de ejecuci\u00f3n (cu\u00e1l).<\/p>\n

          Los valores de \u00abqui\u00e9n\u00bb que podemos usar son:<\/p>\n

            \n
          • tu<\/em>: Usuario, es decir, el propietario del archivo.<\/li>\n
          • gramo<\/em>: Grupo, es decir, miembros del grupo al que pertenece el archivo.<\/li>\n
          • o<\/em>: Otros, es decir, personas no gobernadas por el u<\/code> y g<\/code> permisos<\/li>\n
          • a<\/em>: Todo, lo que significa todo lo anterior.<\/li>\n<\/ul>\n

            Si no se utiliza ninguno de estos, chmod<\/code> se comporta como si \u201ca<\/code>\u00bb ha sido usado.<\/p>\n

            Los valores de \u00abqu\u00e9\u00bb que podemos usar son:<\/p>\n

              \n
            • \u2013<\/em>: Signo menos. Elimina el permiso.<\/li>\n
            • +<\/em>: Signo de m\u00e1s. Otorga el permiso. El permiso se agrega a los permisos existentes. Si desea tener este permiso y solo este conjunto de permisos, use el =<\/code> opci\u00f3n, que se describe a continuaci\u00f3n.<\/li>\n
            • =<\/em>: Signo de igual. Establezca un permiso y elimine otros.<\/li>\n<\/ul>\n

              Los valores de \u00abcu\u00e1l\u00bb que podemos usar son:<\/p>\n

                \n
              • r<\/em>: El permiso de lectura.<\/li>\n
              • w<\/em>: El permiso de escritura.<\/li>\n
              • X<\/em>: El permiso de ejecuci\u00f3n.<\/li>\n<\/ul>\n

                Configuraci\u00f3n y modificaci\u00f3n de permisos<\/h2>\n

                Digamos que tenemos un archivo en el que todos tienen permisos completos.<\/p>\n

                ls -l new_ file.txt<\/pre>\n

                \"\"<\/p>\n

                Queremos que el usuario dave tenga permisos de lectura y escritura y que el grupo y otros usuarios solo tengan permisos de lectura. Podemos hacerlo usando el siguiente comando:<\/p>\n

                chmod u=rw,og=r new_file.txt<\/pre>\n

                \"\"<\/p>\n

                El uso del operador \u00ab=\u00bb significa que eliminamos los permisos existentes y luego establecemos los especificados.<\/p>\n

                vamos a comprobar el nuevo permiso en este archivo:<\/p>\n

                ls -l new_file.txt<\/pre>\n

                \"\"<\/p>\n

                Se eliminaron los permisos existentes y se configuraron los nuevos, como esper\u00e1bamos.<\/p>\n

                \u00bfQu\u00e9 hay de agregar un permiso? sin que<\/em> \u00bfEliminar la configuraci\u00f3n de permisos existente? Tambi\u00e9n podemos hacerlo f\u00e1cilmente.<\/p>\n

                Digamos que tenemos un archivo de script que hemos terminado de editar. Necesitamos hacerlo ejecutable para todos los usuarios. Sus permisos actuales se ven as\u00ed:<\/p>\n

                ls -l new_script.sh<\/pre>\n

                \"\"<\/p>\n

                Podemos agregar el permiso de ejecuci\u00f3n para todos con el siguiente comando:<\/p>\n

                chmod a+x new_script.sh<\/pre>\n

                \"\"<\/p>\n

                Si echamos un vistazo a los permisos, veremos que el permiso de ejecuci\u00f3n ahora se otorga a todos, y los permisos existentes a\u00fan est\u00e1n vigentes.<\/p>\n

                ls -l new_script.sh<\/pre>\n

                \"\"<\/p>\n

                Podr\u00edamos haber logrado lo mismo sin la \u00aba\u00bb en la declaraci\u00f3n \u00aba+x\u00bb. El siguiente comando habr\u00eda funcionado igual de bien.<\/p>\n

                chmod +x new_script.sh<\/pre>\n

                Configuraci\u00f3n de permisos para varios archivos<\/h2>\n

                Podemos aplicar permisos a varios archivos a la vez.<\/p>\n

                Estos son los archivos en el directorio actual:<\/p>\n

                ls -l<\/pre>\n

                \"\"<\/p>\n

                Digamos que queremos eliminar los permisos de lectura para los \u00abotros\u00bb usuarios de los archivos que tienen una extensi\u00f3n \u00ab.page\u00bb. Esto lo podemos hacer con el siguiente comando:<\/p>\n

                chmod o-r *.page<\/pre>\n

                \"\"<\/p>\n

                Veamos qu\u00e9 efecto ha tenido:<\/p>\n

                ls -l<\/pre>\n

                \"\"<\/p>\n

                Como podemos ver, el permiso de lectura ha sido eliminado de los archivos \u201c.page\u201d para la categor\u00eda de usuarios \u201cotros\u201d. Ning\u00fan otro archivo se ha visto afectado.<\/p>\n

                Si hubi\u00e9ramos querido incluir archivos en subdirectorios, podr\u00edamos haber usado el -R<\/code> opci\u00f3n (recursiva).<\/p>\n

                chmod -R o-r *.page<\/pre>\n

                Taquigraf\u00eda num\u00e9rica<\/h2>\n

                Otra forma de usar chmod<\/code> es proporcionar los permisos que desea otorgar al propietario, grupo y otros como un n\u00famero de tres d\u00edgitos. El d\u00edgito m\u00e1s a la izquierda representa los permisos para el propietario. El d\u00edgito del medio representa los permisos de los miembros del grupo. El d\u00edgito m\u00e1s a la derecha representa los permisos para los dem\u00e1s.<\/p>\n

                Los d\u00edgitos que puede usar y lo que representan se enumeran aqu\u00ed:<\/p>\n

                  \n
                • 0: (000) Sin permiso.<\/li>\n
                • 1: (001) Permiso de ejecuci\u00f3n.<\/li>\n
                • 2: (010) Permiso de escritura.<\/li>\n
                • 3: (011) Permisos de escritura y ejecuci\u00f3n.<\/li>\n
                • 4: (100) Permiso de lectura.<\/li>\n
                • 5: (101) Permisos de lectura y ejecuci\u00f3n.<\/li>\n
                • 6: (110) Permisos de lectura y escritura.<\/li>\n
                • 7: (111) Permisos de lectura, escritura y ejecuci\u00f3n.<\/li>\n<\/ul>\n

                  Cada uno de los tres permisos est\u00e1 representado por uno de los bits en el equivalente binario del n\u00famero decimal. As\u00ed que 5, que es 101 en binario, significa leer y ejecutar. 2, que es 010 en binario, significar\u00eda el permiso de escritura.<\/p>\n

                  Con este m\u00e9todo, establece los permisos que desea tener; no agrega estos permisos a los permisos existentes. Entonces, si los permisos de lectura y escritura ya estuvieran establecidos, tendr\u00eda que usar 7 (111) para agregar permisos de ejecuci\u00f3n. El uso de 1 (001) eliminar\u00eda los permisos de lectura y escritura y agregar\u00eda el permiso de ejecuci\u00f3n.<\/p>\n

                  Agreguemos el permiso de lectura nuevamente en los archivos \u00ab.page\u00bb para la categor\u00eda de otros usuarios. Tambi\u00e9n debemos establecer los permisos de usuario y grupo, por lo que debemos establecerlos en lo que ya son. Estos usuarios ya tienen permisos de lectura y escritura, que son 6 (110). Queremos que los \u00abotros\u00bb tengan permisos de lectura y, por lo que deben establecerse en 4 (100).<\/p>\n

                  El siguiente comando lograr\u00e1 esto:<\/p>\n

                  chmod 664 *.page<\/pre>\n

                  \"\"<\/p>\n

                  Esto establece los permisos que requerimos para el usuario, los miembros del grupo y otros seg\u00fan lo que requerimos. Los usuarios y miembros del grupo tienen sus permisos restablecidos a lo que ya eran, y los dem\u00e1s tienen el permiso de lectura restaurado.<\/p>\n

                  ls -l<\/pre>\n

                  \"\"<\/p>\n

                  Opciones avanzadas<\/h2>\n

                  Si lee la p\u00e1gina man de chmod<\/code> Ver\u00e1 que hay algunas opciones avanzadas relacionadas con los bits SETUID y SETGID, y con la eliminaci\u00f3n restringida o el bit \u00absticky\u00bb.<\/p>\n

                  Para el 99% de los casos necesitar\u00e1s chmod<\/code> para, las opciones descritas aqu\u00ed lo tendr\u00e1n cubierto.<\/p>\n<\/div>\n