这个算是rhce课程的篇外篇,Samba除了提供文件共享外,也可以像windows下的共享一样提供打印机共享。在进一步深入之前,先了解下CUPS服务,cups作为Linux下管理打印的服务应用,其支持IPP、LPD、SMB和JetDirect接口。cups服务本身也可以实现打印共享,不过在windows下增加cups共享打印机的步骤相对不麻烦,可以利用Samba先连接本地cups服务,再由samba提供打印共享服务。
一、cups服务配置
1、安装cups相关软件包
# yum -y install cups
2、编辑cups服务配置
# vim /etc/cups/cupsd.conf #将Listen localhost:631修改为 Listen 0.0.0.0:631 //监听所有IP #默认是不允许远程主机浏览器打开访问的,这里将allow、deny顺序对调下,或者后面加allow from * <Location /> #Order allow,deny //默认配置部分 Order deny,allow //修改后的内容 </Location> #设置admin项只允许某台主机或某段主机访问 <Location /admin> Order deny,allow deny from all allow from 192.168.1.* </Location>
3、防火墙配置
# firewall-cmd --permanent --add-port=631/tcp
# firewall-cmd --reload
4、浏览器配置新增打印机
可以通过lpadmin命令新增打印机,也可以通过浏览器输入http://IP:631后访问,如下图:
通过add printer增加打印机后(增加时会让输入主机的root用户名和密码),可以通过最上面的prints项,查看当前打列机列表:
二、Samba服务配置
按照上两篇的介绍开启Samba服务,在global 全局配置中开启如下两行(默认这两行是开启的):
security = user
map to guest = Bad User
load printers = yes
cups options = raw
并在共享项中启用如下部分(默认配置中也存在):
[printers] comment = All Printers path = /var/spool/samba browseable = no guest ok = no writable = no printable = yes
配置完成后,systemctl retart nmb smb ,重启这两个服务使新的配置生效。在windows主机上通过运行中输入\\192.168.1.200即可查看当前的共享项,可以从中找到当前共享的打印主机列表:
双击打印机,确定安装相应的驱动后,就可以在本机选择打印机并进行打印。
总结:
目前由于打印机成本较低,主流的打印机都是网络打印机,一般情况下是用不到samba+cups进行配置的,这种方案主要是用在公司具有多台打印机、USB的、串口的、网络的,而多个不同的部分可能有具有不可跨越的IP段,这时候可以通过一台samba+cups服务器通过配置多块网卡和接口的方式实现集中式的管理,这样各个不同的部分都可以连接使用。另外打印机部分也同样适用权限控制。