Je souhaite autoriser les utilisateurs à exécuter un script bash contenant des données sensibles. Ainsi, je ne veux pas qu'ils aient des autorisations de lecture. Une solution « directe » seems to be impossible, mais je peux avoir trouvé une solution de contournement dans le expect man page:Exécuter un script sans lire les autorisations
Create the Expect script (that contains the secret data) as usual. Make its permissions be 750 (-rwxr-x---) and owned by a trusted group, i.e., a group which is allowed to read it. If necessary, create a new group for this purpose. Next, create a /bin/sh script with permissions 2751 (-rwxr-s--x) owned by the same group as before.
J'ai essayé de reproduire ce comme suit: Dans un dossier, j'ai deux scripts:
scripts Sh:
#!/bin/sh
echo "targetscript echo"
runscript.sh:
#!/bin/sh
echo "runscript echo"
groups
./script.sh
Je leur ai donné les droits comme suggéré dans la page de manuel:
groupadd scriptrunner
chown {myusername}:scriptrunner runscript.sh
chmod 2751 runscript.sh
chown root:scriptrunner script.sh
chmod 750 script.sh
La sortie de ls -l
semble bien se passer:
-rwxr-s--x. 1 {myusername} scriptrunner 51 Aug 25 13:04 runscript.sh
-rwxr-x---. 1 root scriptrunner 35 Aug 25 13:01 script.sh
Cependant, quand je lance ./runscript.sh
sans racine, je reçois l'erreur suivante :
runscript echo
{myusername} wheel
./runscript.sh: line 4: ./script.sh: Permission denied
Je ne sais pas ce qui s'est mal passé. Quelqu'un peut-il m'aider?
L'utilisateur qui exécute le script est-il un membre du groupe "scriptrunner"? –
S'il existe des données sensibles, elles doivent être cryptées, même si vous avez réussi à exécuter votre script sans autorisation de lecture ou si vous l'avez converti en fichier exécutable binaire (ELF). Les données pourraient être visualisées en utilisant un outil comme 'truss',' strace' ou 'ptrace' par quiconque utilisant le même nom d'utilisateur qui exécute le processus. Une solution possible consiste à faire exécuter des requêtes à un démon fonctionnant sous un autre nom d'utilisateur. – cdarke