Aprende a ejecutar un script en Linux con seguridad y sin errores. Verifica tu ubicación con pwd, inspecciona permisos con ls -l, ajusta permisos con chmod usando la lógica r=4, w=2, x=1 y ejecuta con bash o ./. Además, evita conflictos de nombres con type para garantizar un nombre único.
¿Cómo verificar y ajustar permisos en Linux para ejecutar un script?
Antes de ejecutar, confirma que estás en el directorio correcto con pwd y revisa permisos con ls -l. Los permisos se organizan en tres grupos: usuario, grupo y otros. Cada grupo combina lectura, escritura y ejecución. El mapeo numérico es r=4, w=2, x=1; sus sumas definen el modo, por ejemplo, 7 (4+2+1), 6 (4+2) y 4.
¿Qué significan r=4, w=2, x=1 en chmod?
r (4): permite lectura del archivo.
w (2): permite escritura o modificación.
x (1): permite ejecución.
Suma por grupo: usuario, grupo, otros. Cada grupo suma sus bits.
Ejemplo 764: usuario con rwx (7), grupo con rw (6), otros con r (4).
¿Cómo aplicar 764 y revisar con ls -l?
Ubícate en el directorio con pwd.
Lista detalles con ls -l nombre_del_script.
Cambia permisos: chmod 764 nombre_del_script.
Verifica con ls -l: verás rwx para usuario, rw para grupo y r para otros.
Indicador visual: puede verse en color verde al tener ejecución activa.
Si necesitas volver al estado inicial: chmod 664 nombre_del_script.
Para activar solo la ejecución de forma puntual: usa chmod con la opción de ejecución (x) para que quede ejecución en el usuario.
pwdls -l script.sh
chmod764 script.sh
ls -l script.sh
chmod664 script.sh
¿Cómo ejecutar un script: bash o ./?
Tras definir permisos, puedes ejecutar de dos formas. Con bash apuntas explícitamente al intérprete; con ./ llamas al archivo marcado como ejecutable. Ambas funcionan, pero usar bash es útil para debug y ./ es más natural cuando ya está listo para uso en producción.
¿Cuándo usar bash y cuándo ./?
Usa bash archivo para depuración y control del intérprete.
Usa ./archivo cuando el script es ejecutable y estable.
Ambas opciones son equivalentes en funcionalidad básica.
bash script.sh
./script.sh
¿Cómo asegurar un nombre único con el comando type?
Para evitar conflictos al nombrar tus scripts, valida el tipo y la ubicación con type. Si type nombre devuelve algo existente, cambia el nombre. En algunos sistemas, man o info pueden no mostrar entrada para type, así que consulta el propio comando.
¿Qué devuelve type, type -a y type -t?
type ls: muestra que es un alias del sistema.
type cd: indica que es una construcción del shell.
type -a ls: lista todas las ubicaciones encontradas del comando.
type -t nombre: imprime el tipo (alias, builtin, archivo, palabra reservada).
Si type CMD no devuelve nada: ese nombre no existe y es seguro usarlo.
Ejemplo citado: fort aparece como palabra reservada.
typelstypecdtype -a lstype -t lstype CMD
type -t fort
Habilidades y conceptos reforzados:
Gestión de permisos en Linux:ls -l, modelo de tres grupos, r=4, w=2, x=1.
Uso de chmod: modos numéricos como 764 y ajuste puntual de ejecución.
Ejecución de scripts: con bash y con ./ según contexto.
Verificación de nombres y tipos:type, type -a, type -t para evitar conflictos.
¿Te quedó alguna duda puntual sobre chmod, bash o type? Comparte tus preguntas y casos de uso.
Como menciona el profesor, el comando chmod +x es la forma rápida de dejar un archivo con permisos de ejecución. Si tienes problemas de memoria quizás sea el opción más fácil, en lugar de usar el típico chmod 7XX o similar.
Agregar permisos de lectura: chmod +r
Agregar permisos de escritura: chmod +w archivo
Quitar permisos de lectura: chmod -r archivo
Quitar permisos de escritura: chmod -w archivo
Quitar permisos de ejecución: chmod -x archivo
En caso de querer cambiar los permisos del grupo y otros ( el comando es similar al ejemplo anterior, sin embargo esta vez se agregar una “g” para grupo o una “o” para otros)
r: permiso de lecturaw: permiso de escriturax: permiso de ejecucion
propietario grupo todos
owner group anyone
rwx rwx rwx
Los tipos de permisos más comunes, o su combinación, son los siguiente:
666 ( RW / RW / RW)
Esta opción permite que todos los usuarios puedan leer y escribir en un archivo.
777 ( RWX / RWX /RWX)
Esta opción permite que todos los usuarios puedan leer, escribir y ejecutar en el archivo o carpeta
755 (RWX / RW / RW)
Con este permiso el propietario del archivo puede leer, escribir y ejecutar en el archivo mientras que los demás leer y escribir en el archivo mas no ejecutar.
644 (RW / R / R)
Con este permiso el propietario puede leer y escribir en el archivo mientras los demás solo pueden leer.
700 (RWX /—)
Con este permiso el propietario tiene el control total del archivo mientras que los demás usuarios no tendrán acceso de ningún tipo al archivo.
De momento contentísima por haber encontrado este curso.
Estoy cursando online el grado superior de desarrollo de apps y nunca entendí la forma de hacer un Script.
De momento, aquí, en pocos minutos ya aprendí mas que en un mes.
Gracias Marco!
4 - permisos de lectura
2 - permisos de escritura
1 - permisos de ejecución
7 = 4 + 2 + 1, por lo tanto se tendrían permisos de lectura, escritura y ejecución.
6 = 4 + 2, permisos de lectura y ejecición
4 = 4 , permisos de lectura
Ejemplo de permisos de un archivo.
-rw-rw-r-- significa que en un archivo el owner tiene permisos de lectura y escritura, el grupo tiene permisos de lectura y escritura, y los demás usuarios tienen permisos de lectura.
Si querémos darles permisos de ejecución al owner de ese archivo
Tenemos un par de opciones con las cuales podemos ejecutar los scripts bash que creemos:
$ bash script.sh, algo más común para la parte del debug.
$ ./script.sh, enfocado más a la ejecución de scripts en producción.
Con el comando type, podemos buscar la ruta absoluta y los aliases de un comando. De esta manera, podemos asegurarnos de que el nombre de nuestro script no está siendo utilizado por ningún otro comando.
En ciertas ocasiones, un comando no tiene una definición sino varias; para poder estar al tanto de esto, podemos ejecutar el comando con la bandera -a y así nos mostrará todas las definiciones del comando.
Si por otro lado, deseamos también ver el tipo de archivo (pues, podemos tener quizás dos archivos con nombres iguales, pero con diferente connotación), podemos utilizar la bandera -t.
Quizas esto le ayude a quienes les gusta el sistema octal:
R
W
X
Significado
Resultado
0
0
0
Ningún permiso.
0
0
0
1
Permiso de ejecución.
1
0
1
0
Permiso de escritura.
2
0
1
1
Permiso de escritura y ejecución.
3
1
0
0
Permiso de lectura.
4
1
0
1
Permiso de lectura y ejecución.
5
1
1
0
Permiso de lectura y escritura.
6
1
1
1
Permiso de lectura, escritura y ejecución.
7
Con el comando chmod se pueden cambiar los permisos de los archivos de dos formas, una es usando los símbolos (rwx) y otra es con el sistema octal.
¿Cómo cambiar los permisos de un archivo (chmod)?
Es bastante sencillo cambiar los permisos de forma simbólica. Para esto, hay que escribir después del comando chmod el símbolo del usuario, luego el operador y por último el permiso que quieres agregar o quitar.
Supongamos que queremos añadirle permiso de escritura al grupo, entonces tenemos que escribir lo siguiente:
chmod g+w ejemplo.txt
Puedes cambiar varios permisos de varios usuarios al mismo tiempo, por ejemplo, si quisieras agregar el permiso de escritura y ejecución al grupo y a otros, sería así:
chmod go+wx [archivo]
Y si quieres permisos diferentes para cada usuario, solo sepáralos por comas:
chmod u+r,g=w [archivo]
En ese comando se le añadió el permiso de lectura al dueño y de escritura al grupo. ¡No agregues espacio en las comas o provocarás un error!
Uso de forma en octales
También puedes cambiar los permisos usando su forma octal, por ejemplo el conjunto de permisos rwxr-xr-x en su forma octal es 755.
Dejo este script que hice para evitar estar dando permisos a cada script que hacia en el curso, asi solo le daba permisos al primero, y al ejecutarlo le paso el nuevo script
Le hice unos ligeros ajustes a tu script por si les sirve.
#!/bin/bash#Script que pide un parametro para cambiar el permiso del archivo que se le pasa y hacerlo ejecutable
chmod +x $1
echo "El archivo $1 ahora tiene permisos de ejecucion"sleep 2ls -lhtr $1
./$1