Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/05/2017, à 21:03

sharky

Logon script

Bonjour,

Depuis quelques semaines, je cherche à faire logon script qui monte des partages d'un NAS sur la session de l'utilisateur. Et là je plante, raison pour laquelle je poste ce topic.

Tout le monde dit d'utiliser FSTAB. Problème de cette solution, il faut monter les points avec un credentials unique pour tous les utilisateurs d'une même machine. Pas bon si on veut suivre et mettre des droits sur share du NAS. De plus celui-ci gère un HOME.

Mon idée est donc de faire un script exécuté à l'ouverture de session:
Première étape, je définis le chemin de fichier credential

#Credential user file
CredFileName=$USER
CredFileName+="_cred"
CredFullPath=/home/$USER/.$CredFileName

Je contrôle s'il existe, sinon je quitte le script
#Check Cred Exist, if not exit script

if [ ! -f $CredFullPath ]
	then
		exit 1
fi

Je définis la cible: mon NAS avec contrôle si présent. Ben oui, avec un portable on ce déplace et on n'est pas toujours sur son réseau.

#Server/NAS
nasip=192.168.1.40
sleep 10
#Check if exist
ping -c3 $nasip &> /dev/null
if [ "$?" != 0 ]
	then
		echo no nas
		exit 1
fi

Je définis une variable pour le chemin local de montage, et je crée le dossier s'il n'existe pas

#Local mount path
PHome=/home/$USER/remoteshare/home
#Create local path if not exist
mkdir -p -- $PHome

Je monte

#Mount shares
sudo mount.cifs //$nasip/home $PHome -o credentials=$CredFullPath

Mon script fonctionne bien si je le lance dans la session. Comme je lance "sudo mount.cifs", le système me demande mon mot passe: logique

Mon souci: comment lancer le script à l'ouverture de session et sans mot de passe ?

1. Je place mon script dans /etc/profile.d, + chmod 644
2. visudo je rajoute une ligne : nomdutilisateur ALL=(ALL:ALL) NOPASSWD:/etc/profile.d/monscript.sh

Marche pas !! Ou est mon erreur ?

Est-ce que le contrôle du réseau n'est pas bon ? est-ce que si les paramètres SSID du wifi sont pour tous les utilisateurs, la connexion est faites avant l'ouverture de session ?
Quel est la bonne pratique pour sortir du script ? j'ai mis exit 1 !!
Dans visudo, comment je peux mettre une seul ligne et que le paramètre soit pour tous les utilisateurs de la machine ?

Merci de votre aide.

Dernière modification par sharky (Le 23/05/2017, à 21:03)

Hors ligne

#2 Le 23/05/2017, à 21:11

alduc31

Re : Logon script

Salut,

Le script est-il exécutable ?

chmod 744 /etc/profile.d/script

644 = lecture et écriture pour root sans exécution...


Asus UX325EA oled (i5-1135G7,16Go) avec Lunar 23.04 (base xubuntu modifiée)

Hors ligne

#3 Le 24/05/2017, à 08:28

sharky

Re : Logon script

Merci de ton retour!

Les autres scripts de ce dossier sont en 644

De plus je pense qu'il fonctionne, autre chose bloque. J'aurais dû détaillé "marche pas !"

Donc si le script est en place et que je veux me logger, impossible il tourne en boucle et je ne vois rien de ce qui ce passe.
Je ne sais pas si c'est un des mes contrôles, qu'il est en attente d'un mot de passe, du réseau ...

Je suis obligé de redémarrer en mode recovery, et supprimer le script de /etc/profile.d

Dernière modification par sharky (Le 24/05/2017, à 08:30)

Hors ligne

#4 Le 24/05/2017, à 09:27

alduc31

Re : Logon script

Autant pour moi, effectivement les scripts sont en 644.
Si le script est exécuté en tant qu'utilisateur et qu'il contient un sudo, ça va bloquer.
Pour le voir tu peux ajouter en début de script :

echo "UID = $UID" > /tmp/montage.log

Et voir ce que contient le fichier /tmp/montage.log après le login.

Sinon tu peux utiliser gvfs-mount ou udisksctl qui doivent fonctionner dans l'espace utilisateur.


Asus UX325EA oled (i5-1135G7,16Go) avec Lunar 23.04 (base xubuntu modifiée)

Hors ligne

#5 Le 24/05/2017, à 09:48

sharky

Re : Logon script

Et si le login ne fonctionne pas ?
J'imagine que je peux redirigé ce log ailleurs afin qu'il soit disponible après 2 redémarrage wink

Hors ligne

#6 Le 24/05/2017, à 09:59

alduc31

Re : Logon script

Le login ne fonctionne pas ? Tu n'arrives pas sur le bureau ? Si tu es logué et que le script est exécuté le log en début doit fonctionner (même si ça bloque au sudo après) et tu peux voir le fichier avec la valeur de l'UID.
Oui tu peux indiquer le chemin que tu veux pour ce fichier de log. Mais c'est juste pour voir si l'UID est 1000 ou plus et dans ce cas c'est l'utilisateur qui execute le script (donc pas bon pour le sudo ou alors faut modifier le sudoers).


Asus UX325EA oled (i5-1135G7,16Go) avec Lunar 23.04 (base xubuntu modifiée)

Hors ligne

#7 Le 24/05/2017, à 10:55

sharky

Re : Logon script

Effectivement je met le script dans sudoers
J'ai pensé mettre "mount.cifs" mais je n'ai pas trouvé son chemin hmm

Hors ligne

#8 Le 24/05/2017, à 10:58

alduc31

Re : Logon script

Avec le sudo devant mount.cifs faut mettre mount.cifs dans sudoers.
Chemin :

/sbin/mount.cifs

Asus UX325EA oled (i5-1135G7,16Go) avec Lunar 23.04 (base xubuntu modifiée)

Hors ligne

#9 Le 24/05/2017, à 20:06

sharky

Re : Logon script

Je te remercie !
ça marche !

visudo je rajoute une ligne : nomdutilisateur ALL=(ALL:ALL) NOPASSWD:/sbin/mount.cifs

Hors ligne