这个算是rhce课程的篇外篇,Samba除了提供文件共享外,也可以像windows下的共享一样提供打印机共享。在进一步深入之前,先了解下CUPS服务,cups作为Linux下管理打印的服务应用,其支持IPP、LPD、SMB和JetDirect接口。cups服务本身也可以实现打印共享,不过在windows下增加cups共享打印机的步骤相对不麻烦,可以利用Samba先连接本地cups服务,再由samba提供打印共享服务。

一、cups服务配置

1、安装cups相关软件包

1# yum -y install cups

2、编辑cups服务配置

 1# vim /etc/cups/cupsd.conf
 2#将Listen localhost:631修改为
 3Listen 0.0.0.0:631           //监听所有IP
 4#默认是不允许远程主机浏览器打开访问的,这里将allow、deny顺序对调下,或者后面加allow from *
 5<location></location>
 6  #Order allow,deny   //默认配置部分
 7  Order deny,allow     //修改后的内容
 8
 9#设置admin项只允许某台主机或某段主机访问
10<location>
11  Order deny,allow
12  deny from all
13  allow from  192.168.1.*
14</location>

3、防火墙配置

1# firewall-cmd --permanent --add-port=631/tcp
2# firewall-cmd --reload

4、浏览器配置新增打印机

可以通过lpadmin命令新增打印机,也可以通过浏览器输入http://IP:631后访问,如下图:

add-print

通过add printer增加打印机后(增加时会让输入主机的root用户名和密码),可以通过最上面的prints项,查看当前打列机列表:

printers-list

二、Samba服务配置

按照上两篇的介绍开启Samba服务,在global 全局配置中开启如下两行(默认这两行是开启的):

1security = user
2map to guest = Bad User
3load printers = yes
4cups options = raw

并在共享项中启用如下部分(默认配置中也存在):

1[printers]
2    comment = All Printers
3    path = /var/spool/samba
4    browseable = no
5    guest ok = no
6    writable = no
7    printable = yes

配置完成后,systemctl retart nmb smb ,重启这两个服务使新的配置生效。在windows主机上通过运行中输入\\192.168.1.200即可查看当前的共享项,可以从中找到当前共享的打印主机列表:

windows-samba-print

双击打印机,确定安装相应的驱动后,就可以在本机选择打印机并进行打印。

总结:

目前由于打印机成本较低,主流的打印机都是网络打印机,一般情况下是用不到samba+cups进行配置的,这种方案主要是用在公司具有多台打印机、USB的、串口的、网络的,而多个不同的部分可能有具有不可跨越的IP段,这时候可以通过一台samba+cups服务器通过配置多块网卡和接口的方式实现集中式的管理,这样各个不同的部分都可以连接使用。另外打印机部分也同样适用权限控制。