web-dev-qa-db-fra.com

Monter le partage samba lors de la connexion à l'aide d'un script de démarrage (pas fstab)

Arrière-plan

J'essaie d'exécuter automatiquement une commande qui monte un partage Samba protégé par mot de passe lorsque mon utilisateur se connecte. Le problème, c'est que je partage mon ordinateur portable avec un autre utilisateur, et moi ne ne veut pas que le partage Samba soit monté lorsqu’elle se connecte. Je veux seulement qu’il soit monté lorsque je me connecte . Cela empêche de modifier mon fichier fstab car je veux que ce soit spécifique à l'utilisateur.

Recherches antérieures

J'ai effectué des recherches et examiné de nombreuses questions et réponses relatives au montage de partages Samba, notamment " Montage des partages Samba au démarrage/connexion et utilisation du script " et " Entrée appropriée de fstab pour monter une samba share on boot ", mais la plupart des réponses impliquent la modification de fstab, qui fonctionne très bien pour la plupart des gens, mais ce n’est pas ce que je recherche ici.

Ce que j'ai fait jusqu'à présent

Je peux monter manuellement le partage Samba à partir de la ligne de commande en procédant comme suit:

Sudo mount -t cifs //centaroo.local/Me /media/Me -o uid=scott,gid=scott,credentials=/home/scott/.smbcredentials,iocharset=utf8,sec=ntlm,file_mode=0600,dir_mode=0700

Enoncé du problème

La commande précédente fonctionne très bien lorsque je l’exécute à partir de la ligne de commande. Elle me demande mon mot de passe pour obtenir l’autorisation Sudo, je l’entre et la commande est exécutée. Le problème est que, lorsque j'ajoute exactement la même commande au champ "Commande" dans Préférences des applications de démarrage> Modifier le programme de démarrage, enregistre mes modifications, redémarre et me reconnecte, le partage Samba n'est pas monté comme je m'y attendais. Je suppose que c'est parce que j'ai besoin de l'autorisation racine pour exécuter Sudo. Avec le script dans les préférences du programme de démarrage, je n'ai aucun moyen de le saisir. Le script échoue simplement.

Comment puis-je contourner cela?

3
Scott

D'accord, j'ai réussi à résoudre ce problème moi-même (avec l'aide d'autres personnes). Le problème sous-jacent était, comme je le soupçonnais, le fait que j'essayais d'exécuter une commande nécessitant des privilèges root sans fournir de mot de passe. J'ai résolu ce problème en suivant les instructions du fil de discussion " Comment puis-je exécuter une commande dans un script sans demander de mot de passe ". En résumé, j'ai créé un script Shell appelé "script-mount-samba-share.sh" qui ne contient rien d'autre qu'une ligne avec la commande mount que je veux exécuter:

mount -t cifs //centaroo.local/Me /media/Me -o uid=scott,gid=scott,credentials=/home/scott/.smbcredentials,iocharset=utf8,sec=ntlm,file_mode=0600,dir_mode=0700

Ensuite, j'ai changé la propriété du fichier en root: root et ses autorisations en 700. Ensuite, j'ai configuré Sudo pour autoriser l'exécution de ce script sans entrer de mot de passe, puis j'ai modifié le champ "Commande" dans Préférences des applications de démarrage> Modifier le démarrage. Programme pour "Sudo /home/scott/script-mount-samba-share.sh" (sans les guillemets), et le tour est joué. La prochaine fois que j'ai redémarré et connecté avec mon utilisateur, le partage Samba est monté sans que je lève le petit doigt. J'ai également testé le fait que lorsque je redémarre et que je me connecte avec un autre utilisateur, le partage Samba n'est pas monté, ce que je veux.

Le seul problème mineur que j'essaie maintenant de surmonter est que, lorsque je suis déjà connecté, puis que je change d'utilisateur, mon partage Samba apparaît toujours dans la barre de navigation de gauche dans Nautilus, ce qui est logique dans le sens où il était. monté lorsque je me suis connecté avec mon propre utilisateur, mais je ne souhaite pas que le partage monté soit affiché dans Nautilus pour l'autre utilisateur; ma tâche suivante consiste donc à déterminer comment réaliser cette partie.

1
Scott

Il est important d'ajouter le nom d'utilisateur et le mot de passe pour la commande mount, sinon le mot de passe pourrait être demandé. pour moi cela a fonctionné:

Sudo mount -t cifs //centaroo.local/Me /media/Me -o uid=scott,gid=scott,user=,password=,iocharset=utf8,sec=ntlm,file_mode=0600,dir_mode=0700

bien sûr avec tous les changements dans/etc/sudoers

0
Balazs Molnar