Bash Script – Permisos de archivo

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)

Lista de todos los archivos y directorios con sus permisos

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

cambiar el permiso usando el método simbólico

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:

Ejemplo para entender el método numérico 

 -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)

Ejemplo de archivo con chmod 640 

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

Cambiar el permiso usando el método numérico

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

Salida del guió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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *