На этот раз рассмотрим немного более сложный случай. Теперь в фирме, которую вы администрируете, появилась потребность
в том, чтобы сотрудники держали свои персональные рабочие материалы на файл сервере, причем так, чтобы доступ к ним имел
только сам сотрудник, и в то же время над всеми файлами имел контроль директор. Этот пример может быть применен в одноранговой
сети, где клиентами являются компьютеры с установленной на них ос Windows, файловым сервером
будет выступать сервер Samba. Если в вашей сети до 15-20 компьютеров, это решение вполне может вам пригодиться.
имя NetBIOS имя компьютера с установленным на нем ALD5 altfileserver
.
Таблица 2.1. Список сотрудников фирмы
Имя сотрудника |
Учетная запись |
Пароль |
Имя личной папки |
Каталог на файл-сервере |
Рабочая станция |
Иван Иваныч |
director |
dirIvan1 |
director |
/firmafiles |
win7boss |
Петр Авдеич |
finansist |
finPetr2 |
finansist |
/firmafiles/finansist |
win7fin |
Зоя Федоровна |
buhgalter |
buhZoya3 |
buhgalter |
/firmafiles/buhgalter |
winXPbuh |
Разумеется, в вашей фирме может быть больше сотрудников.
(к началу страницы)
Создадим группу на файл-сервере, куда потом поместим всех наших сотрудников:
Создадим пользователей нашей сетевой среды:
# 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.).
(к началу страницы)
Теперь создадим папки и раздадим права следующим образом:
# 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
|
(к началу страницы)
Файл /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-системы.
(к началу страницы)
Создаем пользователей на windows-машинах обычными средствами windows, назначаем такой же пароль, как в нашей таблице и
изменяем рабочую группу (Win+Pause->Свойства_Системы->Имя_компьютера->Изменить) на FIRMA
и перезагружаем
компьютер (в картинках можно посмотреть
здесь
с той лишь разницей, что будет изменен не домен, а рабочая группа).
После этого в сетевом окружении мы видим компьютер Altfileserver
, а в нем две общие папки - director
и my files
.
Директор, Иван Иваныч, не может войти в папку my files
по той причине, что она ведет в папку
/firmafiles/имя_пользователя
, а для Иван Иваныча мы такой личной папки не создавали. Зато из папки
director
он может попасть в личные папки своих сотрудников.
Сотрудники же, finansist
- Петр Авдеич и buhgalter
- Зоя Федоровна попадают в папку
my files
, она является папками соответственно /firmafiles/finansist
для Петра Авдеича и
/firmafiles/buhgalter
для Зои Федоровны на файл-сервере. Подробно останавливаюсь на этом моменте, так как
сначала сам не очень понял, что и как. В папку director
сотрудники могут попасть, только если им станет известен
пароль Иван Иваныча.
Ну и соответственно такой общий личный ресурс разумнее будет присоединить как сетевой диск каждому сотруднику.
(к началу страницы)
Утилита 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 |