Configuration du serveur Samba

Updated 14 Janvier 2020

Samba

Contenu texte

    # Introduction

    Samba est un progiciel open source populaire qui fournit des services de fichiers et d'impression Microsoft® Windows® aux clients. Vous pouvez configurer votre serveur Samba avec Calculate Utilities, qui se trouve dans le paquet sys-apps/calculate-server. Les outils Calculate utilisent un serveur OpenLDAP pour la gestion des comptes d'utilisateurs, groupes et machines. Tous les logiciels nécessaires sont disponibles dans Calculate Directory Server.

    Vous pouvez utiliser n'importe quel Calculate Linux Desktop comme client Linux (CLD, CLDC, CLDL, CLDM, ou bien CLDX). Différents systèmes d'exploitation Windows peuvent être utilisés comme clients Windows. Microsoft Windows ne supporte plus les domaines NT4. Cependant, avec quelques modifications, vous pouvez toujours utiliser les derniers systèmes d'exploitation Windows avec un domaine Samba NT4.

    # Configuration du serveur

    A Samba server is configured in several steps. Since all user and host data are stored in LDAP, it is necessary to first configure the OpenLDAP server and then configure LDAP to store Linux user accounts. Vous en avez besoin pour exécuter les clients Linux. You can now configure your Samba server.

    # # Configuration du serveur LDAP

    Configure your LDAP server according to the manual.

    # # Configuration de Samba

    Avant de configurer un serveur Samba, configurons LDAP pour le stockage des comptes utilisateurs Unix. Pour ce faire, exécutez:

    ? ? ? exec " cl-setup unix"

    * ATTENTION * ATTENTION

    ? ? ? exec " cl-setup unix"

    * ATTENTION * ATTENTION

    * ATTENTION * ATTENTION

    * ATTENTION * ATTENTION : L'exécution de ce programme modifie les fichiers de configuration et la base de données LDAP. Si vous voulez continuer, enter 'yes', else enter 'no': yes

    yes

    yes

    yes

          * Added ldif file ...                                                                                        [ ok ]
          * Unix service configured ...                                                                               [ ok ]
         ` ` `
    

    Pour configurer votre serveur Samba, veuillez exécuter:

    ? ? ? exec " cl-setup [options] samba"
    `
    * WARNING: Running this program will modify the configuration files and the LDAP database. If you want to continue, enter 'yes', else enter 'no': yes

          * Added ldif file ...                                                                                        [ ok ]
          * Starting Samba ...                                                                                         [ ok ]
          * User client added to Unix service
          * User client added to Samba service
          * User admin added to Unix service
          * User admin added to Samba service
          * Samba service configured ...                                                                              [ ok ]
         ` ` `
    

    Vous pouvez spécifier netbios ou workgroup comme options.

    • -n name sets the NetBIOS name for the Samba server. By default, it is set to be equal to the first part of the DNS hostname.
    • - w workgroup est le nom du domaine ou du groupe de travail NT pour les ordinateurs qui accèderont à ce serveur.

    Définissez le mot de passe administrateur (login utilisateur admin ):

    ? ? ? exec " cl-passwd --smb admin samba"
    Entrez un nouveau mot de passe:
    Répétez le nouveau mot de passe:
    * Mot de passe de l'administrateur utilisateur du service Samba modifié

    ! ! ! note
    admin sert uniquement à ajouter un ordinateur client Windows au domaine. Admin n'a pas de répertoire personnel.

    If you need a domain administrator to manage your Windows network, create a new user and add it to the Domain Admins domain group.

    Voici un exemple de création d'un administrateur de domaine:

    ? ? ? exec " cl-useradd -p --gid "Domain Admins" -c "Domain Admin" d_admin samba"
    Nouveau mot de passe SMB: Répétez le mot de passe SMB: * Utilisateur d_admin ajouté au service Unix * Utilisateur d_admin ajouté au service Samba

    # # Ajouter et supprimer des utilisateurs

    Calculate commands used to manage users are derived from the same on Unix: cl-useradd, cl-userdel, cl-usermod, cl-passwd, cl-groupadd, cl-groupdel, cl-groupmod. Leur syntaxe coïncide largement avec celle des utilitaires système du même nom.

    Essayez d'ajouter l'utilisateur test et lui donner un mot de passe:

    ? ? ? exec " cl-useradd test samba"
    * Test utilisateur ajouté au service Unix * Test utilisateur ajouté au service Samba

    ? ? ? exec " cl-passwd test samba"
    Nouveau mot de passe: Répétez le nouveau mot de passe: * Mot de passe de l'utilisateur du service Unix modifié * Mot de passe de test utilisateur du service Samba modifié

    # Paramètres des privilèges

    # # Configuration des droits d'accès au système de fichiers

    Pour modifier les permissions de fichiers sur le serveur, utilisez ACL ( Access Control List ). By modifying permissions on files, you define specific access privileges for them for both Windows and Linux clients. Les fichiers et répertoires auxquels vous n'avez pas accès ne seront pas affichés dans le volume Samba.

    Les permissions d'accès sont appliquées à la fois aux fichiers et aux répertoires. Vous pouvez spécifier des permissions pour le propriétaire du fichier ou un groupe. While Windows will recognize only Samba groups, Linux will see both Unix and Samba groups. Therefore, it is preferable to use Samba groups to differentiate access rights.

    For instance, create a Samba group called manager.

    ? ? ? exec " cl-groupadd manager samba"
    * Groupe 'manager' ajouté au service Samba

    To create a Unix group job, just type:

    ? ? ? exec " cl-groupadd job unix"
    * Groupe 'job' ajouté au service Unix

    # # Configuring access rights for Windows users

    Pour modifier des privilèges supplémentaires pour les ordinateurs Windows, tels que : le droit d'installer des programmes, le droit de quitter un domaine, etc., utilisez les groupes Samba.

    Ci-dessous est un exemple pour donner les privilèges d'administrateur de domaine à l'utilisateur test :

    ? ? ? exec " cl-groupmod -a test 'Domain Admins' samba"
    * Utilisateurs ajoutés au groupe Domain Admins

    # Organization of Samba groups

    Samba groups may be of the following types:

    • Domain groups (numéro de groupe de type 2)
    • Local groups (numéro de groupe de type 4)
    • Built-in groups (numéro du type de groupe 5 )

    Groupes par défaut:

    • Domain Samba groups, which are global for a given domain
      * Domain Admins pour les administrateurs de domaine (privilèges d'accès complets à l'intérieur du domaine).
      * Domain Guests pour les invités du domaine (privilèges minimaux).
      * Domain Users pour les utilisateurs de domaine.
      * Domain Computers pour les ordinateurs de domaine.

    • Local Samba group, which are only relevant for a given client
      Il n'y a pas de groupes locaux.

    • Les groupes intégrés sont des groupes insérés dans le système.
      * Administrators - Administrateurs (privilèges complets)
      * Account Operators are account operators. They create and manage groups and user account information, back up files and directories.
      * Backup Operators are archive operators. They backup and restore from backup, and also shut down the system.
      * Print Operators are print operators. They manage printers and backup.
      * Replicators are replicators. This group is used by the File Replication service on domain controllers.
      * System Operators are system operators. They handle system time setup, system shutdown, including remotely, backup and restoring from a backup, server locking and unlocking, hard disk format, network directories management, and also printers.

    Here is how you create a domain test group. A domain group with group type number 2 is created by default.

    ? ? ? exec " cl-groupadd test samba"
    * Группа 'test' добавлена в Samba сервис

    For example, create a built-in group, named Power Users , to put together users with advanced privileges.

    ? ? ? exec " cl-groupadd -g 547 --rid 547 -t 5 'Power Users' samba"
    * Группа 'Power Users' добавлена в Samba сервис

    Where:

    • g is the group ID, 547
    • rid is the RID, which stands for relative ID, 547
    • t is the group type, 5 (built-in group)

    # Adding Unix clients

    ? ? ? important " If you have no DNS"
    The client must resolve the calculate.example.org server (hostname -f). If you have no DNS connection yet, two solutions are possible:

         *   On the client, add the server's IP to ++/etc/hosts++:
         ` ` ` 
         <IP address> calculate.example.org
         ` ` ` 
         *   On the server, edit ++/var/calculate/remote/calculate.env++, adding the server's IP
         ` ` ` 
         [client]
         sr_samba_host = <IP address>
         ` ` `
    

    To add Unix clients, set the password for the

    ? ? ? exec " cl-passwd --smb client samba"
    New password: Repeat new password: * Password of user client of Samba service modified
    Run the following on the client computer:

    ? ? ? exec " cl-client DOMAIN"
    * Check DOMAIN for domain locations ... [ok] Password to add the workstation to the domain: * Samba location [remote] connected * Templates for joining the domain applied ... * The computer has been configured to work in the domain * Computer added to DOMAIN domain

    where DOMAIN is the network name or the IP of the server.

    # Adding Windows clients

    ! ! ! important
    In Windows, activate the Admin account by running the following:
    net user Administrator /active:yes

    # # Adding a Windows 7 client

    To add a client running Windows 7, log in to the system under the Administrator account and use the text editor to create a text file named samba_7_2008_fix.reg, containing the following:

    ! ! ! file " samba_7_2008_fix. reg"
    `
    Windows Registry Editor Version 5.00

         [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters]
         "DomainCompatibilityMode"=dword:00000001
         "DNSNameResolutionRequired"=dword:00000000
         ` ` `
    

    Double-click the file to import it to the registry. Reboot to apply.

    Now join the Samba domain. To do so, go to the computer's Properties, and from there on to the Remote Access settings. Click on the "Change" button in the Computer Name tab.

    Adding a Windows system in the Samba domain

    Next, enter the domain name for your computer:

    Specifying domain name of a computer

    Enter the login/password pair of the user created on the Samba server and belonging to the group of the domain admins:

    Authenticate computer in the domain

    The computer now belongs to the domian:

    Adding computer to the domain

    # # # Adding a Windows 10 client

    To connect a client using Windows 10, log in as the Administrator and create a text file named samba_7_2008_fix.reg , containing the following:

    ! ! ! file " samba_7_2008_fix. reg"
    `
    Windows Registry Editor Version 5.00

         [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters]
         "DomainCompatibilityMode"=dword:00000001
         "DNSNameResolutionRequired"=dword:00000000
         ` ` `
    

    Double-click the file to import it to the registry. Reboot to apply.

    Edit the /etc/samba/smb.conf configuration file, adding the following to the "global" section:

    ! ! ! file " / etc/ samba/ smb. conf"
    [global] ... server max protocol = NT1 ...

    Now restart the samba service:

    ? ? ? exec " /etc/init.d/samba restart"
    samba | * samba -> stop: smbd ... [ ok ] samba | * samba -> stop: nmbd ... [ ok ] samba | * samba -> start: smbd ... [ ok ] samba | * samba -> start: nmbd ... [ ok ]

    Now join the Samba domain. To do so, go to the computer's Properties, and from there on to the Remote Access settings. Click on the "Change" button in the Computer Name tab.

    Adding a Windows system in the Samba domain

    Next, enter the domain name for your computer:

    Specifying domain name of a computer

    Enter the login/password pair of the user created on the Samba server and belonging to the group of the domain admins:

    Authenticate computer in the domain

    The computer now belongs to the domian:

    Adding computer to the domain

    # # Adding a Windows Server 2008 client

    To connect a client using Windows 2008, log in as the Administrator and create a text file named samba_7_2008_fix.reg , containing the following:

    ! ! ! file " samba_7_2008_fix. reg"
    `
    Windows Registry Editor Version 5.00

         [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters]
         "DomainCompatibilityMode"=dword:00000001
         "DNSNameResolutionRequired"=dword:00000000
         ` ` `
    

    Double-click the file to import it to the registry. Reboot to apply.

    And add the client to the Samba domain. To do so, go to the computer's Properties, and from there on to the Remote Access settings. Click on the "Change" button in the Computer Name tab.

    Adding a Windows system in the Samba domain

    Next, enter the domain name for your computer:

    Specifying domain name of a computer

    Enter the login/password pair of the user created on the Samba server and belonging to the group of the domain admins:

    Authenticate computer in the domain

    The computer now belongs to the domian:

    Adding computer to the domain

    # Affichage de l'information

    Pour afficher les informations sur les utilisateurs et les groupes du serveur, utilisez l'outil `cl-info'. Le service unix ou samba peut être un paramètre.

    Par exemple, pour voir la liste des utilisateurs Unix, exécutez:

    ? ? ? exec " cl-info -u unix"
    Tous les utilisateurs LDAP pour le service Unix +------+--------+-----------------------------+------------------+---------------------+ | ID | Login | Full name | Primary group | Home directory | +------+--------+-----------------------------+------------------+---------------------+ | 900 | client | Client unix workstation | 900 | /dev/null | | 901 | admin | Administrator samba service | 544 | /dev/null | | 1000 | user1 | Calculate user | user1 | /home/user1 | | 1001 | user2 | Calculate user | user2 | /home/user2 | +------+--------+-----------------------------+------------------+---------------------+ (4 lines)

    Pour lister les utilisateurs de Samba, exécutez:

    ? ? ? exec " cl-info -u samba"
    Tous les utilisateurs LDAP du service Samba +--------+-----------------------------+--------------+--------+ | Login | Full name | Blocked | Password | +--------+-----------------------------+--------------+--------+ | client | Client unix workstation | No | Yes | | admin | Administrator samba service | No | Yes | | user1 | Calculate user | No | Yes | | user2 | Calculate user | No | Yes | +--------+-----------------------------+--------------+--------+ (4 строк)

    Pour afficher les informations sur user1, qui utilise un service Unix, exécutez:

    ? ? ? exec " cl-info -U user1 unix"
    Informations sur l'utilisateur user1 pour le service Unix +-----------------------+--------------------------+ | Field | Value | +-----------------------+--------------------------+ | ID | 1000 | | Login | user1 | | Full name | Calculate user | | Blocked | No | | Shown | Yes | | Primary group | user1 | | Additional groups | user1 | | | group | | Home directory | /home/user1 | | Shell | /bin/bash | | Password | Yes | | Password modified | 25.09.2018 | | Jabber ID | user1@server.example.com | | Email | usr1@example.com | +-----------------------+--------------------------+ (14 lines)

    Pour afficher des informations sur user1, qui utilise un service Samba:

    ? ? ? exec " cl-info -U user1 samba"
    Информация о пользователе user1 для сервиса Samba +-----------------------+------------------------------------------------------+ | Field | Value | +-----------------------+------------------------------------------------------+ | Login | user1 | | Full name | Calculate user | | Blocked | No | | Password | Yes | | Password modified | 25.09.2018 | | Additional groups | No | | Home directory | /var/calculate/server-data/samba/home/user1 | | Shared directory | /var/calculate/server-data/samba/share | | Linux profile | /var/calculate/server-data/samba/profiles/unix/user1 | | Windows profile | /var/calculate/server-data/samba/profiles/win/user1 | | Windows logon | /var/calculate/server-data/samba/netlogon/user1 | +-----------------------+------------------------------------------------------+ (11 lines)

    Par exemple, pour lister les groupes Unix, exécutez:

    ? ? ? exec " cl-info -g unix"
    Tous les groupes LDAP pour le service Unix +------------+--------------------+------+ | Group | Full name | GID | +------------+--------------------+------+ | maildomain | Default Mail Users | 1000 | | user1 | Calculate group | 1001 | | user2 | Calculate group | 1002 | | group | Calculate group | 1003 | +------------+--------------------+------+ (4 lines)

    Pour lister les groupes de Samba, exécutez:

    ? ? ? exec " cl-info -g samba"
    Tous les groupes LDAP pour le service Samba +-------------------+-----+-------------------+ | Group | GID | Group Type | +-------------------+-----+-------------------+ | System Operators | 549 | built-in group | | Print Operators | 550 | built-in group | | Domain Guests | 514 | domain group | | Domain Admins | 512 | domain group | | Account Operators | 548 | built-in group | | Domain Users | 513 | domain group | | Administrators | 544 | built-in group | | client | 900 | domain group | | Backup Operators | 551 | built-in group | | Replicators | 552 | built-in group | | Domain Computers | 515 | domain group | +-------------------+-----+-------------------+ (11 lines)

    Par exemple, voici une commande pour afficher des informations sur le groupe groupe du service Unix :

    ? ? ? exec " cl-info -G group unix"
    +-----------------------+-----------------+ | Field | Value | +-----------------------+-----------------+ | Group | group | | Full name | Calculate group | | GID | 1003 | | Users in group | user1 | | | user2 | +-----------------------+-----------------+ (5 lines)
    Par exemple, voici une commande pour afficher des informations sur le groupe Domain Users du service Samba:

    ? ? ? exec " cl-info -G 'Utilisateurs du domaine' samba"
    Informations sur le groupe d'utilisateurs de domaine pour le service Samba +-----------------------+-----------------+ | Field | Value | +-----------------------+-----------------+ | Group | Domain Users | | Full name | Domain Users | | GID | 513 | | Group type | domain group | | Users in group | No | +-----------------------+-----------------+ (5 lines)