Директива writable установлена в значении по для того, чтобы в буферный каталог принтера (спул) могли записываться только печатаемые файлы.
Возможно, вам потребуется разрешить печать только одному или нескольким определенным пользователям на каком-то определенном принтере. Сделать это можно так, как это показано в листинге 12.7.
Листинг 12.7. Разрешение печати определенному пользователю
[admprn]
valid user = root admin administator
path = /home/admin
printer = canon
public = no
writeable = no
printable = yes
Подключение
к Windows-компьютеру сетевого принтера, расшаренного сервером или рабочей станцией под управлением Linux, осуществляется точно так же, как подключение обыкновенного сетевого принтера. В операционной системе Windows 98 для этого проделайте следующее:
1. Выполните команду меню Пуск→Настройка→Принтеры.
2. Активизируйте мастера Установки принтера.
3. Выберите тип принтера: сетевой.
4. Укажите путь к принтеру или нажмите на кнопку Обзор для автоматического выбора ресурса.
5. Далее установка сетевого принтера аналогична установке локального.
12.2.5. Доступ к Windows-принтеру с компьютера, работающего под Linux
Настройки сетевого принтера находятся в файле
/etc/printcap
. Примерное содержание этого файла с комментариями приведено в листинге 12.8.
Листинг 12.8. Файл /etc/prtntcap
# //nt_ws1/hp5m via smbprint
#
lp:\
# описание принтера
:cm=HP 5MP Postscript hp5in on nt_ws1:\
# имя устройства, открываемого для вывода
:lp=/dev/lp0:\
# каталог спула принтера (на локальной машине)
:sd=/var/spool/lpd/lp:\
# файл учета использования принтера
:af=/var/spool/lpd/lp/acct:\
# максимальный размер файла. Значение 0 означает отсутствие ограничений
:mx# 0:\
# имя входного фильтра
:if=/usr/bin/smbprint:
В пакет Samba входит сценарий smbprint. С помощью этого сценария можно распечатывать документы на сетевом принтере, используя сервисы SMB. Возможно, в состав вашего пакета он не входит, поэтому я воссоздал его в листинге 12.9. Этот листинг частично позаимствован из руководства по пакету Samba.
Листинг 12.9. Сценарий smbprint
#!/bin/sh -х
# (с) Andrew Tridgell
# Этот скрипт является фильтром для системы печати,
#
использующей
# файл /etc/printcap
# Он использует программу smbclient для печати файла на
# сетевом принтере,
# который подключен к рабочей станции Windows.
#
#
# Эта запись создает unix-принтер, названный "smb",
# который будет печатать с помощью этого сценария. Вам
# необходимо создать каталог спула /usr/spool/smb с
# соответствующими правами и владельцем
# smb:lp=/dev/null:sd=/usr/spool/smb:sh:
# if=/usr/local/samba/smbprint
# Далее сценарий был изменен Майклом Гамильтоном
# так что сервер, сервис и пароль могут быть считаны из
# файла
# /usr/var/spool/lpd/PRINTNAME/.config
#
# Для того, чтобы это работало, запись в /etc/printcap
# должна включать файл учета использования (af=...):
#
#cdcolour:\
# :cm=CD IBM Colorjet on 6th:\
# :sd=/var/spool/lpd/cdcolour:\
# :af=/var/spool/lpd/cdcolour/acct:\
# :if=/usr/local/etc/smbprint:\
# :mx=0:\
# :lp=/dev/null:
#
# Файл /usr/var/spool/lpd/PRINTNAME/.config должен
# содержать
# server=PC_SERVER
# serviсe=PR_SHARENAME
# password="password"
#
#Например,
# server=PAULS_PC
# service=CJET_371
# password=""
#
# Файл для отладочной информации, можно изменить на /dev/null
#
logfile=/tmp/smb-print.log
spool_dir=/var/spool/lpd/lp
config_file=$spool_dir/.config
eval `cat $config_file`
echo "server $server, service $service" >> $logfile