#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