Samba

Исходные данные:

Контора на ~50 пользователей. Надо было сделать на линухах файлообменник, расшаренный каталог для 1С-ных баз и отдельную шару для фин-отдела, которая была бы доступна только с определенных машин (по IP-адресам).

Сервер работает под OpenSuse обновленной до 13.1, а начиналось все еще с 11 версии...

Я человек ленивый как и положено быть админу. Поэтому подготовку сдалал быстренько натыкав мышью пару параметров в Yast'е

Там я выбрал режим запуска "вместе с системой" и поставил галку "открыть порт в брандмауэре". Остальное делалось руками в конфигах.

Открываем /etc/samba/smb.conf и редактируем раздел Global, чтоб было так::

[global]

workgroup = ;Ибо нафиг не нужна

passdb backend = tdbsam ;Самба сама у себя хранит пароли

printing = cups ;печатать на расшаренные принтеры используя CUPS

printcap name = cups

printcap cache time = 750 ;кэш для печати

cups options = raw

map to guest = Bad User ;Незванный гость хуже всех :-)

logon path = \\%L\profiles\.msprofile ; Мы не планируем пока организовывать PDC на самбе, поэтому тут все по дефолту

logon home = \\%L\%U\.9xprofile ;Тут тоже

logon drive = P: ;и тут

usershare allow guests = No ; Пользовательские шары только для пользователей! Никаких гостей!

add machine script = /usr/sbin/useradd -c Machine -d /var/lib/nobody -s /bin/false %m$ ; путь к скрипту добавляющему машину в домен. Нам не надо....

domain logons = No

domain master = No

security = user ;Уровень проверки пользователя. User - значит будем желать ввода пароля

wins support = No ;Нафиг нам WINS тут не нужен...

usershare max shares = 100 ; Не более 100 шар на 1 пользователя

idmap gid = 100-20000 ;допустимые значения GroupID

idmap uid = 100-20000 ;допустимые значения UserID

wins server = ;Тут тоже ничего не понадобится

Вобщем основные правила работы Самбы мы задали. Теперь делаем сами шары.

[Base] ;Имя отображаемое у удаленного пользователя. Может НЕ совпадать с реальным именем каталога

path = /home/user/Base ;Путь к папке

read only = No ; НЕтолько для чтения

browseable = yes ;Просматривать можно

writable = yes ;Запись разрешена

[Exchange]

path = /home/user/Exchange

read only = No

browseable = yes

writable = yes

[fes]

path = /home/user/fes

read only = No

hosts allow = 192.168.0.X ;IP-адреса с которых можно сюда ходить. Указывать через проблел

browseable = yes

writable = yes

Соответственно каталоги должны быть уже созданы по указанным адресам. Иногда так бывает, что вроде все создано и настроено, но почему-то вылезают грабли с правами. У меня например было такое: с виндовой машины не могу УЖЕ попав в нужную шару скопировать ни один файл. Ругается на то, что диск переполнен или защищен от записи. Оказалось проблема не в виндах. Надо было просто в разделы шар добавить

directory mask = 0755

create mask = 0755

Тогда новые элементы в шаре будут создаваться уже с выставленными правами.

И еще, не помню зачем, но в /etc/samba/smbusers сделал так:

root = administrator

user = user

Если вспомню - напишу. Но сильно не надейтесь ибо настраивал это около 3 лет назад...

UPD:

Еще что вспомнил! В Suse есть графическая управлялка самбой (в YAST'е), а еще можно правой кнопкой по папке щелкнуть и в свойствах найти "общий доступ" Но все это ГУЁ-вое ниГУЯ не работает!!! Я тогда давным-давно очень много времени потратил тыкаясь мышью и матеясь на тему "Чего ей надо?! Галки правильные стоят, все вроде норм!". Вобщем не теряйте время - валите в консоль и там рулите.

UPD2:

Samba в описанной конфигурации хранит логины\пароли в своей базе. Ну это Вы и так должны были понять из каментов секции General. Так вот чтобы добавить Samba-пользователя надо в консоли выполнить smbpasswd -a Имя_пользователя и затем ввести 2 раза его (пользователя) пароль. Об этом написано в блоге некоего Сайбера тут

И не забывайте после внесения изменений в конфиг делать service smb restart

А еще полезно бывает глянуть на service smb status. Там вы узнаете не только состояние самбы (работает или нет), но и нет ли ошибок в конфиге.