Samba : création automatique du homedir

Bonjour,

J’ai créé une AD Samba 4 sur le serveur “vmdc1”, et j’ai mis des comptes dans l’AD avec RSAT (windows).
J’arrive a me connecter avec un compte AD à mon membre Linux (vmTestSmb) mais si le répertoire “homedir” n’existe pas il me met une erreur.

Comment faire pour créer automatiquement le répertoire /home/%D/%U indiqué dans la configuration “template homedir = /home/%D/%U” du fichier smb.conf ?

Config: debian 10 et Samba 4.9

/etc/samba/smb.conf :

[global]
workgroup = HOME
security = ADS
realm = HOME.LAN

winbind refresh tickets = Yes
vfs objects = acl_xattr
map acl inherit = Yes
store dos attributes = Yes

log file = /var/log/samba/%m.log
log level = 10

dedicated keytab file = /etc/krb5.keytab
kerberos method = secrets and keytab

# pas d'impimante
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes

#debug
winbind enum users = yes
winbind enum groups = yes

# configuration rid
# Default ID mapping configuration for local BUILTIN accounts
# and groups on a domain member. The default (*) domain:
# - must not overlap with any domain ID mapping configuration!
# - must use a read-write-enabled back end, such as tdb.
idmap config * : backend = tdb
idmap config * : range = 3000-7999
# - You must set a DOMAIN backend configuration
# idmap config for the HOME domain
idmap config HOME : backend = rid
idmap config HOME : range = 10000-999999

# Template settings for login shell and home directory
template shell = /bin/bash
template homedir = /home/%D/%U

# mapping de root et de l'administrateur du domaine
username map = /etc/samba/user.map

J’ai réussi a le faire avec “pam_mkhomedir” ( https://linux.die.net/man/8/pam_mkhomedir ) mais je suis restreint à utiliser “/home/%U” comme répertoire “template homedir

Un idée ?

bonjour, je suis pas expert ni connais samba 4 , j’utilise Samba 3 pour un partage de dossier entre un serveur Debian et Windows 7 .
Mais a mon avis il faut la aussi ajouter un répertoire de partage dans le fichier smb.conf

[Mon Dossier]
 path = /chemin de partage/
 read only = no
 force create mode = 0600
 force directory mode = 0700

Crée le dossier si n’existe pas:

# mkdir /chemin du dossier/

les permissions du dossier pour l’utilisateur:

# chown ton_utilisateur /chemin du dossier/ 
# chmod 700 /chemin du dossier/

puis je pense :

smbcontrol all reload-config

Merci de ta réponse mais ce n’est pas ce que je cherche.

Ce que je veux c’est que Samba crée automatiquement le répertoire “/home/%D/%U” qui correspond à “template homedir” et il n’y a pas de raison de le partager.
Si l’utilisateur “toto” se connecte pour la 1ère fois à une machine Linux membre de mon domaine (HOME) alors Samba doit créer /home/HOME/toto

Ce que tu me donne comme info, c’est comment créer un partage…et tu crée le répertoire manuellement et c’est justement ce que je ne veux pas faire.

Mais merci quand même pour tes efforts.

Pourquoi tu te complexifies la situation en choisissant un home différent que la convention unix ?!

Crées ton home user dynamiquement avec pam_mkhomedir, ou tout autre script, ajoutes ton utilisateur à ton domaine, la machine x à ton domaine, et “roulez jeunesse”, non ?!

Bonjour PengouinPdt

Pourquoi : parce que c’est possible et que j’aimerais savoir comment, rien que cela justifie ma question :wink: . Et vu ton profil j’imagine que cela devrait te parler.

Ensuite pour faire la différence entre les comptes locaux et les comptes AD au niveau des répertoires.

Où as-tu lu/vu cela ?

du samba, oui, j’en fais mais de manière basique ; mais là, non, jamais fait !

Je comprends très bien ta raison, mais sans preuve de solution, je trouve que cela complique bien les choses. :wink:


Si j’en crois la documentation officielle de Samba, ta création de home passe par du shell, avant l’usage dans Samba !
https://wiki.samba.org/index.php/User_Home_Folders#Creating_the_Home_Folder_for_a_New_User

Alors, tu peux aussi utiliser les outils Samba, pour cela :
https://wiki.samba.org/index.php/Administer_Unix_Attributes_in_AD_using_samba-tool_and_ldb-tools#Creating_a_Unix_user_with_samba-tool
Comme tu le verras, tu pourras spécifier un user home, j’imagine qu’ainsi tu pourrais résoudre ton équation.
Mais je ne garantis pas le résultat, surtout si tu oublies de préciser ensuite dans ta config samba que l’utilisateur x a son home dans /home/domain/user_x !

Ben comme Samba a un paramètre “template homedir” je me disais simplement qu’il devait y avoir un moyen de créé ce répertorie à la volé…
J’ai essayé avec un script exécuté avec “root preexec” mais je n’ai même pas réussi a déclencher le script, enfin je suppose parce que rien n’était crée. Et en plus je me suis aperçu que ce paramètre était liée à une section et pas global donc probablement pas utilisable avec “template homedir” qui est global (soyons logique).

En plus d’après https://wiki.samba.org/index.php/User_Home_Folders#Creating_the_Home_Folder_for_a_New_User :

If you are using the Active Directory Users and Computers application, the user’s home directory is automatically created and the correct permissions applied when you set the path to the user folder in the application.
Hors je crée mes users avec RSAT (“Active Directory Users and Computers” est un module de RSAT si tu n’es pas familier la gestion d’AD), donc si j’ai bien compris le homedir devrait être créé automatiquement.

Non, je parlais plutôt du moustachu adepte du monde libre qui pour moi va avec la curiosité, d’où ma remarque. :smiley:

Apparemment, mais pas forcément comme tu le désires ; il y a de fortes probabilités qu’il respecte la convention UNIX, de type "/home/$USER’

mmm mais alors pourquoi indiquer que l’on peut utiliser un chemin du type /home/%D/%U ? ( valeur par défaut de “template homedir” c.f. https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html#TEMPLATEHOMEDIR )

J’ai comme l’impression d’avoir raté un truc quelque part, c’est énervant …

Tout simplement, parce que c’est dans le contexte Windows, non ?!

Peut être en effet.

Je pense que je vais chercher/poser la question sur le ML de Samba… et je ferais un retour ici si j’ai une réponse, ca peut servir.

2 J'aime