红联Linux门户
Linux帮助

Linux中Samba搭建及文件共享打印

发布时间:2015-05-13 15:51:45来源:linux网站作者:wqianyniaimonly

samba简介
SMB(ServermessagesBlock,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOSoverTCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
samba:这个套件主要包含了SAMBA的主要daemon档案(smbd及nmbd)、SAMBA的文件档(document)、以及其它与SAMBA相关的logrotate设定文件及开机预设选项档案等;
samba-common:这个套件则主要提供了SAMBA的主要设定档(smb.conf)、smb.conf语法检验的测试程序(testparm)等等;
samba-client:这个套件则提供了当Linux做为SAMBAClient端时,所需要的工具指令,例如挂载SAMBA档案格式的执行档smbmount等等。
不过,在Mandrake9.1当中,则将samba这个套件又分为samba-server与samba-doc两个套件,所以在MDK9.1则有四个套件需要安装:samba-server,samba-doc,samba-common,samba-client。

/etc/samba/smb.conf:这是Samba的主要配置文件,基本上,咱们的Samba就仅有这个配置文件而已,且这个配置文件本身就是很详细的说明文件了,请用vim去查阅它吧!主要的设定项目分为服务器的相关设定(global),如工作组、NetBIOS名称与密码等级等,以及分享的目录等相关设定,如实际目录、分享资源名称与权限等等两大部分。
选项:
interfaces=loeth0192.168.12.2/24192.168.13.2/24监听端口安全控制
hostsallow=127.192.168.12.192.168.13.限制客户端
logfile=/var/log/samba/%m.log%m记录来访的机器的机器名字或IP地址
maxlogsize=50日志大小是50K,当容量满了做日志轮训‘0’表示无限制

ShareDefinitions共享的定义
[printers]共享的名称
comment=AllPrinters共享的描述
path=/var/spool/samba共享所对应的物理路径
browseable=no共享资源是否可以查看
guestok=no来宾不可以访问
writable=no是否可写
printable=yes是否打印
public=yes匿名可以访问
writelist=+staff可写用户列表
validusers有效的用户软件包安装
·/etc/samba/lmhosts:早期的NetBIOSname需额外设定,因此需要这个lmhosts的NetBIOSname对应的IP檔。事实上它有点像是/etc/hosts的功能!只不过这个lmhosts对应的主机名是NetBIOSname喔!不要跟/etc/hosts搞混了!目前Samba预设会去使用你的本机名称(hostname)作为你的NetBIOSname,因此这个档案不设定也无所谓。

·/etc/sysconfig/samba:提供启动smbd,nmbd时,你还想要加入的相关服务参数。

·/etc/samba/smbusers:由于Windows与Linux在管理员与访客的账号名称不一致,例如:administrator(windows)及root(linux),为了对应这两者之间的账号关系,可使用这个档案来设定

·/var/lib/samba/private/{passdb.tdb,secrets.tdb}:管理Samba的用户账号/密码时,会用到的数据库档案

·/usr/share/doc/samba-<版本>:这个目录包含了SAMBA的所有相关的技术手册


Samba安装

1.[root@localhost~]#vim/etc/yum.repos.d/rhel-debuginfo.repo
2.图1

Linux中Samba搭建及文件共享打印

3.[root@localhost~]#yuminstallsamba
4.perl-Convert-ASN1依赖于这个软件包
5./etc/rc.d/init.d/smbsamba控制脚本
/usr/sbin/nmbd资源宣告
6./usr/sbin/smbd资源共享连接控制
7.[root@localhost~]#servicesmbstart
8.图2

Linux中Samba搭建及文件共享打印

Linux中Samba搭建及文件共享打印


案例:
共享名路径权限
Public/abc任何人ro
Smbzs/tmp/zhangsanzhangsanrwro
Smbls/tmp/lisilisirwro
1.[root@localhost~]#mkdir/abc//tmp/zhangsan/tmp/lisi
2.[root@localhost~]#useraddzhangsan
3.[root@localhost~]#useraddlisi
4.[root@localhost~]#chownzhangsan:zhangsan/tmp/zhangsan/
5.[root@localhost~]#chownlisi:lisi/tmp/lisi
6.[root@localhost~]#vim/etc/samba/smb.conf

Linux中Samba搭建及文件共享打印

7.[root@localhost~]#testparm语法测试
8.[root@localhost~]#servicesmbrestart
9.smbpasswd账号库必须有本地账号库
10.smbpasswd–a增加
11.–d禁用
12.–e启用
13.–x删除
14.[root@localhost~]#smbpasswd-azhangsan
15.[root@localhost~]#smbpasswd-alisi
16.图5

Linux中Samba搭建及文件共享打印

17.[root@localhosttmp]#chmod750lisi/


Linux作为客户端
1.[root@localhost~]#smbclient-L//共享文件windows的ip地址显示共享主机所共享的文件
2.[root@localhost~]#smbclient//共享文件windows的ip地址/-U某个用户

需要把windows共享的文件挂载到linux的客户端上面
临时挂载:
3.mkdir/mnt/dir
mount.cifs//service/file/mnt/dir-ousername=用户,password=‘密码’
永久挂载:
4.[root@localhost~]#vim/etc/fstab写入
5.//服务器地址/共享文件挂载点cifSUSErname=用户,password=密码00
6.这样在安全上面存在着安漏洞,当某个用户访问时候,账号密码很容易的就被盗取,这个时候,我们可以把这些用户和密码存放到某一个文件夹下面,访问的时候再从这里调用就可以了.
7.解决方法:
8.[root@localhost~]#vim/etc/f1写入username=user1
9.password=123
10.[root@localhost~]#chmod600/etc/f1
11.//服务器地址/共享文件挂载点cifscredentials(凭证)=/etc/f100
12.mount-a实现自动挂载


共享打印cups
案例:我需要让192.168.100.0/24这个网域可以使用打印机
·我需要让192.168.100.0/24及127.0.0.0/8可以管理CUPS系统
其他网络计算机也可以参与共享打印
[root@www~]#vim/etc/samba/smb.conf
[global]
#得要修改loadprinters的设定,然后新增几个数据
loadprinters=yes
cupsoptions=raw<==可支持来自Windows用户的打印作业
printcapname=cups
printing=cups<==与上面这两个在告知使用CUPS打印系统
[printers]
comment=AllPrinters
path=/var/spool/samba<==预设把来自samba的打印作业暂
时放置的队列
browseable=no<==不被外人所浏览啦!有权限才可浏

guestok=no<==与底下两个都不许访客来源与写入
(非文件系统)
writable=no
printable=yes<==允许打印很重要的一项工作!

[root@www~]#testparm<==若有错误,请自行处理一下
[root@www~]#/etc/init.d/smbrestart
[root@www~]#/etc/init.d/nmbrestart
[root@www~]#yumgroupinstall"PrintServer"
[root@www~]#vim/etc/cups/cupsd.conf

#1.让监听的接口开放在所有接口!
#Listenlocalhost:631<==约在第18行左右,改成如下:
Listen0.0.0.0:631

#2.让内部网域能够进行CUPS的浏览与管控
<Location/><==约在32行左右,新增能够让内网其他IP浏览者
Orderallow,deny
AllowFrom127.0.0.0/8
AllowFrom192.168.100.0/24
</Location>

<Location/admin><==约在39行左右,新增能够管理CUPS者
EncryptionRequired<==因为这里的关系,所以可能会用https://IP
Orderallow,deny
AllowFrom127.0.0.0/8
AllowFrom192.168.100.0/24
</Location>
[root@www~]#/etc/init.d/cupsstart
[root@www~]#chkconfigcupson


Linux下Samba服务端的搭建和客户端的使用:http://www.linuxdiyf.com/linux/11902.html

CentOS 6.4安装Samba(匿名)共享服务器:http://www.linuxdiyf.com/linux/11437.html

Ubuntu 14.04下安装Samba及SSH服务端的方法:http://www.linuxdiyf.com/linux/10215.html

Linux(RHEL5)下构建Samba文件共享服务器:http://www.linuxdiyf.com/linux/10931.html

Windows 7与Ubuntu 12.04通过Samba访问:http://www.linuxdiyf.com/linux/10815.html