Cada archivo que se encuentra en un sistema de archivos compatible con POSIX (Ext4, Btrfs, XFS, JFS, etc.) tiene "bits de modo" asignados a sí mismo.
Para hacer que un archivo sea ejecutable en Linux, el bit de modo ejecutable debe estar habilitado.
Para configurar el bit del modo ejecutable, el comando chmod se usa así:
chmod u+x <file>
Con eso, puedes ejecutar dicho archivo desde la terminal:
./file
Ese fue el resumen rápido. Veamos las cosas un poco en detalle.
Hacer un archivo ejecutable en Linux
Hay varias formas de hacer que un archivo sea ejecutable en Linux. Los métodos más comunes involucran el uso de chmod
comando, de diferentes maneras.
Para verificar si puede ejecutar un archivo, use -l
marcar con ls
comando.
$ ls -l lhb.txt
-rw-r--r-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
En la primera columna, -rw-r--r--
representa que el propietario puede leer y escribir, los usuarios del grupo solo pueden leer y todos los demás solo pueden leer el archivo.
Tenga en cuenta la falta de x
de los símbolos de permiso. Esto significa que lhb.txt
no es ejecutable.
Recomiendo leer sobre los permisos de archivos de Linux y repasar los conceptos básicos para comprender mejor estos comandos.
Método 1:hacer que el archivo sea ejecutable para todos
El primer método, y el más directo, es hacer un archivo ejecutable usando el siguiente comando:
chmod +x <file>
El x
flag es establecer o deshabilitar el permiso ejecutable de un archivo. Y usando +
firmar antes de x
significa que queremos configurarlo como un archivo ejecutable.
Esto hará que el archivo sea ejecutable para el propietario, el grupo y todos los demás. Cualquiera en el sistema podrá ejecutarlo también.
$ ls -l lhb.txt
-rw-r--r-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
$ chmod +x lhb.txt
$ ls -l lhb.txt
-rwxr-xr-x 1 pratham staff 0 Mar 10 20:49 lhb.txt
Como puede ver ahora, todos, el propietario, el grupo y otros tienen el ejecutable x
conjunto de bits. Esto significa que todos pueden ejecutar este archivo ahora.
Método 2:Hacer que el archivo sea ejecutable solo para cierto usuario o grupo
Si no desea que todos puedan ejecutar un archivo, debe especificar clases antes de agregar/eliminar permisos de archivo.
Las clases disponibles son:
u
:permisos para propietario/usuariog
:permisos para el grupoo
:permisos para otrosa
:permisos para todos
Cuando especifica una clase, la sintaxis es mayormente similar a la que vio en el primer método.
chmod <class>+x <file>
Esto significa que, si quiero que el archivo sea ejecutable de tal manera que solo el propietario del archivo pueda ejecutarlo y nadie más, entonces debo usar el siguiente comando:
chmod u+x <file>
He aquí un ejemplo:
$ ls -l lhb.txt
-rw-r--r-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
$ chmod u+x lhb.txt
$ ls -l lhb.txt
-rwxr--r-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
Del mismo modo, para que sea ejecutable para todos los miembros del grupo que poseen ese archivo, debo usar el siguiente comando:
chmod g+x <file>
He aquí un ejemplo:
$ ls -l lhb.txt
-rw-r--r-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
$ chmod g+x lhb.txt
$ ls -l lhb.txt
-rw-r-xr-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
Cuando especifica el a
clase, es casi como si no hubieras especificado ninguna. Echemos un vistazo.
$ ls -l lhb.txt
-rw-r--r-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
$ chmod +x lhb.txt
$ ls -l lhb.txt
-rwxr-xr-x 1 pratham staff 0 Mar 10 20:49 lhb.txt
$ chmod 644 lhb.txt #reset permissions
$ chmod a+x lhb.txt
$ ls -l lhb.txt
-rwxr-xr-x 1 pratham staff 0 Mar 10 20:49 lhb.txt
Estos comandos pueden aparecer de manera diferente, pero tienen el mismo resultado.
Método 3:Usar los números octales
Si sigue el primer método, solo habilita el indicador ejecutable de un archivo haciendo +x
, por lo que cualquiera puede ejecutarlo.
Pero, a veces, es posible que no desee que todos ejecuten un archivo, tal vez debería necesitar algunos privilegios. En ese caso, puede especificar el conjunto completo de permisos.
Esto generalmente se hace proporcionando un valor octal o un valor simbólico para habilitar los permisos de archivo.
Esto le permite tener un control más granular sobre cómo se configuran las banderas. A continuación se muestra la sintaxis para usar valores octales con chmod
comando:
chmod <octal> <file>
Si no eres bueno con los números, puedes usar una calculadora de chmod en línea, que te ayuda a generar valores octales correctos y así evitar usar el valor incorrecto y estropear los permisos de archivo.
Digamos, quiero hacer que el archivo sea ejecutable solo para el propietario y el grupo, primero necesito saber sus permisos actuales y agregarle los bits ejecutables encima usando [chmod-calculator].
Veamos cómo hacerlo.
$ ls -l lhb.txt
-rw-r--r-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
$ chmod 754 lhb.txt
$ ls -l lhb.txt
-rwxr-xr-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
Como puede ver, solo el propietario y el grupo pueden ejecutar el archivo.
Conclusión
Este artículo cubre cómo hacer que un archivo sea ejecutable en un sistema Linux. Se centró principalmente en las diferentes formas de usar el chmod
dominio. Si quieres saber más al respecto, tenemos algunos ejemplos sobre cómo usar el chmod
comando.