Форум русской поддержки ОС Fedora linux
Опишу как я настраивал samba на centos 5.1
Были поставлены следующие задачи:
Один каталог private в который может осуществляться запись и чтение любым пользователям видимый только в 2х их 3х сегментах сети.
Каталог public4all видимый из всех 3х сегментов сети и в который разрешена запись любым пользователям.
Скрытый каталог secure доступ в который осуществляется по паролю и невидимый при обзоре сервера.
Доступ из любых ОС в том числе включая win9x.
Распознавание NetBios имен виндозных машин.
Для этих целей был создан следующий файл конфигурации smb.conf.
[global]
# отключаем принтеры
load printers = no
# разрешаем пустые пароли
null passwords = yes
# список хостов которым разрешается подключатся
hosts allow = 127. 192.168.81. 192.168.80. 192.168.45.
passdb backend = tdbsam
# включаем поддержку wins для работы с именами машин
wins support = yes
# имя и описание сервера
netbios name = Fileserver
server string = Fileserver
printable = no
# делаем наш сервер главным браузером сети
local master = yes
workgroup = MYGROUP
os level = 33
# задаем права для создаваемых файлов
create mode = 0664
# указываем на файл с паролями
smb passwd file = /etc/samba/smbpasswd
# твик самбы, увеличивает скорость работы
socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
# устанавливаем режим безопасности
security = share
preferred master = yes
# права для вновь создаваемых каталогов
directory mode = 0775
# заставляем самбу писать отдельный лог на каждую машину
max log size = 50
log file = /var/log/samba/%m.log
[homes]
comment = Home Directories
browseable = no
writable = yes
guest ok = yes
valid users = %S
create mode = 0664
directory mode = 0775
[Profiles]
path = /var/lib/samba/profiles
browseable = no
guest ok = yes
[private]
comment = private
path = /home/private
force user = private
browseable = yes
public = yes
writable = yes
printable = no
hosts allow = 127. 192.168.81. 192.168.45.
[public4all]
comment = public4all
path = /home/public4all
force user = public4all
browseable = yes
public = yes
writable = yes
printable = no
[secure]
comment = secure
path = /home/secure/share
browseable = no
public = no
writable = yes
printable = no
guest ok = no
valid users = secure
Далее нам нужно только лишь создать юзера самбы чтобы по его имени и паролю мы могли попасть в закрытые от чужих глаз каталоги.
# smbpasswd -a secure
и проверить добавился ли он в базу пользователей самбы
# pdbedit -L
secure:523:secure
Еще хочу добавить на случай если Вы захотите сделать папку невидимой при обзоре но доступной при подключении диска без пароля достаточно изменить параметр public
public = no
P.S. Это конечно больше пример чем мануал, но надеюсь он поможет разобраться с samba
Буду рад выслушать замечания и предложения по дальнейшему развитию описания
Недавно возникла надобность контролировать кто и что делает с файлами.
Начнем с того что в секцию [global] файла smb.conf добавим(исправим) следующие строки.
[global] log file = /var/log/samba/%m.log log level = 0 vfs:2 syslog = 0
Далее нужно немного подправить smb.conf, в секции объявления расшаренных каталогов.
[public4all] comment = public4all path = /home/mines/123 force user = mines browseable = yes public = yes writable = yes printable = no # добавим эту секцию [b] vfs objects = full_audit full_audit:prefix = %H|%m|%a|%u|%I full_audit:failure = none full_audit:success = mkdir rmdir write pwrite sendfile rename unlink # может принимать следующие значения — connect disconnect opendir mkdir rmdir closedir open close read pread write pwrite sendfile rename unlink chmod fchmod chown fchown chdir ftruncate lock symlink readlink link mknod realpath full_audit:facility = local5 full_audit:priority = notice[/b]
Затем, ввиду того что опция syslog = 0 все равно не действует на аудит, его сообщения продолжают сыпаться в /var/log/messages, мы немного подправим файл /etc/syslog.conf. Жирным выделены добавленные строки.
# Log all kernel messages to the console. # Logging much else clutters up the screen. #kern.* /dev/console # Log anything (except mail) of level info or higher. # Don't log private authentication messages! *.info;mail.none;authpriv.none;cron.none[b];local5[/b] /var/log/messages # The authpriv file has restricted access. authpriv.* /var/log/secure # Log all the mail messages in one place. mail.* -/var/log/maillog # Log cron stuff cron.* /var/log/cron # Everybody gets emergency messages *.emerg * # Save news errors of level crit and higher in a special file. uucp,news.crit /var/log/spooler # Save boot messages also to boot.log local7.* /var/log/boot.log [b]# Save samba audit messages. local5.notice /var/log/samba/log.audit[/b]
Таким образом мы получим подробную информацию о том кто чего творил с нашими файлами
p.s. Думаю не сложно догадаться как вести разные логи на разные шары
Неактивен
1) Как сделать чтобы демоны smbd и nmbd стартовали при загрузки системы в Fedora9.....?
Желательно поподробней.
2) После настройки самбы пыташься зайти на расшаренные ресурсы, SeLinux непускает как это победить ?
Заранее спасибо !!!
Отредактированно valdemar_ru (2008-09-29 11:19:52)
Неактивен
1) # chkconfig smb on
2) отключить SELinux # setenforce 0 или почитать напутствие в конфиге
# SELINUX NOTES: # # If you want to use the useradd/groupadd family of binaries please run: # setsebool -P samba_domain_controller on # # If you want to share home directories via samba please run: # setsebool -P samba_enable_home_dirs on # # If you create a new directory you want to share you should mark it as # "samba-share_t" so that selinux will let you write into it. # Make sure not to do that on system directories as they may already have # been marked with othe SELinux labels. # # Use ls -ldZ /path to see which context a directory has # # Set labels only on directories you created! # To set a label use the following: chcon -t samba_share_t /path # # If you need to share a system created directory you can use one of the # following (read-only/read-write): # setsebool -P samba_export_all_ro on # or # setsebool -P samba_export_all_rw on # # If you want to run scripts (preexec/root prexec/print command/...) please # put them into the /var/lib/samba/scripts directory so that smbd will be # allowed to run them. # Make sure you COPY them and not MOVE them so that the right SELinux context # is applied, to check all is ok use restorecon -R -v /var/lib/samba/scripts
Неактивен