GNU/Linux >> Tutoriales Linux >  >> Linux

Comando Chmod:cómo cambiar los permisos de archivo en Linux

Uno de los primeros comandos que aprendí en Linux fue el touch comando que crea un archivo usando la línea de comando.

Si alguna vez intenta crear, por ejemplo, un archivo de texto, todo lo que tiene que hacer es escribir touch filename.txt , presione Entrar y el archivo se creará para usted en el directorio en el que se encuentra. Luego puede escribir lo que quiera en él usando el editor de archivos de su elección.

Sin embargo, cuando se trata de crear scripts, las cosas pueden complicarse un poco más. ¿Porqué es eso?

Déjame tratar de mostrarte esto con otro ejemplo. Supongamos que desea crear un script utilizando el tacto. Escribe touch example.sh , presiona Enter, y ahí lo tienes. Una vez más, puede escribir en él usando un editor de archivos.

Con todo listo, solo queda probarlo. Escribe ./sample.sh y presione Entrar para ver su secuencia de comandos en acción y... pero, ¿qué me dice este mensaje?

¿Por qué necesitamos permisos?

¡Soy el administrador! ¿Cómo es que no tengo permiso para ejecutar un script que escribí yo mismo hace unos segundos?

En realidad, hay una razón para eso y, para ser honesto, la mayoría de los usuarios deberían estar agradecidos por ello, ya que no poder ejecutar scripts sin saber lo que está haciendo a menudo evita que ponga en riesgo su sistema.

Primero tengamos una charla rápida sobre los permisos. Luego pasaremos a descubrir cómo cambiarlos.

Para obtener más información sobre su archivo, usaremos el comando que enumera los archivos en un directorio:ls .

Después de escribir ls y presionando Enter, esto es lo que obtenemos en la línea de comando:

Lo que hace es listar todos los archivos visibles en el directorio en el que te encuentras en ese momento. Agregando la bandera -l a él, le proporciona más información sobre los archivos en el directorio. Este es el resultado cuando escribimos ls -l y presione Entrar:

Vemos los mismos archivos, pero con mucha información delante de ellos. Para empezar, tenemos una secuencia de diez guiones y letras que al principio pueden parecer sin sentido. Esta es en realidad la asignación de permisos que tiene su archivo.

El primer carácter puede ser un guión (- , para un archivo común), una d (para un directorio), o un l (para un enlace suave). En aras de la simplicidad, me centraré en los archivos simples, aunque los permisos son válidos para todos estos tipos de archivos/carpetas.

Después del primer carácter, los otros 9 se pueden dividir en grupos de tres. El primer trío muestra los permisos para el usuario actual. A continuación se muestran los permisos para este grupo. Los últimos tres son los permisos para todos los usuarios que no encajan en esta categoría.

Para nuestra explicación, centrémonos en los tres primeros permisos, ya que no vamos a cambiar de grupo ni nada por el estilo.

El primer trío dice rw- .

Es hora de entender cuáles son estos. Hay tres cosas que normalmente puede hacer con un archivo:leerlo, escribirlo y ejecutarlo. Eso es, básicamente, lo que significan esas letras.

El primer r representa el permiso de lectura. Entonces tenemos w por el permiso de escritura. Finalmente, un guión, lo que significa que lo que debería estar allí no lo está. Lo que debería estar ahí es una x , que significa ejecutable.

Entonces, hablando del usuario actual (yo), los permisos que tengo para este archivo son los permisos de lectura y escritura. Sin embargo, no puedo ejecutar sample.sh expediente. Es por eso que, al intentar ejecutar el archivo, recibí el mensaje 'permiso denegado'.

¿Cómo puedo, entonces, ejecutar este archivo? Ahí es donde el chmod entra en juego el comando.

¿Qué hace chmod?

Bueno, he estado mencionando "permisos" desde el principio del artículo. Ampliemos un poco esta explicación para decir que son 'permisos para acceder a un archivo en un determinado modo . Esto significa que r denota el permiso para acceder al archivo en modo lectura, w denota el permiso para acceder al archivo en modo de escritura, y x denota el permiso para acceder al archivo en modo ejecutable.

¿Por qué te digo eso? Debido al comando del que trata este artículo. chmod significa 'modo de cambio'. En otras palabras, cuando usa este comando, está cambiando el modo de un archivo al modo que desee usar.

Cómo usar operadores con cmod

Es necesario utilizar un operador con el comando chmod. Sirve para especificar el tipo de cambio que quieres hacer en los permisos.

Por ejemplo, + es el operador que usas para agregar un permiso a los que ya tiene el archivo. - elimina un permiso de la lista. También está el = operador, que restablece los permisos para que pueda volver a definirlos.

En nuestro caso, escribiendo chmod -w sample.sh , lo que le pido al comando que haga es eliminar el permiso de escritura. Entonces, lo que tendría que hacer para agregar el permiso ejecutable es escribir chmod +x sample.sh .

Si ahora trato de ejecutar el archivo, todo lo que ponga en el script ahora se ejecutará.

Usando ls -l , esto es lo que tendría ahora.

¿Quién obtiene el permiso?

Otra cosa que vale la pena señalar es quién obtiene este permiso. Verá que la 'x' se otorga a todos los usuarios, propietario del archivo, grupo y otros. Si esto no es lo que está buscando, tal vez sea bueno eliminar el permiso ejecutable nuevamente con chmod -x sample.sh .

Para habilitar el permiso solo para el propietario del archivo (yo, en este caso), debemos agregar una 'u' antes de la '+x', así:

chmod u+x sample.sh

Escribiendo ls -l , eso es lo que tienes:

Si desea otorgar el permiso tanto para el propietario como para su grupo, el comando sería chmod ug+x sample.sh .

¡Estupendo! Creo que esto cubre lo que me gustaría mostrarles. Hay otras cosas que podrían interesarte, como cómo usar chmod con valores octales o binarios para representar los permisos. Pero estos son modos que usamos para obtener los mismos resultados y creo que las letras son una forma más fácil de lograr estos resultados.

En caso de que desee obtener más información sobre el comando, una cosa que puede hacer es escribir chmod --help , que le dará un resumen de lo que puede hacer el comando. Se puede lograr una descripción aún más detallada escribiendo man chmod .

Espero que este artículo te haya sido útil. Para obtener más artículos sobre los comandos de Linux, consulte freecodecamp.org/news.

¡Feliz codificación! 😃


Linux
  1. Cómo guardar la salida del comando en un archivo en Linux

  2. Cómo cambiar permisos y propietarios a través de la línea de comandos

  3. Cómo cambiar la contraseña en Linux (comando passwd)

  4. Permisos de Linux:una introducción a chmod

  5. Cómo usar el comando chmod (Modo de cambio) en Linux

Comando Chown en Linux (Cambiar la propiedad del archivo)

Cómo cambiar permisos en Linux

Comando Chmod en Linux

Aprenda el uso del comando chmod (modo de cambio) en Linux

Cómo cambiar los permisos de archivo

Ejemplos de comandos chmod de Linux