Cómo otorgar permiso de ejecución a un script de shell

ShellShellBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Este tutorial lo guiará a través del proceso de otorgar permisos de ejecución a sus scripts de Shell. Comprender los permisos de archivo y cómo aplicarlos es un aspecto crucial de la programación en Shell, lo que le permite hacer que sus scripts sean ejecutables y listos para ejecutarse.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL shell(("Shell")) -.-> shell/BasicSyntaxandStructureGroup(["Basic Syntax and Structure"]) shell(("Shell")) -.-> shell/SystemInteractionandConfigurationGroup(["System Interaction and Configuration"]) shell/BasicSyntaxandStructureGroup -.-> shell/shebang("Shebang") shell/SystemInteractionandConfigurationGroup -.-> shell/exit_status_checks("Exit Status Checks") subgraph Lab Skills shell/shebang -.-> lab-417761{{"Cómo otorgar permiso de ejecución a un script de shell"}} shell/exit_status_checks -.-> lab-417761{{"Cómo otorgar permiso de ejecución a un script de shell"}} end

Comprender los permisos de archivo

En el sistema operativo Linux, cada archivo y directorio tiene un conjunto de permisos que determinan quién puede realizar ciertas acciones sobre ellos. Estos permisos se dividen en tres categorías principales: lectura, escritura y ejecución.

Permisos de archivo

Los permisos de un archivo se representan mediante una cadena de 10 caracteres, que se ve así:

-rw-r--r--

El primer carácter indica el tipo de archivo, donde - representa un archivo normal, d representa un directorio y otros caracteres representan tipos de archivos especiales.

Los 9 caracteres restantes representan los permisos del archivo, divididos en tres grupos de tres:

  1. Permisos de usuario: Los primeros tres caracteres representan los permisos del propietario del archivo.
  2. Permisos de grupo: Los siguientes tres caracteres representan los permisos del grupo al que pertenece el archivo.
  3. Permisos de otros: Los últimos tres caracteres representan los permisos de todos los demás usuarios.

Cada uno de estos grupos de tres caracteres sigue el mismo patrón:

  • r: Permiso de lectura
  • w: Permiso de escritura
  • x: Permiso de ejecución
  • -: Sin permiso

Por ejemplo, los permisos -rw-r--r-- indican que el propietario del archivo tiene permisos de lectura y escritura, el grupo tiene permiso de lectura y todos los demás usuarios tienen permiso de lectura.

Permisos de directorio

Los permisos de un directorio funcionan de manera ligeramente diferente a los de un archivo. Los permisos todavía se dividen en los mismos tres grupos, pero los significados de los permisos son diferentes:

  • r: Permite a los usuarios listar el contenido del directorio.
  • w: Permite a los usuarios crear, eliminar y renombrar archivos y subdirectorios dentro del directorio.
  • x: Permite a los usuarios acceder y navegar dentro del directorio.

Por ejemplo, los permisos drwxr-xr-x indican que el propietario del directorio tiene permisos de lectura, escritura y ejecución, el grupo tiene permisos de lectura y ejecución y todos los demás usuarios tienen permisos de lectura y ejecución.

Comprender los permisos octales

Además de la representación simbólica de los permisos, también se pueden representar los permisos utilizando un número octal (base 8). A cada permiso se le asigna un valor:

  • r = 4
  • w = 2
  • x = 1

Los permisos de un archivo o directorio se representan entonces mediante un número octal de 3 dígitos, donde cada dígito representa los permisos del usuario, grupo y otros, respectivamente.

Por ejemplo, los permisos -rw-r--r-- se pueden representar como el número octal 644, donde:

  • Permisos de usuario: rw- = 4 + 2 + 0 = 6
  • Permisos de grupo: r-- = 4 + 0 + 0 = 4
  • Permisos de otros: r-- = 4 + 0 + 0 = 4

Otorgar permiso de ejecución

Para ejecutar un script de shell, el archivo debe tener el permiso de ejecución establecido. Esto se puede hacer utilizando el comando chmod, que significa "cambiar modo" (change mode).

Usar el comando chmod

