bonjour,
Je comprends l'énoncé du problème de 2 manières.
1/ comme
@clarisse ?
tu veux un peu plus de discrétion sur le home, et donc depuis le compte de toto "nautilus /home/tata" est trop intrusif
sudo chmod 750 /home/tata
-> chez toto, nautilus refusera d'afficher le /home/tata. idem avec une console.
2/ mode opératoire du login/mot de passe
L'authentification réussit, alors l'application se lance
cat exlogin.bash
#!/bin/bash
init() {
create toto secret
create tata tresor
create titi cadenas
create momo secret
}
verify(){
local csat ve=0
while IFS=$':' read a b c
do if [ "x$1" = "x$a" ]; then
echo "$a, utilisateur trouvé"; ((ve++))
csat=$(awk '{print $1}' < <(sha256sum < <(echo -n "$b:$2")))
if [ "x$csat" = "x$c" ]; then echo "mot_de_passe correct"; ((ve++)); fi
fi
done </tmp/store
if [ "$ve" -eq 2 ]; then echo "authentification réussie -> l'application se lance"; else echo "authentification échouée"; fi
}
create() {
local user pass salt csat
user="$1"
pass="$2"
salt=$(openssl rand -hex 4)
csat=$(awk '{print $1}' < <(sha256sum < <(echo -n "$salt:$pass")))
echo "$user:$salt:$csat" >> /tmp/store
}
if [ ! -f /tmp/store ]; then init; fi
while true; do
read -p "utilisateur ?" utilisateur
echo
read -p "mot_de_passe ?" secret
echo
verify "$utilisateur" "$secret"
echo
done
c'est parfaitement possible en enjolivant le paquet cadeau, un peu de binaire, un peu de droit/permission, ..