En este artículo, discutiremos el permiso de archivo en Bash Script
Para entender el escenario, tomemos un ejemplo. Consideremos que hay un administrador del sistema A para la empresa XYZ que diseña un script que un usuario debe ejecutar a las 8:00 p. m. todos los días para enviar un informe. Él diseña el script pero se olvida de dar permiso al usuario para ejecutar el script. Cada vez que un usuario intenta ejecutar un script, recibe el error de que no está autorizado para realizar esta acción, ¿por qué sucedió esto?
En el caso anterior, vemos que el administrador del sistema creó un script pero no le dio permiso al usuario ya que no pudo ejecutarlo, así que para profundizar en esto, expliquemos cómo podemos configurar el permiso del archivo y cómo verificarlos. .
Solución: ahora, para el ejemplo anterior, el administrador del sistema solo tiene que otorgar o establecer el permiso de ejecución del archivo de usuario para que pueda ejecutar ese archivo
Entonces, ¿qué son los permisos de archivo?
Los permisos de archivo se pueden describir como quién, qué y qué actividades se pueden realizar en un archivo o directorio.
- que se refiere a usuarios, grupos u otros
- lo que significa agregar, eliminar y establecer
- lo que significa leer, escribir y ejecutar
Vistas de lista básicas de archivo y sus permisos
El comando que usamos es ls -l para mostrarnos la lista de archivos/directorios en la carpeta actual en la que estamos presentes. Esta captura de pantalla es un ejemplo común para mostrar el permiso (usando centos7 normal)
De la captura de pantalla anterior, tomemos un archivo, digamos luser_t04.sh, y veamos sus permisos de archivo
-rwx rwx rwx 1 raíz raíz 0 27 de febrero 17:35 luser_t04.sh
1 2 3
(r = leer, w= escribir, x = ejecutar)
- 1 representa el permiso del usuario, tienen los 3 permisos para leer, escribir y ejecutar el archivo
- 2 representa el grupo al que está asociado el archivo también tiene todos los permisos
- 3 representan a otros que también contienen los 3 permisos
Administrar permisos de archivos
Para administrar los permisos de archivos tenemos un comando llamado chmod que podemos usar para cambiar el permiso de archivos y directorios.
Método para usar el comando chmod
Hay 2 métodos para usar el comando
- método simbólico
- método numérico
Método simbólico
Sintaxis:
chmod whowhatwhat Archivo|directorio
- quién es u(usuario), g(grupo), o(otro)
- qué es +(agregar) ,-(eliminar) ,+(establecer)
- que es r (leer), w (escribir), x (ejecutar)
Veamos un ejemplo:-
Suponga que desea eliminar el permiso de lectura y escritura del grupo y otros del archivo
chmod go-rw <FILE> (can be any file name)
Ejemplo:
chmod go-rw luser_t04.sh. El nuevo permiso será así.
-rwx–x–x 1 raíz raíz 0 22 de febrero 02:28 luser_t04.sh
método numérico
Sintaxis:
chmod ### file|directory
#: representa cada dígito el permiso para usuario, grupo y otros.
4 = leer 2 = escribir 1 = ejecutar
Veamos el ejemplo de arriba:
-rwx–x–x 1 raíz raíz 0 22 de febrero 02:38 luser_t04.sh
- el permiso de usuario ha sido representado por rwx (4+2+1=7)
- el permiso de grupo se ha descrito como –x (0+0+1 =1)
- otro permiso se ha descrito como –x (0+0+1=1)
Tomemos otro ejemplo de un archivo
Archivo con permiso del 640 que significa en metodo numerico
-rw- r– — 1 raíz raíz 0 22 de febrero 02:36 archivo1.txt
- el usuario tiene permiso de lectura (4) y escritura (2) representado por rw- (4+2+0=6)
- el grupo tiene permiso de lectura (4) representado por r– (4+0+0=4)
- otros no tienen permiso (0), representado por — (0+0+0=0)
En este ejemplo, para establecer el permiso de archivo para un archivo (Ejemplo: ARCHIVO)
Queremos que el usuario pueda leer, escribir y ejecutar archivos, pero no queremos que los grupos escriban y ejecuten el archivo y que otros solo puedan ejecutar el archivo, entonces, ¿qué comando y sintaxis debemos usar?
Solución:
chmod 741 FILE1 (can be any file name)
El nuevo conjunto de permisos será rwx r– –x para ARCHIVO
-rwx r– –x 1 raíz raíz 0 22 de febrero 02:28 archivo.txt
Script para permiso de archivo
Podemos explicar el permiso del archivo creando un script simple para ejecutar y cambiar el permiso del archivo después de comprender los permisos del archivo.
Comandos paso a paso en script:
Paso 1. Primero creamos un archivo o verificamos si hay un archivo existente como se menciona en la captura de pantalla. Si el archivo no está presente, ejecutamos el comando
toque <NOMBRE DE ARCHIVO> (esto creará un nuevo archivo)
Paso 2. Nuestro objetivo es eliminar el permiso de escritura de otros y grupos como se menciona en la captura de pantalla. Ejecutaremos el comando en el script.
chmod 744 <NOMBRE DE ARCHIVO>
Paso 3. Finalmente, para verificar si el permiso ha cambiado o no, usaremos
ls-l
La secuencia de comandos
#!/bin/bash # script to change permission of file # File variable to store file.txt location FILE="file.txt" # to check the file we want to change # exists or not if [[ ! -e "${FILE}" ]] then echo "creating ${FILE} file" touch file.txt fi # to remove write permission of other and group of file chmod 744 "${FILE}" #to check if the permission are removed ls -l "${FILE}"
Ahora ejecutaremos este script y comprobaremos si funciona.
./file_perm.sh
Producción
NOTA: Al escribir el script y ejecutarlo, es importante verificar el permiso siempre después de crear el comando ls -l del script
Publicación traducida automáticamente
Artículo escrito por shubhamsingh50 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA