Scipts bash de connection pour freenas

Fermé
mornaloce - 3 sept. 2010 à 10:57
Leahkim Messages postés 3079 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 - 9 sept. 2010 à 12:16
Bonjour,

Voilà je vous expose mon problème :

J'ai installé un freenas sur une VM pour l'entreprise ou je travail. J'ai ajouté un deuxième disque au disque système pour stocker les données des fichiers partagés. J'ai ensuite fais un point de montage dessus et créer mon dossier de partage. J'ai choisi le service samba pour partager mon dossier. L'authentification se fait grâce à l'AD.

Le problème est le suivant :
J'aimerais qu'à la connexion d'un utilisateur sur le centre de partage, un script vérifie si l'utilisateur à un dossier propre déjà créé ou non. Si ce n'est pas le cas le script devra créé le dossier avec pour droits : seul l'utilisateur et l'admin pourront y accéder. Où est-ce que je dois mettre mon script et comment faire pour le lancer à la connexion d'un utilisateur ?
(Je compte faire un script bash).

31 réponses

Leahkim Messages postés 3079 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 278
3 sept. 2010 à 11:40
je te conseillerai d'utiliser le .bashrc de chaques utilisateur pour ça.

ce fichier est executer à chaques connecion de l'utilisateur, donc, un check un dossier existant, s'il existe l'utilisateur le crée via le script.

root a toujours accès à tout, donc pas de souci du côté admin.
0
Je ne peux pas accéder au .bashrc car mes utilisateurs viennent de l'AD ! A moins que je puisse faire quelque chose quand même ? (désolé je ne suis pas super bon en linux et freeBSD). Au fait j'ai oublié de préciser que mon freenas tourne avec un freebsd derrière. Mes configurations se font via une interface web.
0
Leahkim Messages postés 3079 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 278
3 sept. 2010 à 12:31
Aie effectivement je n'avais pas fait attention.

Ca se complique un poil, mais ça reste possible.

En gros, il va falloir parser les log SMB, pour qu'à chaque fois qu'un utilisateur se log avec succès, on check si le dossier existe, et qu'on le crée le cas échéant.

tu vois comment faire ?
0
Ouai je crois que je vois à peu près le seul problème c'est que je vois pas dans quel fichier je vais demander à lancer le script. En gros comment faire pour que le script se lance à la connexion de l'utilisateur.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Leahkim Messages postés 3079 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 278
3 sept. 2010 à 13:54
ça peut se faire avec fail2ban

en ajoutant une jail qui lance le script quand un utilisateur reussi à se connecter

