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 04/11/2007, à 23:50

Konki

Avis sur mon smb.conf et sur le step-by-step envisagé pour un NAS PDC

Bonjour à tous,

Je souhaite mettre en place un serveur de fichier sous Ubuntu server 7.10 pour assurer les mêmes fonctions qu'un serveur sous win2KS ou win2003S. La mise en place d'un contrôleur de domaine via Samba s'impose. Mon réseau local en étoile est constitué autour d'un switch qui permet la communication entre le serveur et les postes clients sous WinXPpro.

Mon cahier des charges:
Mes besoins sont réduits en terme de nombre de poste client (3-6 au plus) mais pas en terme de sécurité. Le réseau local ayant un accès internet possible.
* Tous les utilisateurs samba doivent avoir un accès complet à un répertoire commun qui doit apparaître sous Win XP comme un lecteur réseau sous la lettre Z:. Chaque utilisateur doit pouvoir y créer des sous-répertoires ou des fichiers, écrire, lire, modifier, exécuter les fichiers présents dans ce répertoire mais également dans les sous-répertoires.
* Chaque utilisateur doit disposer d'un répertoire personnel X: avec l'autorisation de créer des fichiers ou des répertoires et de pouvoir écrire lire modifier ces fichiers ou ces répertoires. Sans avoir le droit d'exécuter.
* pour le partage de l'imprimante j'ai un serveur d'impression hardware sur l'imprimante qui est connectée au switch.

Je souhaite une relecture de mon fichier smbconf , afin d'y apporter les modifications nécessaires en rapport avec mon cahier des charges. Mais également du step-by-step que j'envisage pour la mise en place sur le serveur. Je suis actuellement 'en pause' au stade du testparm validé au point de vu syntaxe.
J'ai installé mon ubuntu server 7.10 version 64b sans aucun logiciels autres que SSL et SAMBA. Le compte root n'est pas activé et je travail en sudo -s à partir d'un compte utilisateur0.
Je ne suis pas un expert en commande shell linux, que je ne comprend bien qu'avec un exemple!

J'ai utilisé les sources suivante pour en arriver là:
http://www.linux-france.org/prj/edu/archinet/systeme/ch25s11.html
http://us1.samba.org/samba/docs/man/Samba-Guide/small.html#acct2conf
http://ubuntustartguide.online.fr/dev/sambaserver.php
http://www.linux-france.org/~eprigent/

