Денис Колисниченко - Linux-сервер своими руками Страница 66

Тут можно читать бесплатно Денис Колисниченко - Linux-сервер своими руками. Жанр: Компьютеры и Интернет / Программное обеспечение, год -. Так же Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте Knigogid (Книгогид) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.

Денис Колисниченко - Linux-сервер своими руками читать онлайн бесплатно

Денис Колисниченко - Linux-сервер своими руками - читать книгу онлайн бесплатно, автор Денис Колисниченко

Использовать программу smbclient не очень удобно. Гораздо удобнее использовать программу smbmount, которая умеет монтировать удаленный общий ресурс как обычную файловую систему. При этом впоследствии использовать общий ресурс становится гораздо приятнее и удобнее. Ниже приведен пример команды, которая монтирует общий ресурс customers компьютера nt, используя имя пользователя user. Точка монтирования — каталог /mnt/customers, идентификатор пользователя (UID) равен 500, а группы (GID) — 100:

smbmount //nt//customers –U user –c 'mount /mnt/customers –u 500 –g 100'

Для этих же целей можно воспользоваться командой:

smbmount //nt/customers/ /mnt/customers –U user

Примечание. Использовать команду smbmount имеет право только пользователь root. Для того, чтобы обычный пользователь мог использовать эту программу, следует установить для нее атрибут Setuid root, однако такое решение является небезопасным. Выходом из этого положения может послужить запуск программы smbmount при загрузке системы. Добавьте в сценарии автозагрузки вызов программы smbmount для монтирования файловых систем совместного использования, с которыми вы работаете чаще всего. После этого обычные пользователи смогут работать с удаленными ресурсами как с обычной локальной файловой системой. 

Рис. 9.4. Общие ресурсы

Просмотреть общие ресурсы компьютера можно с помощью опции –L (см. рис. 9.4).

Список Browse list (см. рис. 9.4) показывает другие smb-сервера в сети с доступными ресурсами. Опция –I разрешает программе smbclient работать с именами DNS. Например, если домен называется domain.ru, то просмотреть общие ресурсы компьютера nt_ws1 можно командой:

$ smbclient –L –I nt ws1.domain.ru

9.4. Доступ к принтеру Linux для Windows-машин

Для обеспечения поддержки печати мы уже сделали почти все возможное. Параметр секции [global] load printers загружает принтеры из файла /etc/printcap (см. листинг 9.1). Используется система печати BSD. Теперь осталось определить секцию [printers] файла smb.conf (см. листинг 9.5). В этой секции задаются глобальные параметры для всех принтеров, поэтому нет необходимости указывать их отдельно для каждого принтера.

Листинг 9.5. Секция [printers]

[printers]

comment = All Printers

security=server

path = /var/spool/lpd/lp

browseable = no

printable = yes

public = yes

writable = no

create mode = 0700

Некоторые параметры, используемые в этой секции (browseable, writable, comment), имеют те же значения, что и в секции [homes]. Параметр path задает буферный каталог, в который файлы будут копироваться перед печатью (так называемый спул принтера). Параметр public в значении yes разрешает печать из-под гостевой учетной записи, то есть всем желающим. Чтобы запретить печать из-под гостевой учетной записи укажите public=no. В этом случае доступ к принтеру будут иметь только зарегистрированные на сервере пользователи. Вместо параметра public иногда используется его синоним — параметр guest ok. Параметр writable установлен в значении по для того, чтобы в буферный каталог принтера (спул) могли записываться только печатаемые файлы.

Возможно, вам потребуется разрешить печать только одному или нескольким определенным пользователям на каком-то определенном принтере. Сделать это можно так, как это показано в листинге 9.6.

Листинг 9.6. Разрешение печати определенному пользователю

[admprn]

valid user = root admin administrator

path = /home/admin

printer = canon

public = no

writeable = no

printable = yes

Подключение к Windows-компьютеру сетевого принтера, подключенного к Linux-серверу или Linux-станции, осуществляется аналогично подключению обыкновенного сетевого принтера, подключенного к рабочей станции Windows. В операционной системе Windows 98 для этого проделайте следующие действия:

1. Выполните команду меню Пуск→Настройка→Принтеры.

2. Активизируйте мастера Установки принтера.

3. Выберите тип принтера: сетевой.

4. Укажите путь к принтеру или нажмите на кнопку «Обзор» для автоматического выбора ресурса (см. рис. 9.5).

5. Далее установка сетевого принтера аналогична установке локального. 

Рис. 9.5. Подключение сетевого принтера

9.5. Доступ к Windows-принтеру с компьютеров, работающих под Linux