0
Rebonjour. Merci pour ton aide Leahkim, j'ai finalement réussi à trouver comment faire pour lancer le script : avec la commande logon script à rajouter dans les conf de samba. Par contre je ne peux pas faire un script bash comme je l'esperait apparement. Je suis obligé de passer par un .batsh. Le problème c'est que pour récupérer le nom de l'utilisateur connecté au dossier de partage j'utilise %username% mais ça me renvoie le nom de l'utilisateur de mon ordi et non celui de l'utilisateur samba. Aurais-tu une idée de comment récuperer le nom de l'utilisateur samba ? (sachant que pour me loger je passe toujours par l'AD).
0
Leahkim Messages postés 3079 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 278
7 sept. 2010 à 11:08
mwarf, evidemment, %username% te renvoie le nom de l'utilisateur loggé local...

regarde ce que te renvoie la commande "who", peut etre qu'elle te renverra l'utilisateur actif
0
Désolé de répondre en retard mais je travail sur d'autres choses en même temps. Donc j'ai essayé la commande "who" dans l'espoir que ça fonctionne sous windows mais c'est une commande propre à linux apparement donc impossible d'obtenir quoi que ce soit avec ça. Je me suis dit que je pourrait peut-être récupérer le nom dans les log samba mais il n'y a rien qui puisse m'être utile dedans.
0
Leahkim Messages postés 3079 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 278
8 sept. 2010 à 09:37
le logonscript s'execute toujours sur un windows ?

0
D'après mes recherches oui à chaque fois. D'un coté c'est assez logique puisque le partage samba est en général utilisé pour partagé depuis un système unix (surtout linux, freebsd) vers windows.
0
Leahkim Messages postés 3079 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 278
8 sept. 2010 à 09:57
si SMB ne logge pas tes users, ça va etre chaud ...

il n'y a pas plusieurs niveaux de log ?
0
J'avoue que je comprend pas tout à fait ce que tu veux dire. Normalement smb logge mes user puisqui'il demande un nom d'utilisateur et un mdp pour se connecter au dossier de partage.

Je vois pas ce que tu veux dire par plusieurs niveaux de logge par contre. (dsl je suis assez novice ^^)
0
Leahkim Messages postés 3079 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 278
8 sept. 2010 à 10:47
Pas de souci, je t'explique:

Les logs, tu dois le savoir sont des fichiers textes qui se remplissent avec des lignes écritent par un logiciel (daemon, script, cron, auth, etc.).

Ce logiciel, ou protocole, qui écrit ce qu'il fait dans ce fichier texte peut le faire de plusieurs manieres, qui en général sont les suivantes:

niveau 1: il n'écrit que les erreurs fatales au fonctionnement du logiciel
niveau 2: il écrit toutes les erreurs
niveau 3: il écrit les erreurs et les warnings
niveau 4: il écrit les erreurs, les warnings et les actions reussies.

d'habitude, on les appelle comme suit:
1: fatal
2: error
3: warning
4: debug

Evidemment, ça dépend des logiciels, et des gens qui les ont fait. Certains soft ont 11 ou 12 différents niveaux de log, et certains n'en ont qu'un seul.

Ici, en m'étant renseigné sur smb, j'ai pu constater que smb a 10 niveaux de log !!
Seulement, par défaut il est à 0, donc forcément ça logge pas grand chose.
Le système de log de smb est très évolué, il permet de détailler exactement ce qu'on veut voir écrire dans les logs, donc je te suggère de mettre l'option log level ainsi:

log level=3 auth:4

ainsi, tu auras plus de détail sur l'authentification de tes users :)

rajoute ça dans le smb.conf, redemarre ton serveur smb et utilise ton service smb avec un user au hasard.

va voir ensuite tes logs, tu auras surement le nom de l'utilisateur que tu as utilisé.


0
Merci beaucoup pour ces explications très utiles Leahkim. J'ai fais comme tu m'a conseillé malheureusement il ne me renvoie toujours pas le nom de l'utilisateur.

Pourtant il doit bien y avoir un moyen car quand je créé manuellement un nouveau fichier sur mon partage il va mettre les droit sur l'utilisateur connecté donc il doit bien récupéré l'utilisateur quelque part !
0
Leahkim Messages postés 3079 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 278
8 sept. 2010 à 12:04
Bon ba dans ce cas tu as 2 solutions, bourrrines, mais qui marcheront...

tu mets le log level à 10 (enleve le reste) il va écrire comme un porc dans le fichier de log, au moins t'auras tout.

soit, dans le script de connexion, tu lui fait créer un fichier, et tu récupères le nom du propriétaire #OhLeGrosBourrin.


mais bon essaie deja ça:

log level=10
et sinon
log level=all

les 2 marchent normalement

copie colle 10 ou 15 lignes du fichier de log ici.
0
Bon je crois que je vais utiliser la deuxième solution (en supposant que j'y arrive) car j'ai eu toutes les info du log level = 3 tout à l'heure en me connectant une fois sur le partage. Mais maintenant dans les log il me remet juste les info de base comme ci le log level était à 1 et ce quelque soit le log level que je met. Bizarre... J'ai pourtant regarder dans tout les log mais ça ne m'affiche que les info de bases que je te met quand même :

[2010/09/08, 0] smbd/server.c:main(942)
smbd version 3.0.37 started.
Copyright Andrew Tridgell and the Samba Team 1992-2009
0
Leahkim Messages postés 3079 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 278
8 sept. 2010 à 14:15
tu as essayé avec all ?
0
Je n'ai pas cette option dans l'interface web et pour configurer mon freenas je suis obligé de passer par cette interface pour qu'il prenne en compte mes modifications.
0
Leahkim Messages postés 3079 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 278
8 sept. 2010 à 15:16
D'accord, donc tu n'as pas accès directement à la console.

Donc il n'y a aucune différence entre le loglevel 10 et le loglevel 3 ?
bizarre quand meme...

essaie loglevel=10 auth:10

sinon, pas le choix, faudra passer par la solution bourrin.
0
Non tu n'as pas du comprendre j'ai dut mal m'exprimer. En fait par défaut le loglevel de samba était à 1 et il me renvoyais comme info ce que je t'ai mis plus haut. Ensuite je l'ai mis à 3 et là je me suis loggé une fois et il m'a renvoyé pas mal d'info dans les log de samba. Mais ensuite à chaque fois que je me reloggais il ne m'envoyais comme info que celles qu'il m'envoyais quand j'avais mon loglevel à 1 (c'est à dire ce que je t'ai mis plus haut) et ce même en mettant mon loglevel à 10. Tu vois ou pas ? J'espère que j'ai été clair ^^
0