El comando chmod se utiliza para cambiar los permisos de un archivo o directorio. La sintaxis básica es:

chmod [options] mode file

Donde:

  • [options] son banderas opcionales que modifican el comportamiento del comando chmod.
  • mode es el nuevo modo de permiso que desea establecer.
  • file es el nombre del archivo o directorio para el que desea cambiar los permisos.

Para otorgar permiso de ejecución a un script de shell, puede usar el siguiente comando:

chmod +x script.sh

Esto agregará el permiso de ejecución (x) al archivo script.sh para el usuario, el grupo y otros.

Como alternativa, puede usar la representación octal de los permisos:

chmod 755 script.sh

Esto establecerá los permisos en rwxr-xr-x, donde:

  • El usuario (propietario) tiene permisos de lectura, escritura y ejecución.
  • El grupo y otros tienen permisos de lectura y ejecución.

Aplicar permisos de ejecución de forma recursiva

Si tiene un directorio con múltiples archivos y subdirectorios, puede aplicar el permiso de ejecución de forma recursiva utilizando la opción -R (recursiva):

chmod -R +x directory/

Esto otorgará permiso de ejecución a todos los archivos y subdirectorios dentro del directorio directory/.

Del mismo modo, puede usar la representación octal para establecer los permisos de forma recursiva:

chmod -R 755 directory/

Esto establecerá los permisos en rwxr-xr-x para todos los archivos y subdirectorios dentro del directorio directory/.

Al entender y aplicar los permisos de archivo adecuados, puede asegurarse de que sus scripts de shell sean ejecutables y puedan ser ejecutados por los usuarios destinados.

Aplicar permisos de ejecución

Ahora que entiendes cómo otorgar permiso de ejecución a un script de shell, exploremos algunas aplicaciones prácticas y ejemplos.

Ejecutar un script de shell

Una vez que hayas otorgado el permiso de ejecución a un script de shell, puedes ejecutarlo utilizando el siguiente comando:

./script.sh

Esto ejecutará el archivo script.sh, suponiendo que se encuentre en el directorio de trabajo actual.

Si el script se encuentra en un directorio que no está en la PATH del sistema, aún puedes ejecutarlo especificando la ruta completa al script:

/path/to/script.sh

Automatizar tareas con permisos de ejecución

Otorgar permisos de ejecución es especialmente útil cuando se desea automatizar tareas o scripts repetitivos. Por ejemplo, puedes crear un script de shell que realice una operación de copia de seguridad y luego establecer el permiso de ejecución en el script. Esto te permite ejecutar el script de copia de seguridad fácilmente cada vez que necesites realizar una copia de seguridad.

graph LR A[Create Backup Script] --> B[Grant Execution Permission] B --> C[Run Backup Script]

Proteger scripts sensibles

La gestión adecuada de los permisos de ejecución también es importante para proteger scripts o programas sensibles. Al controlar cuidadosamente quién tiene la capacidad de ejecutar ciertos scripts, se puede limitar el potencial de acceso no autorizado o mal uso.

Por ejemplo, es posible que tengas un script que realice tareas administrativas o acceda a datos sensibles. En este caso, querrás asegurarte de que solo los usuarios o procesos autorizados tengan el permiso de ejecución para ese script.

Desarrollo colaborativo

Al trabajar en un proyecto con varios miembros del equipo, la gestión de los permisos de ejecución puede ayudar a garantizar que todos puedan ejecutar los scripts y programas necesarios. Al establecer los permisos adecuados, puedes permitir a los miembros del equipo ejecutar los scripts que necesitan mientras todavía mantienes el control sobre el sistema en general.

Al entender cómo aplicar adecuadamente los permisos de ejecución, puedes mejorar la seguridad, la automatización y los aspectos colaborativos de tus flujos de trabajo de scripting de shell.

Resumen

Al final de este tutorial, tendrás una comprensión sólida de los permisos de archivo en el entorno de Shell y de los pasos para otorgar permiso de ejecución a tus scripts. Este conocimiento te permitirá crear y administrar scripts de Shell de manera efectiva, asegurando que se puedan ejecutar como se pretendió.