Организация Небольшой сети на linux Fedore Core3
Часть восьмая конфигурирование файл server (SAMBA)
Ну вот пришел Новый Год, позади подготовка, празднование, и прихождения в себя и вообщем я снова собрался с силами и духом продолжить свои опусы Итак файловый сервер - SAMBA.
Почему SAMBA а не NFS ? Наверное я потом попробую организовать и описать NFS , но пока я беру в расчет что наверняка в сети будут и комп. с виндовс системами и им тоже надо дать доступ . И SAMBA нам дает возможность взаимодействия и с линукс и с виндовс ситемами . В сети достаточно материала по SAMBA но к сожалению он значительно устарел во основном идет описание версий 2.х ,(то же самое касается и печатной литературы) а жаль так как версий 3.х имеют серьезные изменения . И если стандартная конфигурация не предстовляет больших проблем то описание взаимодеиствия SAMBA с доменной системой майкрософта , а также взаимодествие с kerberos , winbind , ldap - выглядит достаточно сложно и запутано и разнится от дистрибутива . (вообщем у меня организовался в голове полный салат пока) так что если кто может разложить зто по ,,полочкам ,, буду признателен.
Вопрос в основном когда что использовать, для какого случая что предпочтительней . ( ну и если найдете хорошее описание SAMBA 3.х и ее работы в исполнение разных ролей в сети киньте сюдя линки)
Я буду описывать простую конфигурацию SAMBA сеть у нас небольшая пока ну и как говорят от простого к сложному. Сеть у нас обычная workgroup (каждый сам себе ,,злобный буратино ,, Ну в смысле администратор) и пока без без обязательной авторизации на SAMBA сервере
Задачи.
1 организовать фаил сервер с общим доступом на определенную папку (PUBLIC) и разрешением писать удалять всем (этакая файло-помойка)
2 общим доступом на определенную папку(DATA) и разрешением только читать
3 доступом на определенную папку(DOCS) только определенной группе пользователей
ВОПРОС
Здесь меня немного замкнуло, а где собственно размещать эти папки для SAMBA сервера. Нет я понимаю что можно где хочеш но хотелось узнать у гуру что считается обще принятой практикой , ну или скажем ,, правилами хорошего тона,,
И так SAMBA сервер . Файл конфигурации находится в директории /etc/samba/ это smb.conf фаил достаточно большой но довольно понятно оформлен и разбит на подразделы.
Команды для работы с сервером SAMBA
1 #pgrep smb - проверить загружен ли в данный момент процесс SAMBA сервера
2 Остановить перезапустить запустить SAMBA сервер
#service smb start
# service smb stop
# service smb restart
поставить SAMBA сервер в автозагрузку можно с помощью команды ,,ntsysv,, или
,,chkconfig smb on,, ( это относится не только к SAMBA но и к другим сервисам)
Файл конфигурации smb.conf
#======================= Global Settings =====================================
[global]
# workgroup = NT-Domain-Name or Workgroup-Name
workgroup = ferose
# server string is the equivalent of the NT Description field
server string = Samba Server
# This option is important for security. It allows you to restrict
# connections to machines which are on your local network. The
# following example restricts access to two C class networks and
# the "loopback" interface. For more examples of the syntax see
# the smb.conf man page
; hosts allow = 192.168.1. 192.168.2. 127.
# if you want to automatically load your printer list rather
# than setting them up individually then you'll need this
printcap name = /etc/printcap
load printers = yes
# It should not be necessary to spell out the print system type unless
# yours is non-standard. Currently supported print systems include:
# bsd, sysv, plp, lprng, aix, hpux, qnx
printing = cups
# This option tells cups that the data has already been rasterized
cups options = raw
# Uncomment this if you want a guest account, you must add this to /etc/passwd
# otherwise the user "nobody" is used
; guest account = pcguest
# this tells Samba to use a separate log file for each machine
# that connects
log file = /var/log/samba/%m.log
# all log information in one file
# log file = /var/log/samba/smbd.log
# Put a capping on the size of the log files (in Kb).
max log size = 50
# Security mode. Most people will want user level security. See
# security_level.txt for details.
security = USER
# Use password server option only with security = server
; password server = <NT-Server-Name>
# Password Level allows matching of _n_ characters of the password for
# all combinations of upper and lower case.
password level = 8
# username level = 8
# You may wish to use password encryption. Please read
# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation.
# Do not enable this option unless you have read those documents
smb passwd file = /etc/samba/smbpasswd
# The following are needed to allow password changing from Windows to
# update the Linux system password also.
# NOTE: Use these with 'encrypt passwords' and 'smb passwd file' above.
# NOTE2: You do NOT need these to allow workstations to change only
# the encrypted SMB passwords. They allow the Unix password
# to be kept in sync with the SMB password.
unix password sync = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*
# Unix users can map to different SMB User names
# Using the following line enables you to customise your configuration
# on a per machine basis. The %m gets replaced with the netbios name
# of the machine that is connecting
; include = /etc/samba/smb.conf.%m
# Most people will find that this option gives better performance.
# See speed.txt and the manual pages for details
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
# Configure Samba to use multiple interfaces
# If you have multiple network interfaces then you must list them
# here. See the man page for details.
interfaces = 192.168.20.0/24 192.168.30.0/24
# Configure remote browse list synchronisation here
# request announcement to, or browse list sync from:
#a specific host or from / to a whole subnet (see below)
; remote browse sync = 192.168.3.25 192.168.5.255
# Cause this host to announce itself to local subnets here
; remote announce = 192.168.1.255 192.168.2.44
# Browser Control Options:
# set local master to no if you don't want Samba to become a master
# browser on your network. Otherwise the normal election rules apply
local master = yes
# OS Level determines the precedence of this server in master browser
# elections. The default value should be reasonable
os level = 33
# Domain Master specifies Samba to be the Domain Master Browser. This
# allows Samba to collate browse lists between subnets. Don't use this
# if you already have a Windows NT domain controller doing this job
domain master = yes
# Preferred Master causes Samba to force a local browser election on startup
# and gives it a slightly higher chance of winning the election
preferred master = yes
# Enable this if you want Samba to be a domain logon server for
# Windows95 workstations.
; domain logons = yes
# if you enable domain logons then you may want a per-machine or
# per user logon script
# run a specific logon batch file per workstation (machine)
; logon script = %m.bat
# run a specific logon batch file per username
; logon script = %U.bat
# Where to store roving profiles (only for Win95 and WinNT)
# %L substitutes for this servers netbios name, %U is username
# You must uncomment the [Profiles] share below
; logon path = \\%L\Profiles\%U
# All NetBIOS names must be resolved to IP Addresses
# 'Name Resolve Order' allows the named resolution mechanism to be specified
# the default order is "host lmhosts wins bcast". "host" means use the unix
# system gethostbyname() function call that will use either /etc/hosts OR
# DNS or NIS depending on the settings of /etc/host.config, /etc/nsswitch.conf
# and the /etc/resolv.conf file. "host" therefore is system configuration
# dependant. This parameter is most often of use to prevent DNS lookups
# in order to resolve NetBIOS names to IP Addresses. Use with care!
# The example below excludes use of name resolution for machines that are NOT
# on the local network segment
# - OR - are not deliberately to be known via lmhosts or via WINS.
; name resolve order = wins lmhosts bcast
# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server
wins support = yes
# WINS Server - Tells the NMBD components of Samba to be a WINS Client
#Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
; wins server = w.x.y.z
# WINS Proxy - Tells Samba to answer name resolution queries on
# behalf of a non WINS capable client, for this to work there must be
# at least oneWINS Server on the network. The default is NO.
; wins proxy = yes
# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names
# via DNS nslookups. The built-in default for versions 1.9.17 is yes,
# this has been changed in version 1.9.18 to no.
dns proxy = no
# Case Preservation can be handy - system default is _no_
# NOTE: These can be set on a per share basis
preserve case = no
short preserve case = no
# Default case is normally upper case for all DOS files
default case = lower
# Be very careful with case sensitivity - it can break things!
case sensitive = no
#============================ Share Definitions ==============================
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
template shell = /bin/false
password server = None
guest ok = yes
guest account = nobody
winbind use default domain = no
;[homes]
;comment = Home Directories
;browseable = yes
;writeable = yes
# Un-comment the following and create the netlogon directory for Domain Logons
; [netlogon]
; comment = Network Logon Service
; path = /home/netlogon
; guest ok = yes
; writable = no
; share modes = no
# Un-comment the following to provide a specific roving profile share
# the default is to use the user's home directory
;[Profiles]
; path = /home/profiles
; browseable = no
; guest ok = yes
# NOTE: If you have a BSD-style print system there is no need to
# specifically define each individual printer
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
# Set public = yes to allow user 'guest account' to print
printable = yes
[public]
path = /var/tmp/public
public = yes
only guest = yes
writable = yes
printable = no
[data]
path = /var/tmp/data
public = yes
only guest = yes
writable = no
printable = no
[docs]
comment = Danik and Fedor stuff
path = /var/tmp/docs
valid users = danik fedor
public = no
writable = yes
printable = no
create mask = 0765
# A publicly accessible directory, but read only, except for people in
# the "staff" group
;[public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; read only = yes
; write list = @staff
Этот конфиг фаил немножко короче оригинала - в оригинале больше примеров для расшаревания различных ресурсов . Здесь важно помнить что SAMBA - это если так можно выразиться не чисто файл сервер для среды ,,чистого ,, линукса скорее всего он был создан для интегрированного решения среды маикрософта с юникс-линукс и др. сред . Поэтому если ваша сеть предпологает быть чисто линукс то скорее всего нет смысла заводить этот ,,танец,, а обратить внимание на NFS . Дальше нам нужно завести всех юзеров которые будут авторизироваться на сервере для захода на расшареную папку для определенных юзеров в нашем случае это два юзера Danik and Fedor . Важно помнить что просто создание этих юзеров на сервере ( ,,adduser user_name,, и задание пароля ,,passwd user_name,,)не решит проблему так как у SAMBA своя база данных пользователей , но при этом она позволяет добавить юзера в свою базу данных только если он присутствует в системе . То есть вначале создаем юзера на сервере а только потом добавляем его в базу данных SAMBA сервера.
smbpasswd -a Danik (в нашем примере и не забываем про регистр в линуксе Danik и danik два разных слова )
smbpasswd -a Fedor
Теперь вопрос специалистам
по конфигу
guest ok = yes
guest account = nobody
мы разрешаем гостю заходить на рашареные папки nobody это гостевой юзер в системе я его тоже добавил в в базу данных SAMBA сервера с пустым паролем ( насколько это правильно)
2 . У меня при заходе со станциий линукс на рашареный ресурс public выскакивает окно авторизации и мне приходиться вписывать имя nobody и жать Enter . Есть возможность решить эту проблему ? Если уж дали вход для всех то зачем авторизироваться .
Диагностика.
Сконфигурировали мы конфиг запустили самбу теперь осталось проверить а все ли правильно мы сделали с этим я отсылаю всех желающих на очень толковую статью (не удобно просто взять и скопировать а переписывать тоже самое своими словами не вижу смысла)
http://www.linuxrsp.ru/docs/smb_diag.html
Другие интересные статьи
http://sys.net.ru/docs/howto/samba_pdc/
http://linux.yaroslavl.ru//docs/serv/samba/samba-win2000.html
http://sys.net.ru/docs/network/Samba_XFS_ACL/
http://www.citforum.ru/operating_systems/linux/samba/
И последнее по поводу кодировок - может и не надо но на всякий случай можно добавить поддержку юникода ( добавляем в секцию GLOBAL конфиг фаила)
dos charset = 866
unix charset = UTF-8
display charset = UTF-8
На этом по SAMBA пока все, если есть что добавит исправить пишите
Часть восьмая конфигурирование файл server (SAMBA)
Ну вот пришел Новый Год, позади подготовка, празднование, и прихождения в себя и вообщем я снова собрался с силами и духом продолжить свои опусы Итак файловый сервер - SAMBA.
Почему SAMBA а не NFS ? Наверное я потом попробую организовать и описать NFS , но пока я беру в расчет что наверняка в сети будут и комп. с виндовс системами и им тоже надо дать доступ . И SAMBA нам дает возможность взаимодействия и с линукс и с виндовс ситемами . В сети достаточно материала по SAMBA но к сожалению он значительно устарел во основном идет описание версий 2.х ,(то же самое касается и печатной литературы) а жаль так как версий 3.х имеют серьезные изменения . И если стандартная конфигурация не предстовляет больших проблем то описание взаимодеиствия SAMBA с доменной системой майкрософта , а также взаимодествие с kerberos , winbind , ldap - выглядит достаточно сложно и запутано и разнится от дистрибутива . (вообщем у меня организовался в голове полный салат пока) так что если кто может разложить зто по ,,полочкам ,, буду признателен.
Вопрос в основном когда что использовать, для какого случая что предпочтительней . ( ну и если найдете хорошее описание SAMBA 3.х и ее работы в исполнение разных ролей в сети киньте сюдя линки)
Я буду описывать простую конфигурацию SAMBA сеть у нас небольшая пока ну и как говорят от простого к сложному. Сеть у нас обычная workgroup (каждый сам себе ,,злобный буратино ,, Ну в смысле администратор) и пока без без обязательной авторизации на SAMBA сервере
Задачи.
1 организовать фаил сервер с общим доступом на определенную папку (PUBLIC) и разрешением писать удалять всем (этакая файло-помойка)
2 общим доступом на определенную папку(DATA) и разрешением только читать
3 доступом на определенную папку(DOCS) только определенной группе пользователей
ВОПРОС
Здесь меня немного замкнуло, а где собственно размещать эти папки для SAMBA сервера. Нет я понимаю что можно где хочеш но хотелось узнать у гуру что считается обще принятой практикой , ну или скажем ,, правилами хорошего тона,,
И так SAMBA сервер . Файл конфигурации находится в директории /etc/samba/ это smb.conf фаил достаточно большой но довольно понятно оформлен и разбит на подразделы.
Команды для работы с сервером SAMBA
1 #pgrep smb - проверить загружен ли в данный момент процесс SAMBA сервера
2 Остановить перезапустить запустить SAMBA сервер
#service smb start
# service smb stop
# service smb restart
поставить SAMBA сервер в автозагрузку можно с помощью команды ,,ntsysv,, или
,,chkconfig smb on,, ( это относится не только к SAMBA но и к другим сервисам)
Файл конфигурации smb.conf
#======================= Global Settings =====================================
[global]
# workgroup = NT-Domain-Name or Workgroup-Name
workgroup = ferose
# server string is the equivalent of the NT Description field
server string = Samba Server
# This option is important for security. It allows you to restrict
# connections to machines which are on your local network. The
# following example restricts access to two C class networks and
# the "loopback" interface. For more examples of the syntax see
# the smb.conf man page
; hosts allow = 192.168.1. 192.168.2. 127.
# if you want to automatically load your printer list rather
# than setting them up individually then you'll need this
printcap name = /etc/printcap
load printers = yes
# It should not be necessary to spell out the print system type unless
# yours is non-standard. Currently supported print systems include:
# bsd, sysv, plp, lprng, aix, hpux, qnx
printing = cups
# This option tells cups that the data has already been rasterized
cups options = raw
# Uncomment this if you want a guest account, you must add this to /etc/passwd
# otherwise the user "nobody" is used
; guest account = pcguest
# this tells Samba to use a separate log file for each machine
# that connects
log file = /var/log/samba/%m.log
# all log information in one file
# log file = /var/log/samba/smbd.log
# Put a capping on the size of the log files (in Kb).
max log size = 50
# Security mode. Most people will want user level security. See
# security_level.txt for details.
security = USER
# Use password server option only with security = server
; password server = <NT-Server-Name>
# Password Level allows matching of _n_ characters of the password for
# all combinations of upper and lower case.
password level = 8
# username level = 8
# You may wish to use password encryption. Please read
# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation.
# Do not enable this option unless you have read those documents
smb passwd file = /etc/samba/smbpasswd
# The following are needed to allow password changing from Windows to
# update the Linux system password also.
# NOTE: Use these with 'encrypt passwords' and 'smb passwd file' above.
# NOTE2: You do NOT need these to allow workstations to change only
# the encrypted SMB passwords. They allow the Unix password
# to be kept in sync with the SMB password.
unix password sync = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*
# Unix users can map to different SMB User names
# Using the following line enables you to customise your configuration
# on a per machine basis. The %m gets replaced with the netbios name
# of the machine that is connecting
; include = /etc/samba/smb.conf.%m
# Most people will find that this option gives better performance.
# See speed.txt and the manual pages for details
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
# Configure Samba to use multiple interfaces
# If you have multiple network interfaces then you must list them
# here. See the man page for details.
interfaces = 192.168.20.0/24 192.168.30.0/24
# Configure remote browse list synchronisation here
# request announcement to, or browse list sync from:
#a specific host or from / to a whole subnet (see below)
; remote browse sync = 192.168.3.25 192.168.5.255
# Cause this host to announce itself to local subnets here
; remote announce = 192.168.1.255 192.168.2.44
# Browser Control Options:
# set local master to no if you don't want Samba to become a master
# browser on your network. Otherwise the normal election rules apply
local master = yes
# OS Level determines the precedence of this server in master browser
# elections. The default value should be reasonable
os level = 33
# Domain Master specifies Samba to be the Domain Master Browser. This
# allows Samba to collate browse lists between subnets. Don't use this
# if you already have a Windows NT domain controller doing this job
domain master = yes
# Preferred Master causes Samba to force a local browser election on startup
# and gives it a slightly higher chance of winning the election
preferred master = yes
# Enable this if you want Samba to be a domain logon server for
# Windows95 workstations.
; domain logons = yes
# if you enable domain logons then you may want a per-machine or
# per user logon script
# run a specific logon batch file per workstation (machine)
; logon script = %m.bat
# run a specific logon batch file per username
; logon script = %U.bat
# Where to store roving profiles (only for Win95 and WinNT)
# %L substitutes for this servers netbios name, %U is username
# You must uncomment the [Profiles] share below
; logon path = \\%L\Profiles\%U
# All NetBIOS names must be resolved to IP Addresses
# 'Name Resolve Order' allows the named resolution mechanism to be specified
# the default order is "host lmhosts wins bcast". "host" means use the unix
# system gethostbyname() function call that will use either /etc/hosts OR
# DNS or NIS depending on the settings of /etc/host.config, /etc/nsswitch.conf
# and the /etc/resolv.conf file. "host" therefore is system configuration
# dependant. This parameter is most often of use to prevent DNS lookups
# in order to resolve NetBIOS names to IP Addresses. Use with care!
# The example below excludes use of name resolution for machines that are NOT
# on the local network segment
# - OR - are not deliberately to be known via lmhosts or via WINS.
; name resolve order = wins lmhosts bcast
# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server
wins support = yes
# WINS Server - Tells the NMBD components of Samba to be a WINS Client
#Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
; wins server = w.x.y.z
# WINS Proxy - Tells Samba to answer name resolution queries on
# behalf of a non WINS capable client, for this to work there must be
# at least oneWINS Server on the network. The default is NO.
; wins proxy = yes
# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names
# via DNS nslookups. The built-in default for versions 1.9.17 is yes,
# this has been changed in version 1.9.18 to no.
dns proxy = no
# Case Preservation can be handy - system default is _no_
# NOTE: These can be set on a per share basis
preserve case = no
short preserve case = no
# Default case is normally upper case for all DOS files
default case = lower
# Be very careful with case sensitivity - it can break things!
case sensitive = no
#============================ Share Definitions ==============================
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
template shell = /bin/false
password server = None
guest ok = yes
guest account = nobody
winbind use default domain = no
;[homes]
;comment = Home Directories
;browseable = yes
;writeable = yes
# Un-comment the following and create the netlogon directory for Domain Logons
; [netlogon]
; comment = Network Logon Service
; path = /home/netlogon
; guest ok = yes
; writable = no
; share modes = no
# Un-comment the following to provide a specific roving profile share
# the default is to use the user's home directory
;[Profiles]
; path = /home/profiles
; browseable = no
; guest ok = yes
# NOTE: If you have a BSD-style print system there is no need to
# specifically define each individual printer
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
# Set public = yes to allow user 'guest account' to print
printable = yes
[public]
path = /var/tmp/public
public = yes
only guest = yes
writable = yes
printable = no
[data]
path = /var/tmp/data
public = yes
only guest = yes
writable = no
printable = no
[docs]
comment = Danik and Fedor stuff
path = /var/tmp/docs
valid users = danik fedor
public = no
writable = yes
printable = no
create mask = 0765
# A publicly accessible directory, but read only, except for people in
# the "staff" group
;[public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; read only = yes
; write list = @staff
Этот конфиг фаил немножко короче оригинала - в оригинале больше примеров для расшаревания различных ресурсов . Здесь важно помнить что SAMBA - это если так можно выразиться не чисто файл сервер для среды ,,чистого ,, линукса скорее всего он был создан для интегрированного решения среды маикрософта с юникс-линукс и др. сред . Поэтому если ваша сеть предпологает быть чисто линукс то скорее всего нет смысла заводить этот ,,танец,, а обратить внимание на NFS . Дальше нам нужно завести всех юзеров которые будут авторизироваться на сервере для захода на расшареную папку для определенных юзеров в нашем случае это два юзера Danik and Fedor . Важно помнить что просто создание этих юзеров на сервере ( ,,adduser user_name,, и задание пароля ,,passwd user_name,,)не решит проблему так как у SAMBA своя база данных пользователей , но при этом она позволяет добавить юзера в свою базу данных только если он присутствует в системе . То есть вначале создаем юзера на сервере а только потом добавляем его в базу данных SAMBA сервера.
smbpasswd -a Danik (в нашем примере и не забываем про регистр в линуксе Danik и danik два разных слова )
smbpasswd -a Fedor
Теперь вопрос специалистам
по конфигу
guest ok = yes
guest account = nobody
мы разрешаем гостю заходить на рашареные папки nobody это гостевой юзер в системе я его тоже добавил в в базу данных SAMBA сервера с пустым паролем ( насколько это правильно)
2 . У меня при заходе со станциий линукс на рашареный ресурс public выскакивает окно авторизации и мне приходиться вписывать имя nobody и жать Enter . Есть возможность решить эту проблему ? Если уж дали вход для всех то зачем авторизироваться .
Диагностика.
Сконфигурировали мы конфиг запустили самбу теперь осталось проверить а все ли правильно мы сделали с этим я отсылаю всех желающих на очень толковую статью (не удобно просто взять и скопировать а переписывать тоже самое своими словами не вижу смысла)
http://www.linuxrsp.ru/docs/smb_diag.html
Другие интересные статьи
http://sys.net.ru/docs/howto/samba_pdc/
http://linux.yaroslavl.ru//docs/serv/samba/samba-win2000.html
http://sys.net.ru/docs/network/Samba_XFS_ACL/
http://www.citforum.ru/operating_systems/linux/samba/
И последнее по поводу кодировок - может и не надо но на всякий случай можно добавить поддержку юникода ( добавляем в секцию GLOBAL конфиг фаила)
dos charset = 866
unix charset = UTF-8
display charset = UTF-8
На этом по SAMBA пока все, если есть что добавит исправить пишите