Файловый сервис и печать через Samba

Linux может предоставлять сервисы SMB (то есть, сетевое разделение файлов и принтеров в WfW, Win95 и NT), используя пакет Samba. Здесь рассказывается как настроить разделение и обеспечить доступ с клиентских машин.

Пакет Samba включен в Red Hat, Вы можете установлен ли он, и какую версию Вы имеете:

rpm -q samba

Если не установлен, поставьте, используя утилиту RPM (см. подробности в разделе Использование Red Hat Package Manager (RPM) главы 10).

Наиболее важные файлы Samba:

/etc/smb.conf

Файл настроек Samba. Здесь заданы разделяемые ресурсы и прочие параметры (см. ниже)

/var/log/samba/

Расположение файла протокола для Samba

/home/samba/

Здесьрасположены совместно используемые файлы. Однако, Вы можете сменить расположение. Лично я монтирую раздел на /archive/ и располагаю файлы там.

Файл ``/etc/smb.conf'' хранит настройки разделяемых ресурсов. Первые строки содержат глобальные директивы настройки, общие для всех ресурсов (если они не отменены для конкретного ресурса), затем идет настройка каждого ресурса.

В пакет Samba входит файл smb.conf со значениями по умолчанию, который часто вполне пригоден, и нуждается лишь в небольших поправках.

В приводимом ниже примере я попробую показать Вам некоторые из наиболее важных и интересных параметров:

# Items common to all shares (unless over-ridden on a per-share basis) [global] # Number of minutes of inactivity before client is disconnected # to avoid consuming resources. Most clients will automatically # reconnect so this is a good idea to enable. dead time = 10 # Don't let users connect as “root”, just-in-case. :-) invalid users = root # Specify the account for guest shares (shares that don't require # a password to connect to. This username must be a valid user # in the /etc/passwd file. guest account = guest # Specify where log files should be written to. The “%m” suffix # means that log files will be created in the format # log.machine-name (eg. “log.twixel”) log file = /usr/local/samba/logs/log.%m # Maximum size of log file, in Kilobytes. max log size = 1000 # Password level 3 means that case is not an issue when entering # passwords. A little less secure than level 1 or 2 would be, # but seems to be a fair compromise for user convenience. password level = 3 # Specify that all shares should appear in the browse list # (override any you don't want on a per-share basis). browseable = yes # If this is enabled, you can see active connections using the # “smbstatus” command. status = yes # The level of debugging information that is recorded in the log # files. Higher values generate more information (which is # probably not very useful, most of the time). debug level = 2 # This will send any Windows-style “POPUP” messages received on # the server to the postmaster by e-mail. Not very useful, but # an interesting demonstration of what can be accomplished. message command = /bin/mail -s 'Message from %f on %m' postmaster < %s; rm %s & # This is a form of caching that, when enabled, may improve # performance when reading files. read prediction = true # A list of services that should be added automatically to the # browse-list. auto services = cdrom # The location of your “printcap” file, a text file containing # definitions for your printers. printcap name = /etc/printcap # If enabled all printers in the /etc/printcap file will be # loaded into the browse-list. load printers = yes # The print command by which data is spooled to a printer under Linux. print command = lpr -r -P%p %s # The print command by which job queue information (printer status) # can be obtained. lpq command = lpq -P%p # The print command by which unwanted print jobs can be deleted # from the queue. lprm command = lprm -P%p %j # The level at which Samba advertises itself for browse elections. # Currently set to a high value to give it an even “foot-hold” with # any swarmy NT servers on the network. :-) os level = 34 # These are user's personal shares. If the client's username matches on the # server, they can access their home directory (provided they enter the # correct password). [homes] # The comments appear in the browse list. comment = Home Directories # This matches the username of the client to that of the share. # If they do not match, no share will be displayed in the browse # list, or available to connect to. user = %S # The path to the share. For example, “smithj” would map to # “/home/smithj” path = /home/%S # If enabled, allow read/write access to the shares. writeable = yes # Just an inverted synonym for “writeable”. We don't *really* need # to use both. :-) readonly = no # Keep this disabled so that a password is required to access these # shares. public = no # We don't want this share (after all, it is private) to appear in # the browse-list of other users. browseable = no # This is a publicly available print share, called “hp_laser”. It appears # on the browse lists and can be accessed without a password by any client. [hp_laser] # The comment that appears in the browse-list. comment = Main office printer (HP Laserjet 400) # The username that this share is accessed as (guest means all users). user = guest # All generated print files will first be created in the /tmp # directory. path = /tmp # Do not allow file creation except through print spooling. writeable = no # Set permissions accordingly -- root access to print jobs only. create mode = 0700 # If this is enabled a password is not required to access the share. public = yes # This should be enabled to indicate that this is a printer share. printable = yes # Here is a service providing access to the CD-ROM device. [cdrom] comment = Shared CD-ROM drive on Linux user = guest path = /cdrom writeable = no read only = true browseable = yes public = yes guest ok = yes

Tip

Совет: Недавние версии Samba, начиная с 2.0, имеют утилиту настройки через web ``swat'', которая делает процесс намного больше дружественным. Утилита слушает TCP порт 901 Вашего сервера, так что, чтобы все настроить укажите в браузере адрес сервера и порт 901:

mydomain.name:901

(Конечно, чтобы использовать SWAT нужен запущенный web-сервер, например Apache. См. детали в разделе Администрирование Web-сервера и HTTP Proxy.)

Последние версии Samba также приобрели много дополнительных возможностей по сравнению с версиями ниже 2.0. Стоит обновить пакет.

Клиент должен иметь стек TCP/IP для соединения с разделяемыми ресурсами. Далее, для просмотра, TCP/IP должен быть привязан к NETBEUI. Под Windows 95 это может быть конфигурировано из раздела “Network” в Control Panel.

После настройки клиента, ресурсы сервера должны появиться в “Network Neighborhood” (или аналогичной системе просмотра, если используется не Windows 95/NT). Замечание переводчика: клиенты SMB доступны также под DOS, OS/2, Linux, Solaris и FreeBSD. Вы можете подсоединять сетевые диски из network neighborhood, или указывать полный путь к ресурсам (то есть, “\\mail\cdrom”). Если нужен пароль для доступа к ресурсу, он будет запрошен.

Дополнительная информация о Samba есть на Samba Home Page по адресу: http://samba.anu.edu.au/samba. Замечание переводчика: в рамках проекта Russian LDP планируется перевод документации на Samba.