Hola. Esto no me hace falta para nada. Es sólo por curiosidad.
¿No hay una forma de encriptar un script de modo que el usuario no pueda ver su contenido, pero que la consola lo pueda ejecutar al recibir la orden de dicho usuario?
Si encripto un script para que el usuario no pueda ver el contenido, entonces bash tampoco podrá ejecutarlo.
Si le quito al script el permiso de lectura el usuario no verá el contenido, pero la consola tampoco.
Para solucionarlo sólo se me ocurrió lo siguiente:
En el /home he creado un directorio llamado "Scripts" con permisos dr-x--x--x y dueño root. Dentro de ese directorio he guardado un script llamado "secreto.sh".
Luego, aunque no hace falta, he creado otro script llamado “kgb” en el Path del usuario /home/usuario/bin/kbg para que el usuario no tenga que señalar la ruta completa hacia el script “secreto.sh”. Así, cuando el usuario invoca el script “kgb”, este script pone en marcha el script “secreto.sh”.
*******************
#!/bin/bash
#Script “kgb” que pone en marcha el script “secreto.sh”.
/home/Scripts/secreto.sh
*******************
Así, el usuario puede poner en marcha el script “secreto.sh” escribiendo “kgb” en la consola ( o a través de un icono en el escritorio), pero no podrá leer el contenido del script “secreto.sh”.
[usuario1@localhost ~]$ cd ..
$ ls
Scripts / usuario1 / usuario2 / usuario3
$ cd Scripts
$ ls
ls: .: Permission denied
$ su
# ls
secreto.sh
# exit
$
[usuario1@localhost ~]$ kgb
Script secreto.sh funcionado.
Funciona, pero no sé si eso es una chapuza, no sé si se puede hacer de otra manera.
Saludos.