Возможности Samba можно условно разделить на две категории:
- Сервер: предоставление ресурсов (доступ к системе принтеров и файлам) для различных клиентов Microsoft Windows.
- Клиент: доступ к ресурсам клиентов Microsoft Windows.
Может интегрироваться с Windows Server: либо как Основной контроллер домена (PDC), либо как член домена. Она также может быть частью домена Active Directory.
Для доступа к ресурсам клиентов Windows собственно ничего особо настраивать и не надо, лишь поставить самбу и по желанию прописать кодировки. Для предоставления ресурсов придётся немного поковыряться в конфиге. Моя цель - расшарить одну папку для обмена файлами. На авторизацию пользователей, права доступа и прочие прелести цивилизации не претендую.
Используемые USE-флаги:
net-fs/samba-3.0.24-r3 USE="acl cups pam python readline swat -async -automount -caps -doc -examples -fam -kerberos -ldap -oav -quotas (-selinux) -syslog -winbind"
где: swat - веб-интерфейс управления самбой.
# emerge net-fs/samba
Настройка:
# cp /etc/samba/smb.conf.example /etc/samba/smb.conf
# nano /etc/samba/smb.conf
Привожу только то, что добавил и оставил включённым:
#================== Global Settings ======================
[global]
# 1. Server Naming Options:
# Имя рабочей группы. Именно оно высвечивается в «Сетевом окружении».
workgroup = WORKGROUP
# NetBIOS-имя, под которым будет виден сервер остальным машинам сети.
# по умолчанию = hostname
; netbios name = <name_of_this_server>
# Комментарий, появляющийся рядом с именем машины в "Сетевом окружении" Windows.
server string = Samba Server %v
# 2. Printing Options:
printcap name = cups
load printers = yes
printing = cups
# 3. Logging Options:
# Параметры логирования - log.<имя_машины_клиента>
log file = /var/log/samba/log.%m
# Put a capping on the size of the log files (in Kb).
# это кому скока не жалко
max log size = 50
# 4. Security and Domain Membership Options:
# Следующий параметр влияет на безопасность. Hosts allow разрешает машинам с
# указанными IP-адресами присоединяться к Samba-серверу.
hosts allow = 192.168.1. 192.168.0. 127. 10.
# Uncomment this if you want a guest account, you must add this to /etc/passwd
# otherwise the user "nobody" is used
# имя, под которым разрешен гостевой вход в систему
guest account = nobody
# Allow users to map to guest:
map to guest = bad user
# Уровень доступа. user — на уровне пользователя.
security = user
# Поддержка шифрованных паролей
encrypt passwords = yes
# 5. Browser Control and Networking Options:
# Параметры оптимизации самбы,
# всеми рекомендуемые и проверенные опытным путем.
; socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
socket options = TCP_NODELAY IPTOS_LOWDELAY
read raw = yes
write raw = yes
oplocks = yes
max xmit = 65535
dead time = 15
getwd cache = yes
# По умолчанию слушаются все интерфейсы, здесь можно указать конкретно
; interfaces = 192.168.12.2/24 192.168.13.2/24
# 8. File Naming Options:
# Enabling internationalization:
dos charset = 866
unix charset = UTF-8
display charset = UTF-8
#================== Share Definitions ====================
[homes]
comment = Home Directories
browseable = no
writable = yes
# A publicly accessible directory, but read only, except for people in
# the "staff" group
# Отсюда можно будет только брать файлы
[public]
comment = Public Stuff
path = /home/samba/public
public = yes
writable = no
write list = @staff
# A publicly accessible directory, read/write to all users. Note that all files
# created in the directory by users will be owned by the default user, so
# any user with access can delete any other user's files. Obviously this
# directory must be writable by the default user. Another user could of course
# be specified, in which case all files would be owned by that user instead.
;[public]
; path = /usr/somewhere/else/public
; public = yes
; only guest = yes
; writable = yes
; printable = no
# Общий каталог для всех, полная анархия.
[incoming]
path = /home/samba/incoming
public = yes
only guest = yes
writable = yes
printable = no
create mask = 0666
directory mode = 0777
Создание необходимых каталогов:
# mkdir /home/samba/public -p
# mkdir /home/samba/incoming
Так как у каталога incoming владелец root, писать в неё сможет только он, исправляем:
# chmod 777 /home/samba/incoming
# ls /home/samba/ -l
drwxrwxrwx 2 root root 48 Авг 29 20:12 incoming
drwxr-xr-x 2 root root 48 Авг 29 20:09 public
# /etc/init.d/samba start
По желанию:
# rc-update add samba default
Все файлы/папки, создаваемые в каталоге incoming будут создаваться от пользователя nobody:
# ls /home/samba/incoming/ -l
-rw-rw-rw- 1 nobody nobody 640 Авг 30 10:44 ttt.txt
drwxr-xr-x 2 nobody nobody 48 Авг 30 11:32 Новая папка
SWAT. Веб-интерфейс для управления самбой.
* swat must be enabled by xinetd:
* change the /etc/xinetd.d/swat configuration
Изменил:
# nano /etc/xinetd.d/swat
only_from = 127.0.0.1
disable = no
По какой-то причине при прописанном "only_from = localhost" никак не мог достучаться до swat'а. Исправил на 127.0.0.1 - всё заработало.
# /etc/init.d/xinetd start
Проверяем: http://localhost:901/ (или
