特殊:Badtitle/NS100:NetwarePrintingFromUbuntu
文章出处: |
{{#if: | {{{2}}} | https://help.ubuntu.com/community/NetwarePrintingFromUbuntu }} |
点击翻译: |
English {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/af | • {{#if: php5|Afrikaans| [[::NetwarePrintingFromUbuntu/af|Afrikaans]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/ar | • {{#if: php5|العربية| [[::NetwarePrintingFromUbuntu/ar|العربية]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/az | • {{#if: php5|azərbaycanca| [[::NetwarePrintingFromUbuntu/az|azərbaycanca]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/bcc | • {{#if: php5|جهلسری بلوچی| [[::NetwarePrintingFromUbuntu/bcc|جهلسری بلوچی]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/bg | • {{#if: php5|български| [[::NetwarePrintingFromUbuntu/bg|български]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/br | • {{#if: php5|brezhoneg| [[::NetwarePrintingFromUbuntu/br|brezhoneg]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/ca | • {{#if: php5|català| [[::NetwarePrintingFromUbuntu/ca|català]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/cs | • {{#if: php5|čeština| [[::NetwarePrintingFromUbuntu/cs|čeština]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/de | • {{#if: php5|Deutsch| [[::NetwarePrintingFromUbuntu/de|Deutsch]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/el | • {{#if: php5|Ελληνικά| [[::NetwarePrintingFromUbuntu/el|Ελληνικά]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/es | • {{#if: php5|español| [[::NetwarePrintingFromUbuntu/es|español]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/fa | • {{#if: php5|فارسی| [[::NetwarePrintingFromUbuntu/fa|فارسی]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/fi | • {{#if: php5|suomi| [[::NetwarePrintingFromUbuntu/fi|suomi]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/fr | • {{#if: php5|français| [[::NetwarePrintingFromUbuntu/fr|français]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/gu | • {{#if: php5|ગુજરાતી| [[::NetwarePrintingFromUbuntu/gu|ગુજરાતી]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/he | • {{#if: php5|עברית| [[::NetwarePrintingFromUbuntu/he|עברית]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/hu | • {{#if: php5|magyar| [[::NetwarePrintingFromUbuntu/hu|magyar]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/id | • {{#if: php5|Bahasa Indonesia| [[::NetwarePrintingFromUbuntu/id|Bahasa Indonesia]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/it | • {{#if: php5|italiano| [[::NetwarePrintingFromUbuntu/it|italiano]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/ja | • {{#if: php5|日本語| [[::NetwarePrintingFromUbuntu/ja|日本語]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/ko | • {{#if: php5|한국어| [[::NetwarePrintingFromUbuntu/ko|한국어]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/ksh | • {{#if: php5|Ripoarisch| [[::NetwarePrintingFromUbuntu/ksh|Ripoarisch]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/mr | • {{#if: php5|मराठी| [[::NetwarePrintingFromUbuntu/mr|मराठी]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/ms | • {{#if: php5|Bahasa Melayu| [[::NetwarePrintingFromUbuntu/ms|Bahasa Melayu]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/nl | • {{#if: php5|Nederlands| [[::NetwarePrintingFromUbuntu/nl|Nederlands]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/no | • {{#if: php5|norsk| [[::NetwarePrintingFromUbuntu/no|norsk]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/oc | • {{#if: php5|occitan| [[::NetwarePrintingFromUbuntu/oc|occitan]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/pl | • {{#if: php5|polski| [[::NetwarePrintingFromUbuntu/pl|polski]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/pt | • {{#if: php5|português| [[::NetwarePrintingFromUbuntu/pt|português]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/ro | • {{#if: php5|română| [[::NetwarePrintingFromUbuntu/ro|română]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/ru | • {{#if: php5|русский| [[::NetwarePrintingFromUbuntu/ru|русский]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/si | • {{#if: php5|සිංහල| [[::NetwarePrintingFromUbuntu/si|සිංහල]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/sq | • {{#if: php5|shqip| [[::NetwarePrintingFromUbuntu/sq|shqip]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/sr | • {{#if: php5|српски / srpski| [[::NetwarePrintingFromUbuntu/sr|српски / srpski]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/sv | • {{#if: php5|svenska| [[::NetwarePrintingFromUbuntu/sv|svenska]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/th | • {{#if: php5|ไทย| [[::NetwarePrintingFromUbuntu/th|ไทย]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/tr | • {{#if: php5|Türkçe| [[::NetwarePrintingFromUbuntu/tr|Türkçe]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/vi | • {{#if: php5|Tiếng Việt| [[::NetwarePrintingFromUbuntu/vi|Tiếng Việt]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/yue | • {{#if: php5|粵語| [[::NetwarePrintingFromUbuntu/yue|粵語]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/zh | • {{#if: php5|中文| [[::NetwarePrintingFromUbuntu/zh|中文]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/zh-hans | • {{#if: php5|中文(简体)| [[::NetwarePrintingFromUbuntu/zh-hans|中文(简体)]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}NetwarePrintingFromUbuntu}}/zh-hant | • {{#if: php5|中文(繁體)| [[::NetwarePrintingFromUbuntu/zh-hant|中文(繁體)]]}}|}} |
{{#ifeq:php5|:NetwarePrintingFromUbuntu|请不要直接编辑翻译本页,本页将定期与来源同步。}} |
{{#ifexist: :NetwarePrintingFromUbuntu/zh | | {{#ifexist: NetwarePrintingFromUbuntu/zh | | {{#ifeq: {{#titleparts:NetwarePrintingFromUbuntu|1|-1|}} | zh | | }} }} }} {{#ifeq: {{#titleparts:NetwarePrintingFromUbuntu|1|-1|}} | zh | | }}
Introduction
This page covers only how to install a Netware Printer Queue in Ubuntu.
What is Needed
perl - Larry Wall's Practical Extraction and Report Language, needed for ncp script.
ipx - utilities to configure the kernel ipx interface.
ncpfs - a set of utilities to use resources from NetWare servers, in particular nprint to print to a netware printer queue.
kdeprint - print system for KDE, this is a very nice tool.
NCP script
Create the script /usr/lib/cups/backend/ncp
#! /usr/bin/perl -w # # NCP backend for CUPS # # Copyright (C) 2001 Sergey Vlasov <[email protected]> # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the Free # Software Foundation; either version 2 of the License, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # use strict; # Configurable parameters # nprint program name (you may want to put the full pathname here) my $NPRINT = "nprint"; # Home directory (the .nwclient file will be searched there) my $NCP_HOME = "/root"; # End of configurable parameters # No arguments means show available devices if (scalar(@ARGV) == 0) { print "network ncp \"Unknown\" \"NetWare Printer via NCP\"\n"; exit 0; } # Check number of arguments if (scalar(@ARGV) < 5 || scalar(@ARGV) > 6) { print STDERR "ERROR: ncp job user title copies options [filename]\n"; exit 1; } my ($job, $user, $title, $copies, $options, $file) = @ARGV; my $printer = $ENV{"DEVICE_URI"}; # These variables will hold the URI parts my ($server, $queue, $nwuser, $nwpass); # Parse the printer URI into parts for ($printer) { # ncp://USERNAME:PASSWORD@SERVER/QUEUE m|^ncp://(.+):(.*)@(.+)/(.+)| && do { $nwuser = $1; $nwpass = $2; $server = $3; $queue = $4; last; }; # ncp://USERNAME@SERVER/QUEUE m|^ncp://(.+)@(.+)/(.+)| && do { $nwuser = $1; $server = $2; $queue = $3; last; }; # ncp://SERVER/QUEUE m|^ncp://(.+)/(.+)| && do { $server = $1; $queue = $2; last; }; } # Check if the URI was parsed correctly if (not defined $server or not defined $queue) { print STDERR "ERROR: malformed printer URI\n"; exit 1; } # Unquote the URI parts (must be done after splitting) $nwuser =~ s/%([a-fA-F0-9]{2})/chr(hex($1))/ge if defined $nwuser; $nwpass =~ s/%([a-fA-F0-9]{2})/chr(hex($1))/ge if defined $nwpass; $server =~ s/%([a-fA-F0-9]{2})/chr(hex($1))/ge if defined $server; $queue =~ s/%([a-fA-F0-9]{2})/chr(hex($1))/ge if defined $queue; # Fixed part of the nprint command my @command = ($NPRINT, "-S", $server, "-q", $queue, "-N"); # Add "-U USERNAME" if specified if (defined $nwuser) { push @command, "-U"; push @command, $nwuser; } # Add "-P PASSWORD" if specified if (defined $nwpass) { push @command, "-P"; push @command, $nwpass; } # Append the print file name or "-" to read from stdin if (defined $file) { if ($file =~ /^-/) { # Avoid file names which look like switches $file = "./$file"; } push @command, $file; } else { push @command, "-"; } # nprint will read $HOME/.nwclient, so need to set it $ENV{"HOME"} = $NCP_HOME; # all is ready, run nprint (directly, without using shell) my $result = system { $command[0] } @command; # if not ok, print the error message in the format required by CUPS if ($result != 0) { print STDERR "ERROR: nprint exited with status $result\n"; exit 1; } # normal exit exit 0; Restart CUPS After changing this file, restart CUPS by running ...sudo /etc/init.d/cupsys restart or use the Services tool under Gnome menu System -> Administration.1. Add a printer definition, using kdeprint (Gnome menu System -> Preferences -> Printers). Select Other printer type. In the URl: type
ncp://COMPANY_FS/PRINTER_Q If at this point you don't see 'Netware Printer via ncp' then refer to 'NCP Script' above. Select the relevent printer etc. and you should have a working Netware Printer.Add a Netware Printer with Cups Web Interface
This needs an Administrator account. Please refer to NetworkPrintingWithUbuntu -> Ubuntu Client Machine for more info.# /etc/cups/cupsd.conf # Simple CUPS configuration file for a pure client machine: # which has: # - printers of its own, (and any local printers will be shared?) # - no need for security within the machine, ie a personal workstation # - a network connection to a local network, where it will find CUPS-controlled printer servers # Log general information in error_log - change "info" to "debug" for # troubleshooting... LogLevel warning # Administrator user group... SystemGroup lpadmin # Only listen for connections from the local machine. # These settings are configured in /etc/cups/cups.d/ports.conf so that # changing them does not require to change this file. # Listen localhost:631 # Listen /var/run/cups/cups.sock # This setup also allows access to the "Administrative tasks" system at # http://localhost:631 # File based on Ubuntu 5.10 (Breezy Badger) (Linux version 2.6.12-10-386) # Server Directives are explained in http://localhost:631/sam.html # 25/04/2006 # [email protected] ConfigFilePerm 0600 LogLevel info Printcap /var/run/cups/printcap RunAsUser Yes #Listen 127.0.0.1:631 #Listen 10.0.0.0/8:631 #Listen 128.0.0.0/16:631 #Listen 192.168.0.0/24:631 Port 631 # Show shared printers on the local network. # The 'Browsing' setting is configured in /etc/cups/cups.d/browse.conf # so that changing it does not require to change this file. # Browsing Off BrowseOrder allow,deny BrowseAllow @LOCAL BrowseAddress @LOCAL # Restrict access to the server... # <Location /> # Order allow,deny # Allow localhost # Allow @LOCAL #</Location> <Location /> AuthType None Order Deny,Allow Deny From All Allow From @LOCAL </Location> <Location /jobs> AuthType None Order Deny,Allow Deny From All Allow From @LOCAL </Location> <Location /printers> AuthType None Order Deny,Allow Deny From All Allow From @LOCAL </Location> # Restrict access to the admin pages... #<Location /admin> # Order allow,deny # Allow localhost # </Location> <Location /admin> AuthType None Order Deny,Allow Deny From All Allow From @LOCAL </Location> # Default authentication type, when authentication is required... DefaultAuthType Basic # Restrict access to configuration files... <Location /admin/conf> AuthType Basic Require user @SYSTEM Order allow,deny Allow localhost </Location> # Set the default printer/job policies... <Policy default> # Job-related operations must be done by the owner or an adminstrator... <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job CUPS-Move-Job> Require user @OWNER @SYSTEM Order deny,allow </Limit> # All administration operations require an adminstrator to authenticate... <Limit Pause-Printer Resume-Printer Set-Printer-Attributes Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After CUPS-Add-Printer CUPS-Delete-Printer CUPS-Add-Class CUPS-Delete-Class CUPS-Accept-Jobs CUPS-Reject-Jobs CUPS-Set-Default> AuthType Basic Require user @SYSTEM Order deny,allow </Limit> # Only the owner or an administrator can cancel or authenticate a job... <Limit Cancel-Job CUPS-Authenticate-Job> Require user @OWNER @SYSTEM Order deny,allow </Limit> <Limit All> Order deny,allow </Limit> </Policy> # Include files in /etc/cups/conf.d Include /etc/cups/cups.d/ports.conf Include /etc/cups/cups.d/browse.conf To access the Cups Web Interface goto http://localhost:631/
AccessingNetwareShares CategoryNetworking CategoryDocumentation