Прежде всего, вам нужно создать правильные записи в файле /etc/printcap. С форматом этого файла вы можете ознакомиться в листинге 9.7.

Листинг 9.7. Файл printcap

#  /etc/printcap

#

#  //nt_wsl/hp5m via smbprint

#

lp:\

# просто комментарий

 :cm=HP 5MP Postscript hp5m on nt_wsl:\

# имя устройства, открываемого для вывода

 :lp=/dev/lp0:\

# директория спула принтера (на локальной машине)

 :sd=/var/spool/lpd/lp:\

# файл учета использования принтера

 :af=/var/spool/lpd/lp/acct:\

#  максимальный размер файла.

#  Если указано, значение «ноль», то ограничение снимается

 :mx#0:\

# имя фильтра

 :if=/usr/bin/smbprint:

В листинге 9.7 приведено (в комментариях) описание полей файла printcap, но, я думаю, не помешает отдельно привести их перечень:

cm — задает комментарий;

lp —  имя устройства, открываемого для вывода;

sd — директория спула принтера на локальной машине;

af — файл учета использования принтера;

mx — максимальный размер файла. Если указано значение «ноль», то ограничение снимается;

if — имя входного фильтра.

Возвращаясь к настройке доступа, убедитесь, что каталог для спула принтера существует и разрешен для записи. Также нужно указать существующее устройство для вывода. В листинге 9.7 этим устройством является /dev/lp0. В пакет Samba входит сценарий smbprint. С помощью этого сценария можно распечатывать документы на сетевом принтере, используя сервисы SMB. Возможно, в состав вашего пакета он не входит, поэтому я воссоздал его в листинге 9.8. Этот листинг частично позаимствован из руководства по пакету Samba.

Листинг 9.8. Сценарий smbprint

#!/bin/sh –x

# (с) Andrew Tridgell

# Этот скрипт является фильтром для системы печати, использующей

# файл /etc/printcap

# Он использует программу smbclient для печати файла на сетевом

# принтере, который подключен к рабочей станции Windows.

#

# smb:lp=/dev/null:sd=/usr/spool/smb:sh:if=/usr/local/samba/smbprint

#

# Запись создает unix-принтер, названный "smb", который будет

# печатать с помощью этого скрипта. Вам необходимо создать директорию

# спула /usr/spool/smb с соответствующими правами и владельцем

# Установите здесь имя сервера и принтер, на который вы хотите печатать.

# Далее скрипт был изменен Майклом Гамильтоном (Michael Hamilton)

# так что сервер, сервис и пароль могут быть считаны из файла

# /usr/var/spool/lpd/PRINTNAME/.config

#

# Для того, чтобы это работало, запись в /etc/printcap должна

# включать файл учета использования (af=…):

#

#cdcolour:\

# :cm=CD IBM Colorjet on 6th: \

# :sd=/var/spool/lpd/cdcolour: \

# :af=/var/spool/Ipd/cdcolour/acct: \

# :if=/usr/local/etc/smbprint:\

# :mx=0:\

# :lp=/dev/null:

#

# Файл /usr/var/spool/lpd/PRINTNAME/.config должен содержать

# server=PC_SERVER

# service=PR_SHARENAME

# password="password"

#

# Например,

# server=PAULS_PC

# service=CJET_371

# password=""

#

# Файл для отладочной информации, можно изменить на /dev/null

#

logfile=/tmp/smb-print.log

# logfile=/dev/null

spool_dir=/var/spool/Ipd/lp

config_file=$spool_dir/. config

eval `cat $config_file `

echo "server $server, service $service" >> $logfile

(

 echo translate

 echo "print –"

 cat

) | /usr/bin/smbclient "\\\\$server\\$service" $password –U $user –N –P >> $logfile

Теперь вы можете печатать на сетевом принтере. Но, тем не менее, я все же рекомендую прочитать руководство по пакету Samba для получения более подробной информации о печати на сетевых принтерах.

9.6. Пример файла smb.conf

В листинге 9.9 приведен пример моего файла /etc/smb.conf. Скорее всего он и у вас тоже будет корректно работать.

Листинг 9.9. Файл smb.conf

[global]

workgroup = WORK

comment = Linux Server

guest account = guest

security = share

printing = bsd

printcap name = /etc/printcap

load printers = yes

client code page = 866

character set = koi8-r

encrypt passwords = Yes

log file = /var/log/samba/log.%m

max log size = 50

#  Следующие строки я закомментировал, потому что они характерны

Перейти на страницу:
Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.
Комментарии / Отзывы
    Ничего не найдено.