一:samba简介:
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。samba是一个工具套件,在Unix上实现。SMB(Server
Message Block)协议,或者称之为NETBIOS/LanManager协议。SMB协议通常是被windows系列用来实现磁盘和打印机共享。samba服务器可以实现
windows主机和linux主机共享资源互访的功能,即在windows上可以通过网上邻居访问linux主机上共享的samba服务器共享文件夹,linux主机同样可以使
用samba客户端访问windows主机共享的文件夹,当然,linux主机之间也可以使用samba互相访问共享资源。
二:samba执行文件分为服务器和客户端命令:
(1)smbd与nmbd命令。这两个执行命令为samba开启守护进程命令。每次启动samba服务器时都会使用到这两个执行文件。smbd使用tcp的139和445端
口,主要用户资源共享和连接控制;nmbd使用udp的137和138端口,主要宣告资源。
(2)testparm命令。当配置玩/etc/samba/smb.conf文件后,使用该命令查看配置文件中服务器所设定的参数与smb.conf的设定项目是否正确。
(3)smbpasswd命令。如果samba服务器需要规定使用者的账户与密码,那么需要使用该命令来创建。此命令用来指定samba的用户名和密码。需要指出的
是,必须首先创建本低用户,然后使用smbpasswd将其添加到samba的账号库中,smbpasswd的参数有:
-a新增一个使用者
-d禁止一个使用者
-e恢复使用者
-x从smbpasswd中删除使用者
(4)smbclient命令。当linux主机作为客户端查看其它linux(或windows)主机共享目录时,就需要使用smbclient命令
(5)smbmount命令。windows操作系统可以设定“网络磁盘驱动器”来连接到共享目录,在linux系统上可以通过使用smbmount命令来将远程主机分享
的文件与目录挂载到自己的linux主机上(也可以使用mount)
三:如何访问samba服务器:
在windows上访问samba server:
1.【网上邻居】搜索计算机
2.网上邻居
3.unc路径 \\对方地址或者名字\共享名字
4.映射网络驱动器
5.net use net share
在linux上访问samba server
1:smbclient 与samba服务器断开连接后需要重新连接
2:smbmount 直接访问挂载点(分为手动挂载和自动挂载)
浅析samba配置文件:/etc/samba/smb.conf
[root@lyt ~]# mkdir /mnt/cdrom
[root@lyt ~]# mount /dev/cdrom /mnt/cdrom/
[root@lyt ~]# cd /mnt/cdrom/Server/
[root@lyt Server]# yum install samba -y #使用yum安装samba服务器
[root@lyt Server]# rpm -ql samba-common |less #查看samba-common的安装路径,此包包含了samba服务器的主配置文档
[root@lyt Server]# service smb start #启动samba服务器,它的控制脚本是smb
[root@lyt ~]# chkconfig smb on #设置开机自动启动
[root@lyt Server]# vim /etc/samba/smb.conf #编辑samba服务的配置文件
[root@lyt Server]# service smb restart
[root@lyt Server]# vim /etc/samba/smb.conf
[root@lyt Server]# service smb restart
[root@lyt Server]# vim /etc/samba/smb.conf
案例:搭建samba服务器,创建共享名public,物理路径为/abc,任何人都有访问的权利;创建共享名smbzs,物理路径为/zhangsan,只有张三有
访问和修改的权限;:创建共享名smbls,物理路径为/lisi,只有李四自己有访问和修改的权限;
1:[root@lyt Server]# vim /etc/samba/smb.conf
[root@lyt Server]# service smb restart #重启samba服务器
2:[root@lyt Server]# useradd zhangsan #创建用户zhangsan
[root@lyt Server]# passwd zhangsan
[root@lyt Server]# useradd lisi #创建用户lisi
[root@lyt Server]# passwd lisi
3:[root@lyt Server]# mkdir /abc /zhangsan /lisi #创建目录/abc 、/zhangsan 、/lisi
[root@lyt Server]# ll -d /abc/ /zhangsan/ /lisi/ #查看改这些目录的属性
4:[root@lyt Server]# chown lisi.lisi /lisi/ #将目录/lisi的用户和所属组改为lisi,此时用户lisi就对自己所对应的目录/lisi有读写权限了
[root@lyt Server]# chown zhangsan.zhangsan /zhangsan/ #将目录/zhangsan的用户和所属组改为zhangsan,此时用户zhangsan就对自己所对
应的目录/zhangsan有读写权限
5:[root@lyt Server]# cd /abc/
[root@lyt abc]# touch f1.abc #在/abc目录下创建f1.abc文件
[root@lyt abc]# cd /zhangsan/
[root@lyt zhangsan]# touch f1.zhangsan #在/zhangsan目录下创建f1.zhangsan文件
[root@lyt zhangsan]# cd /lisi/
[root@lyt lisi]# touch f1.lisi #在/lisi目录下创建f1.lisi文件
6:[root@lyt ~]# smbpasswd -a zhangsan #向samba账号库中添加zhangsan账号,-a表示添加
[root@lyt ~]# smbpasswd -a lisi #向samba账号库中添加lisi账号,-a表示添加
使用windows主机测试:
使用zhangsan用户登录:
其他用户一样,这里不再重复
使用linux主机进行测试:(在linux中smbclient默认是已经安装的,这里直接使用即可)
[root@localhost ~]# smbclient -L \\192.168.101.66 -U zhangsan #-L表示列出,-U表示用户
[root@localhost ~]# smbclient //192.168.101.66/smbzs -U zhangsan #使用zhangsan用户登录自己的共享
在linux客户端上进行手动挂载(开机自动挂载):
[root@localhost etc]# mkdir /mnt/smb #创建挂载点
[root@localhost etc]# vim /etc/fstab
[root@localhost etc]# vim /etc/samba/f1 #编辑f1文件,存放账户密码
[root@localhost etc]# mount -a
在linux客户端上进行自动挂载(访问挂载点自动挂载):
[root@localhost etc]# rpm -qa |grep auto #查看与auto相关的已经安装的软件包
[root@localhost etc]# vim /etc/auto.master #编辑与自动挂载相关的配置文件
[root@localhost etc]# cp -p auto.misc auto.samba #产生auto.samba文件
[root@localhost etc]# service autofs restart #重启autofs服务器
[root@localhost etc]# mount #查看挂载
[root@localhost etc]# cd /mnt/smb/
[root@localhost smb]# cd server2 #强制切换到server2目录中,此时server2是临时产生的,但退出60秒后,会自动消失
[root@localhost server2]# cd #退出挂载点
[root@localhost ~]# mount #一分钟后查看挂载情况: