Salut les gens,
J’ai besoin d’envoyer un script (bash) à la connexion d’un utilisateur. Ce script fait des “cp”, du “ln” et du “chown”.
Le problème du “chown” c’est qu’il nécessite d’être root, mais ce chown utilise la variable d’environnement $USER. Donc, si c’est root qui exécute le bouzin, le propriétaire sera root, or j’ai besoin que ce soit l’Utilisateur qui se connecte.
Voici le script en question: (dans /usr/local/bin/transfertPOL.sh)
#!/bin/bash
#transfert de POL au démarrage de la session
groupe=$(id -gn $1)
uid=$(id -u $1)
POL=/var/POL
home=$(eval echo ~$1)
lien=$home/.PlayOnLinux
#changement de propriétaire du dossier
sudo chown -h -R $1:$groupe $POL
ln -s $POL $lien
sudo chown -h -R $1:$groupe $lien
#Copie des raccourcis sur le Bureau
cp --preserve=ownership $POL/shorcuts/*.desktop $home/Desktop
J’ai appris que pour lancer un script au démarrage de session, il fallait créer un fichier .desktop (doc LXDE). Voici mon Desktop Entry: (dans /etc/xdg/autostart/transfertPOL.desktop)
[Desktop Entry]
Type=Application
Exec=sh /usr/local/bin/transfertPOL.sh
Et comme ce script a besoin de sudo, j’ai edité /etc/sudoers.d/transfert avec:
%users ALL=NOPASSWD: /usr/local/bin/transfertPOL.sh
(J’ai au passage décommenté la dernière ligne de /etc/sudoers : includedir /etc/sudoers.d/)
Donc, le script marche, mais pas le chown… C’est gênant.
Vous remarquerez que mon Desktop Entry n’a pas de sudo dans la commande… et bien l’exécution du Desktop Entry ne fonctionne pas en mettant Exec= sudo sh …
Une idée pour que mon rêve devienne une réalité ?
Merci les amiches.