Ma seule expérience de Linux remonte à 10 ans environ (installation à partir des paquets avec compilation du noyau d'une distribution basée sur RedHat sur un pc Pentium 64Mo en dual boot avec W95). J'ai quelque reste mais j'ai besoin d'explication détaillées.

Merci pour votre aide.

Konki

Mon sbm.conf

#======================= Global Settings =======================

[global]

## Browsing/Identification ###

   netbios name = Matawees
   netbios aliases = MATAWEES
   workgroup = CHICCHOCS
   server string = %h server (Samba %v, Ubuntu)

# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable its WINS Server
;   wins support = no

# WINS Server - Tells the NMBD components of Samba to be a WINS Client
# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
;   wins server = w.x.y.z


   dns proxy = no
   name resolve order = lmhosts host wins bcast

#### Networking ####

# The specific set of interfaces / networks to bind to
# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
;   interfaces = 127.0.0.0/8 eth0

# Only bind to the named interfaces and/or networks; you must use the
# 'interfaces' option above to use this.
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself.  However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
;   bind interfaces only = true


#### Debugging/Accounting ####

   log file = /var/log/samba/%m.log
   max log size = 1000
   log level = 2
   debug timestamp = yes

# If you want Samba to only log through syslog then set the following
# parameter to 'yes'.
;   syslog only = no

   syslog = 0
   panic action = /usr/share/samba/panic-action %d


####### Authentication #######

   username map = /etc/samba/smbusers
   security = user

# You may wish to use password encryption.  See the section on
# 'encrypt passwords' in the smb.conf(5) manpage before enabling.
# FAUT-IL CHOISIR YES POUR encrypt passwors?
   encrypt passwords = true
   null passwords = no
   smb passwd file = /etc/samba/smbpasswd

# If you are using encrypted passwords, Samba will need to know what
# password database type you are using.
   passdb backend = tdbsam

   obey pam restrictions = yes

;   guest account = nobody
    invalid users = root

# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
   unix password sync = yes

# For Unix password sync to work on a Debian GNU/Linux system, the following
# parameters must be set (thanks to Ian Kahan <<kahan@informatik.tu-muenchen.de> for
# sending the correct chat script for the passwd program in Debian Sarge).
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n 
*passwd:*password\supdated\ssuccessfully* .

# This boolean controls whether PAM will be used for password changes
# when requested by an SMB client instead of the program listed in
# 'passwd program'. The default is 'no'.
;   pam password change = no


########## Domains ###########

# Active le contôle de domaine
   os level = 65
   domain logons = yes
   domain master = yes
   local master = yes
   preferred master = yes

# emplacement des profiles utilisateur [Profile]

   logon path = \\MATAWEES\profiles\%U
   logon drive = X:
   logon home = \\MATAWEES\%U

# script a exexcuter lors du logon a creer dans [netlogon]

   logon script = logon.cmd

# This allows Unix users to be created on the domain controller via the SAMR
# RPC pipe.  The example command creates a user account with a disabled Unix
# password; please adapt to your needs
; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u

########## Printing ##########

# If you want to automatically load your printer list rather
# than setting them up individually then you'll need this
;   load printers = yes

# lpr(ng) printing. You may wish to override the location of the
# printcap file
;   printing = bsd
;   printcap name = /etc/printcap

# CUPS printing.  See also the cupsaddsmb(8) manpage in the
# cupsys-client package.
;   printing = cups
;   printcap name = cups

# When using [print$], root is implicitly a 'printer admin', but you can
# also give this right to other users to add drivers and set printer
# properties
;   printer admin = @lpadmin


############ Misc ############

# Using the following line enables you to customise your configuration
# on a per machine basis. The %m gets replaced with the netbios name
# of the machine that is connecting
;   include = /home/samba/etc/smb.conf.%m

# Most people will find that this option gives better performance.
# See smb.conf(5) and /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/speed.html
# for details
# You may want to add the following on a Linux system:
#         SO_RCVBUF=8192 SO_SNDBUF=8192
   socket options = TCP_NODELAY

# The following parameter is useful only if you have the linpopup package
# installed. The samba maintainer and the linpopup maintainer are
# working to ease installation and configuration of linpopup and samba.
;   message command = /bin/sh -c '/usr/bin/linpopup "%f" "%m" %s; rm %s' &

# Some defaults for winbind (make sure you're not using the ranges
# for something else.)
;   idmap uid = 10000-20000
;   idmap gid = 10000-20000
;   template shell = /bin/bash
;
; The following was the default behaviour in sarge
; but samba upstream reverted the default because it might induce
; performance issues in large organizations
; See #368251 for some of the consequences of *not* having
; this setting and smb.conf(5) for all details
;
;   winbind enum groups = yes
;   winbind enum users = yes

# Serveur de temps (net time \\serveur /set /y)
    time server = yes

# Gestion des noms de fichier avec des accents
    preserve case = yes
    short preserve case = yes
    unix charset = ISO8859-1
    dos charset = 850 
    case sensitive = no


#======================= Share Definitions =======================

# Partage commun
[commun]
    path = /home/Wlogos2
    comment = Partage Logos
    browsable = yes
    writeable = yes
    guest ok = no
    valid users = @sambausers
    create mode = 0777
    directory mode = 0777

# user's home directory as \\server\username
[homes]
    path = /home/%u
    comment = Répertoire Personnel
    browseable = no
    valid users = %S
    writable = yes

# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
    create mask = 0700

# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
    directory mask = 0700

[admin]
    path=/home/administration
    public = no
    valid users = utilisateur0  @admin
    writable = yes
    create mask = 0770

[netlogon]
    comment = Network Logon Service
    path = /home/samba/netlogon
    guest ok = no
    readonly = yes
    writable = no
    browseable = no
    write list = root, Administrateur
    valid users = @sambausers
    create mask = 0777
    directory mask = 0777
;   share modes = no


[profiles]
    comment = Profiles utilisateur
    path = /home/samba/profiles
    guest ok = no
    browseable = no
    writeable = yes
    create mask = 0700
    directory mask = 0700
    valid users = @sambausers

;[printers]
;   comment = All Printers
;   browseable = no
;   path = /var/spool/samba
;   printable = yes
;   public = no
;   writable = no
;   create mode = 0700

# Windows clients look for this share name as a source of downloadable
# printer drivers
;[print$]
;   comment = Printer Drivers
;   path = /var/lib/samba/printers
;   browseable = yes
;   read only = yes
;   guest ok = no
# Uncomment to allow remote administration of Windows print drivers.
# Replace 'ntadmin' with the name of the group your admin users are
# members of.
;   write list = root, @ntadmin

# A sample share for sharing your CD-ROM with others.
;[cdrom]
;   comment = Samba server's CD-ROM
;   writable = no
;   locking = no
;   path = /cdrom
;   public = yes

# The next two parameters show how to auto-mount a CD-ROM when the
#       cdrom share is accesed. For this to work /etc/fstab must contain
#       an entry like this:
#
#       /dev/scd0   /cdrom  iso9660 defaults,noauto,ro,user   0 0
#
# The CD-ROM gets unmounted automatically after the connection to the
#
# If you don't want to use auto-mounting/unmounting make sure the CD
#       is mounted on /cdrom
#
;   preexec = /bin/mount /cdrom
;   postexec = /bin/umount /cdrom

et la Vérification de la syntaxe du fichier de configuration à l'aide de la commande
# testparm | more
ou
# testparm -s | more

#testparm -s
Load smb config files from /etc/samba/smb.conf
Processing section "[commun]"
Processing section "[homes]"
Processing section "[administration]"
Processing section "[netlogon]"
Processing section "[profiles]"
Loaded services file OK.
Server role: ROLE_DOMAIN_PDC
[global]
        dos charset = 850
        unix charset = iso8859-1
        workgroup = CHICCHOCS
        netbios aliases = MATAWEES
        server string = %h server (Samba %v, Ubuntu)
        obey pam restrictions = Yes
        passdb backend = tdbsam
        passwd program = /usr/bin/passwd %u
        passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spas          
sword:* %n\n *passwd:*password\supdated\ssuccessfully* .
        username map = /etc/samba/smbusers
        unix password sync = Yes
        log level = 2
        syslog = 0
        log file = /var/log/samba/%m.log
        max log size = 1000
        name resolve order = lmhosts host wins bcast
        time server = Yes
        logon script = logon.cmd
        logon path = \\MATAWEES\profiles\%U
        logon drive = X:
        logon home = \\MATAWEES\%U
        domain logons = Yes
        os level = 65
        preferred master = Yes
        domain master = Yes
        dns proxy = No
        panic action = /usr/share/samba/panic-action %d
        invalid users = root
        case sensitive = No

[commun]
        comment = Partage Logos
        path = /home/Wlogos2
        valid users = @sambausers
        read only = No
        create mask = 0777
        directory mask = 0777

[homes]
        comment = Repertoire Personnel
        path = /home/%u
        valid users = %S
        read only = No
        create mask = 0700
        directory mask = 0700
        browseable = No

[admin]
        path=/home/administration
        valid users = utilisateur0  @admin
        read only = no
        create mask = 0770

[netlogon]
        comment = Network Logon Service
        path = /home/samba/netlogon
        valid users = @sambausers
        write list = root, Administrateur
        create mask = 0777
        directory mask = 0777
        browseable = No

[profiles]
        comment = Profiles utilisateur
        path = /home/samba/profiles
        valid users = @sambausers
        read only = No
        create mask = 0700
        directory mask = 0700
        browseable = No

est-ce une correction des [partages] qui est proposée par cette commande?

Je redémarre le service avec la commande si nécessaire
# /etc/init.d/samba restart


Maintenant le step-by-step sur le serveur:

renseignement des machines sur le reseau linux et commandes pour la creation des comptes utilisateur lixux et samba pour un utilisateur: utilisateur1, workstation1 (nom netbios de la machine)

Editer /etc/hosts  et ajouter les nouvelles adresses IP:

# vi /etc/hosts

127.0.0.1       localhost
192.168.0.100   matawees:
192.168.0.110   workstation1


The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

puis renseigner le hostname

# echo worksation1 > /etc/hostname
# /bin/hostname -F /etc/hostname

specificite du controleur de domaine


Créer un groupe sambausers:

Ce groupe doit être créé avec le RID 513 pour être en conformité avec la terminologie Windows.

#groupadd -g 513 sambausers

Ajouter dans ce groupe les utilisateurs linux du domaine. Ne pas oublier d'ajouter le compte "root" au groupe "sambausers", celui-ci sera le super-utilisateur samba.

quelle commande utiliser pour ça???

Créer le groupe sambamachines:

Lorsque qu’une machine de type Windows 2000 doit rejoindre un domaine géré par SAMBA, il faut que cette machine soit définie dans le fichier /etc/samba/smbpasswd Or pour que la machine soit définie dans ce fichier, il faut impérativement qu’elle soit d’abord inscrite dans le fichier /etc/passwd
Donc il faut impérativement connaître le nom de chaque client Windows 2000 qui appartiendra au domaine.
Si le poste client se nomme workstation1 la manipulation va être:

Ce groupe doit être créé avec le RID 515.

#groupadd -g 515 sambamachines

Les comptes machines du domaine doivent être créés avec un $ à la fin du nom

netbios,voici un extrait du fichier "/etc/passwd" avec comme exemple 2 machines

lworksation1 et workstation2 :

workstation1$:x:1003:515::/dev/null:/dev/null
worstation2$:x:1004:515::/dev/null:/dev/null

Création des comptes machines sous linux

#adduser worstation1$ -g sambamachines –s /dev/false –d /dev/null

Attention il s’agit bien d’un $ à la fin du nom de l’utilisateur.

Est-ce que les client XPpro on besoin de ça? Le compte sur lequel vous êtes connecté sous Windows XP n'a pas d'importance.

Création des comptes utilisateurs sous linux

# adduser utilisateur1 -m –g users

ou à mon avis ceci:
# adduser utilisateur1 -m -G users, sambausers
ou autre chose ???

utilisateur1 est le nom de login sous WinXP

Extrait du fichier /etc/group

sambausers:x:513:root,utilisateur1,utilisateur2
sambamachines:x:515:workstation1$,workstation2$


Création des comptes utilisateurs sous Samba (fichier /etc/samba/smbpasswd)

pour le super utilisateur root
# smbpasswd -a root MotDePasse

(ou
# smbpasswd -a root
New SMB password: XXXXXXX
Retype new SMB password: XXXXXXX
root#)
# smbpasswd -a utilisateur0 MotDePasse

Le compte root n'est pas activé il ne peut donc pas avoir un mot de passe linux. Est-ce-que ça ne va pas poser de problème avec la synchronisation des mots de passe samba-linux? Root n'est pas l'administrateur samba c'est utilisateur0

pour les utilisateurs
# smbpasswd -a utilisateur1 MonMotdePasse

Créez également un compte Samba pour chaque machine:
#smbpasswd -a -m workstation1

il n'y a pas de $ à la fin du nommachine.

Créer/modifier le fichier smbusers
#vi /etc/samba/smbusers
Insérer la ligne suivante dans le nouveau fichier:
est-ce que les droits par défaut permettent l'accès au fichier créer par root?


# User mapping file
# File Format
# Unix_ID = Windows_ID system_username = "network username"
root = Administrateur
ou
utilisateur0 = Administrateur ??? cf ci-dessous
workstation1 = utilisateur1

Création des nouveaux répertoires partagés

#mkdir -p /home/Wlogos2
#mkdir -p /home/samba/netlogon
#mkdir -p /home/samba/profiles

Attribution des droits:

#chown root:sambausers /home/Wlogos2
#chown root:sambausers /home/samba/netlogon
#chown root:sambausers /home/samba/profiles tous les utilisateurs doivent pouvoir y ecrire

ou?

chown -R root:users /home/Wlogos2/
chmod -R ug+rwx,o+rx-w /home/Wlogos2/

chown -R root:users /home/samba/
chmod -R 771 /home/samba/

et du répertoire de l'administrateur Samba
mkdir /home/administration
        chown utilisateur0:admin /home/administration
        chmod 770 /home/administration

Un problème à éviter:

Le compte utilisateur SAMBA dispose de moins de privilèges que le compte root. Si vous partagez un répertoire et que vous faites les manipulations sous le compte root, faites attention aux droits, car si root est propriétaire (chmod 700), le client SAMBA ne pourra pas accéder au disque.Les droits SAMBA ne peuvent pas outrepasse les droits Linux, cf exemple ci-dessus pour donner des droits.

Pour contrôler

#smbclient -L localhost -U%

Step-by-Step windows
Je ne pense pas ouvoir de problème. Je rajouterai ici le opérations pour éventuellement rendre service.

Encore merci pour un avis

Konki