Назад
Пример 2. Одноранговая сеть. Персональные общие папки
Samba-3 от простого к сложному
Дальше

Пример 2. Одноранговая сеть. Персональные общие папки


1. Особенности данного примера
2. Начальные условия
3. Создаем пользователей файл-сервера
4. Создание общих ресурсов и назначение прав
5. Конфигурирование сервера Samba, запуск и проверка в работе
6. Подключение windows-клиентов
7. Полезные команды для администрирования файл-сервера Samba

На этот раз рассмотрим немного более сложный случай. Теперь в фирме, которую вы администрируете, появилась потребность в том, чтобы сотрудники держали свои персональные рабочие материалы на файл сервере, причем так, чтобы доступ к ним имел только сам сотрудник, и в то же время над всеми файлами имел контроль директор. Этот пример может быть применен в одноранговой сети, где клиентами являются компьютеры с установленной на них ос Windows, файловым сервером будет выступать сервер Samba. Если в вашей сети до 15-20 компьютеров, это решение вполне может вам пригодиться.

Пример основан на разделе 1.2.3. книги Samba-3 в примерах.

1. Особенности данного примера

Особенности данного случая в следующем:

  • для каждого пользователя будет заведена личная папка на файл-сервере;

  • данная папка будет подключаться как сетевой диск, пользователи не могут иметь доступ в папки других пользователей;

  • один пользователь, это может быть директор, либо руководитель подразделения, может просматривать папки всех пользователей.
    (к началу страницы)

    2. Начальные условия

    Начальные условия для нашей сети:

  • в сети нет сервера dhcp, все адреса статические;

  • имя рабочей группы firma;

  • имя NetBIOS имя компьютера с установленным на нем ALD5 altfileserver.

    Таблица 2.1. Список сотрудников фирмы

    Имя сотрудника Учетная запись Пароль Имя личной папки Каталог на файл-сервере Рабочая станция
    Иван Иваныч director dirIvan1 director /firmafiles win7boss
    Петр Авдеич finansist finPetr2 finansist /firmafiles/finansist win7fin
    Зоя Федоровна buhgalter buhZoya3 buhgalter /firmafiles/buhgalter winXPbuh

    Разумеется, в вашей фирме может быть больше сотрудников.
    (
    к началу страницы)

    3. Создаем пользователей файл-сервера

    Создадим группу на файл-сервере, куда потом поместим всех наших сотрудников:

    #groupadd firmastaff
    

    Создадим пользователей нашей сетевой среды:

    # useradd -m -G firmastaff -c "Иван Иваныч" director
    # passwd director
    Enter new password:
    Re-type new password:
    
    # smbpasswd -a director
    New SMB password:
    Retype new SMB password:
    Added user director.
    

    Повторяем эту операцию для всех пользователей фирмы (см. таб. 2.1.).
    (к началу страницы)

    4. Создание общих ресурсов и назначение прав

    Теперь создадим папки и раздадим права следующим образом:

    # mkdir -p /firmafiles
    # chown director /firmafiles
    # for i in finansist buhgalter
    > do
    > mkdir -p /firmafiles/$i
    > chown $i /firmafiles/$i
    > done
    # chgrp -R firmastaff /firmafiles
    # chmod -R ug+rwx,o-r+x /firmafiles
    

    В итоге получили такие разрешения и владельцев:

    # ls -l / | grep firmafiles
    drwxrwx--x   5 director firmastaff  4096 Jul  3 11:24 firmafiles
    #cd firmafiles
    ls -l
    drwxrwx--x 2 buhgalter firmastaff  4096 Jul  3 11:24 buhgalter
    drwxrwx--x 2 finansist firmastaff  4096 Jul  3 11:24 finansist
    

    (к началу страницы)

    5. Конфигурирование сервера Samba, запуск и проверка в работе

    Файл /etc/samba/smb.conf заполняем примерно таким содержимым:

    [global]
    workgroup = firma
    netbios name = altfileserver
    server string = files on %h
    log file = /var/log/samba/log.%m
    max log size = 50
    
    [files]
    comment = мои данные
    path = /firmafiles/%U
    read only = No
    
    [director]
    comment = для руководства
    path = /firmafiles
    valid users = director
    read only = No
    

    Теперь говорим Samba быть запущеной при старте системы и запускаем ее:

    # chkconfig --level 35 smb on
    # service smb start
    

    Проверим, можем ли мы подключиться к общему ресурсу пользователем director:

    # smbclient -L //altfileserver/director -Udirector
    Password:
    Domain=[ALTFILESERVER] OS=[Unix] Server=[Samba 3.0.37]
    
            Sharename       Type      Comment
            ---------       ----      -------
            my files        Disk      мои данные
            director        Disk      для руководства
            IPC$            IPC       IPC Service (files on altserver)
    Domain=[ALTFILESERVER] OS=[Unix] Server=[Samba 3.0.37]
    
            Server               Comment
            ---------            -------
    
            Workgroup            Master
            ---------            -------
            FIRMA
    

    А также попробуем войти в общий ресурс и посмотреть, что у нас там есть:

    # smbclient //altfileserver/director -Udirector
    Password:
    Domain=[ALTFILESERVER] OS=[Unix] Server=[Samba 3.0.37]
    smb: \> dir
      .                                   D        0  Sat Jul  3 11:24:34 2010
      ..                                  D        0  Sat Jul  3 11:21:14 2010
      buhgalter                           D        0  Sat Jul  3 12:41:42 2010
      finansist                           D        0  Sat Jul  3 12:08:27 2010
    

    Так вы можете подключиться как локально, так и из из другой linux-системы.
    (к началу страницы)

    6. Подключение windows-клиентов

    Создаем пользователей на windows-машинах обычными средствами windows, назначаем такой же пароль, как в нашей таблице и изменяем рабочую группу (Win+Pause->Свойства_Системы->Имя_компьютера->Изменить) на FIRMA и перезагружаем компьютер (в картинках можно посмотреть здесь с той лишь разницей, что будет изменен не домен, а рабочая группа).

    После этого в сетевом окружении мы видим компьютер Altfileserver, а в нем две общие папки - director и my files.

    Директор, Иван Иваныч, не может войти в папку my files по той причине, что она ведет в папку /firmafiles/имя_пользователя, а для Иван Иваныча мы такой личной папки не создавали. Зато из папки director он может попасть в личные папки своих сотрудников.

    Сотрудники же, finansist - Петр Авдеич и buhgalter - Зоя Федоровна попадают в папку my files, она является папками соответственно /firmafiles/finansist для Петра Авдеича и /firmafiles/buhgalter для Зои Федоровны на файл-сервере. Подробно останавливаюсь на этом моменте, так как сначала сам не очень понял, что и как. В папку director сотрудники могут попасть, только если им станет известен пароль Иван Иваныча.

    Ну и соответственно такой общий личный ресурс разумнее будет присоединить как сетевой диск каждому сотруднику.
    (к началу страницы)

    7. Полезные команды для администрирования файл-сервера Samba

    Утилита pdbedit отличный инструмент для просмотра и управления учетными записями Samba.

    Так вы можете просмотреть список пользователей на вашем сервере Samba:

    # pdbedit -L
    director:501:Иван Иваныч
    finansist:502:Петр Авдеич
    buhgalter:503:Зоя Федоровна
    

    С ключом -v вы получите более полную информацию по всем пользователям.

    Так вы можете получить исчерпывающую информацию по конкретному пользователю:

    # pdbedit finansist -v
    Unix username:        finansist
    NT username:
    Account Flags:        [U          ]
    User SID:             S-1-5-21-527598915-2164087957-3919656602-2004
    Primary Group SID:    S-1-5-21-527598915-2164087957-3919656602-513
    Full Name:            Петр Авдеич
    Home Directory:       \\altfileserver\finansist
    HomeDir Drive:
    Logon Script:
    Profile Path:         \\altfileserver\finansist\profile
    Domain:               ALTFILESERVER
    Account desc:
    Workstations:
    Munged dial:
    Logon time:           0
    Logoff time:          never
    Kickoff time:         never
    Password last set:    Sat, 03 Jul 2010 11:17:17 YAKST
    Password can change:  Sat, 03 Jul 2010 11:17:17 YAKST
    Password must change: never
    Last bad password   : 0
    Bad password count  : 0
    Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    

    Мы можем отключить учетную запись finansist:

    # pdbedit -c "[D]" -u finansist
    Unix username:        finansist
    NT username:
    Account Flags:        [DU         ]
    User SID:             S-1-5-21-527598915-2164087957-3919656602-2004
    Primary Group SID:    S-1-5-21-527598915-2164087957-3919656602-513
    ...
    Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    

    При этом в строке Account Flags: появилось значение D.

    И включить:

    # pdbedit -c "[E]" -u finansist
    

    Так вы можете создать пользователя Samba (не забудьте предварительно создать его в самой системе):

    # pdbedit -a -u ekonomist
    new password:
    retype new password:
    

    А так обратно его удалить:

    # pdbedit -x -u ekonomist
    

    Следующей командой вы можете просмотреть все smb-ресурсы вашей сети:

    # smbtree
    Password:
    FIRMA
            \\WINXPBUHG                     iOOua?ONO
    cli_rpc_pipe_open: cli_nt_create failed on pipe \srvsvc to machine WINXPBUHG.
    	Error was NT_STATUS_ACCESS_DENIED
            \\WIN7FIN                       o??a????O
    cli_rpc_pipe_open: cli_nt_create failed on pipe \srvsvc to machine WIN7FIN.
    	Error was NT_STATUS_ACCESS_DENIED
            \\WIN7BOSS                      i«??
    cli_rpc_pipe_open: cli_nt_create failed on pipe \srvsvc to machine WIN7BOSS.
    	Error was NT_STATUS_ACCESS_DENIED
            \\ALTFILESERVER                 files on altserver
                    \\ALTFILESERVER\IPC$            IPC Service (files on altserver)
                    \\ALTFILESERVER\director        для руководства
                    \\ALTFILESERVER\my files        мои данные
    

    Очевидно, что Samba не понимает комментарии к вашим компьютерам на кириллице, это же кстати относится и к секции файла smb.conf:

    server string = files on %h
    

    Не пишите сюда что-либо по-русски.

    Команда smbstatus покажет вам текущие соединения c общими ресурсам сервера:

    # smbstatus
    
    Samba version 3.0.37
    PID     Username      Group         Machine
    -------------------------------------------------------------------
    29876   director      director      win7boss     (192.168.1.8)
    29557   buhgalter     buhgalter     winxpbuhg    (192.168.1.3)
    
    Service      pid     machine       Connected at
    -------------------------------------------------------
    director     29876   win7boss      Sat Jul  3 12:40:41 2010
    my files     29557   winxpbuhg     Sat Jul  3 12:31:46 2010
    
    Locked files:
    Pid   Uid DenyMode  Access   R/W    Oplock SharePath      Name Time
    -------------------------------------------------------------------------------------
    29876 501 DENY_NONE 0x100001 RDONLY  NONE  /firmafiles . Sat Jul 3 12:40:43 2010
    29557 503 DENY_NONE 0x81     RDONLY  NONE  /firmafiles/buhgalter папки для бухгалтерии   
    

    Мы видим полную картину.

    с ключом -b мы увидим краткую картину;
    с ключом -S только список общих файлов;
    с ключом -u имя_пользователя, увидим, куда подключен конкретный пользователь.
    (к началу страницы)

    Назад
    Пример 1. Простой Samba-сервер. Доступ всем на все
    Содержание
    Дальше
    Пример 3. Домен Samba+dhcp на Alt Linux
  •