Для начала устанавливаем:
$ aptitude install samba smbfs
Samba использует пользователей которые уже есть в системе, (возможно есть и другие пути, об этом в следующей заметке)
создаем наших пользывателей:
$ useradd -c "Тest" -s /sbin/nologin ole
$ useradd -c "Тest1" -s /sbin/nologin ole1
$ useradd -c "Тest2" -s /sbin/nologin ole2
к команде существуют следующие параметры, мож кому надо:
-g "Названия группы" - группа, к которой он должен принадлежать
-d /home/"каталог" - домашний каталог пользователя
-s /sbin/nologin - устанавливаем ему оболочку /sbin/nologin
-c "Описания" - качестве его полного имени Mr Test,
имя- ole
Посмотрим что у нас получилось:
далее ...
$ cat /etc/passwd | grep ole
ole:x:5002:5002:Test:/home/ole:/sbin/nologin
ole1:x:5003:5003:Test1:/home/ole1:/sbin/nologin
ole2:x:5004:5004:Test3:/home/ole2:/sbin/nologin
Теперь у нас есть пользыватели в системе, надо внести его в базу данных SMB и назначить пароль для доступа к расшаренным ресурсам:
$ smbpasswd -a ole
$ smbpasswd -a ole1
$ smbpasswd -a ole2
Далее правим файл конфигурации Samba (/etc/samba/smb.conf), секция [Global] содержит общие настройки сервера:
$ cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
$ nano /etc/samba/smb.conf
[global]
# Название вашей рабочей группы или домена. Именно оно будет высвечивается в «Сетевом окружении».
workgroup = WORKGROUP
# server string is the equivalent of the NT Description field
# Комментарий, появляющийся рядом с именем машины в "Сетевом окружении" Windows.
server string = %h server (Samba, Ubuntu)
# Ограничивает обслуживаемые сервером сетевые интерфейсы (eth0) / и по адресам
interfaces = 127.0.0.0/8 eth0
# Параметры логирования - log.<имя_машины_клиента>
log file = /var/log/samba/log.%m
# Размер лог-файла в Кб
max log size = 1000
# еще можно добавить строку "debug level = 3", она используется при
# отладке сервера, выводя в журнал более детальную информацию или уровень 5.
#debug level = 3
# для более детальной информацией можно поиграться с уровнями (1,2,3, и тд)
log leval=1
####### Authentication #######
# share - при каждом доступе будет запрашиваться имя пользовательского ресурса.
# user - для аутентификации будет использоваться имя пользователя и пароль,
# которые используются для входа в сеть виндовс. Это значение по умолчанию.
# server - для проверки пароля будет использоваться сервер NT (AD)
security = user
# Поддержка шифрованных паролей
encrypt passwords = true
# запрещает становиться мастером домена
domain master = no
# отключает WINS
wins support = no
# Опции сокета. Если не знаете, что это такое, лучше оставить как есть или почитать ман.
socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
# вкл/откл гостевую запись
guest ok = no
# запрешает root
invalid users = root
# Эти опции избавляют от глюков со шрифтами/кодировками. (так же можно 866 (Dos))
unix charset = utf8
dos charset = cp1251
display charset = cp1251
Пример:
Cоздаем папку для чтения/записи (rw) определенным пользывателем, например для юзвера ole2
$ sudo mkdir /home/DATA_rw
$ sudo chmod 777 /home/DATA_rw
В конфиге smb.conf
[DATA_rw]
path = /home/DATA_rw
create mask = 0664
directory mask = 0777
valid users = "ole","ole1","ole2"
write list = "ole2",
где
- valid users = "" - юзеры которым разрешен доступ к ресурсу (в данном примере дали всем юзверям)
- write list = "" - юзверы, которые могут писать в данную папку (в данном примере - только ole2)
Внимания параметр write, подразумивает под собой еще и read (чтения), т.е для чтения папка будет открыта для всеx указанных в параметре valid users
$ sudo testparm
$ sudo /etc/init.d/samba restart
Если поставить параметр browseable = no:
[DATA_rw]
browseable = no
.. . . . ......
, то папка ни будет отображаться в проводнике, когда заходишь на сервер, но по полному адрессу, если его знаешь ;) , заходишь без проблем (\host\data_rw)
Для мониторинга сетевых подключений по SAMBA можно использовать команду smbstatus. Для удобства запускать ее в отдельном терминале:
$ watch smbstatus
Эта команда автоматически обновляет информацию о подключениях и выводит ее на
экран.