Buenas! Tengo un ejercicio que se supone es simple, pero no me llega a funcionar del todo
Lo que se pide es: Crear un script que pida el nombre de un ARCHIVO y le cambie los permisos al tipo de usuario GRUPO por los permisos contrarios
Me explico, si el fichero prueba.txt tiene permisos rw- y una vez aplicado el script debe pasar a --x
Lo que tengo hasta ahora es esto:
#!/bin/bash
#FUNCIONES#
pintarpuntos(){
contador=0
until [ $contador = 4 ]; do
sleep 0.5
echo -n "."
contador=$(($contador+1))
done
}
mostrarpermisostotales(){
echo "Los permisos de tu archivo/carpeta son: "
permisos=$(ls -al |grep $objeto)
echo $permisos
}
mostrarpermisos(){
echo "Los permisos de grupo de tu archivo o carpeta son: "
permisos=$(ls -al|grep $objeto|cut -c 5-7)
echo $permisos
}
mostrarpermisoscambiados(){
echo "LOS NUEVOS PERMISOS DE GRUPO DE TU ARCHIVO/DIRECTORIO SON: "
permisos=$(ls -al|grep $objeto|cut -c 5-7)
echo $permisos
}
cambiarpermisos(){
echo "Vamos a invertir los permisos de grupo de tu archivo/carpeta seleccionado"
permisoL=$(ls -al|grep $objeto|cut -c 5)
permisoE=$(ls -al|grep $objeto|cut -c 6)
permisoX=$(ls -al|grep $objeto|cut -c 7)
if [ $permisoL = r ];
then
chmod g-r $objeto
else
chmod g+r $objeto
fi
w='w'
if [ $permisoE = $w ];
then
chmod g-w $objeto
else
chmod g+'w' $objeto
fi
if [ $permisoX = x ];
then
chmod g-x $objeto
else
chmod g+x $objeto
fi
}
#FIN FUNCIONES#
echo "Escribe el nombre del archivo o directorio"
read objeto
bandera=0
if [ -z "$objeto" ]; then
echo "No existe"
fi
if [ -d $objeto ];then
clear
mostrarpermisos
cambiarpermisos
mostrarpermisoscambiados
fi
if [ -f $objeto ];then
clear
mostrarpermisos
cambiarpermisos
mostrarpermisoscambiados
fi