目录
一、什么是Samba?
二、Samba进程
三、Samba主要功能
四、Samba工作流程
五、Samba安全级别
六、Sam主配置文件/etc/samba/smb.conf
七、Samba服务配置案例
一、什么是Samba?
Samba可以让linux计算机和windows计算机之间实现文件和打印机资源共享的一个服务软件。分别使用tcp的139或445端口来提供服务器中文件、打印机资源的共享;使用udp的137或138端口来为网络中的客户机提供NetBIOS的主机名与相应IP地址的解析服务。新的CIFS是一个增强版的SMB协议,使windows用户可以通过web实现更大范围的资源共享。
二、Samba进程
1、smbd:为win用户提供文件和打印服务。
2、nmbd:提供netbios计算机名对应IP地址解析。通过nmbd进程搭建NetBIOSnameserver服务器。让用户的Linux机器可以在Windows的网络邻居里被看到,所以就可以和Win95/NT主机在网络上相互沟通,共享文件与服务了。
三、Samba主要功能
1、文件和打印机共享。
2、身份验证和权限设置。
3、NetBios名称IP地址解析。
4、浏览服务。在windows局域网中,为了能够利用网上资源,同时自己的资源也能被别人所利用;各个主机都定期地向网上广播自己的身份信息。Samba可作为本地主浏览服务器来负责收集这些信息。为windows客户端访问网络邻居提供显示计算机、共享目录和打印机等资源。
四、Samba工作流程
1、协议协商:客户端会先向服务器发送一个SMB negprot请求数据报文,来告诉服务器自己所支持的所有SMB协议版本。服务器收到请求消息后,会根据客户端的情况选择出最优的SMB类型并做出回应。
2、建立连接:协议确定后,客户端会向服务器发送一个session setup请求数据报文来进行用户或共享的认证。然后服务器通过对客户端发送过来的用户名及其密码验证过之后会向客户端回复一个session setup报文来应答允许或拒绝本次连接。
3、访问共享资源:认证完成之后,客户端会向服务器发送一个tree connect 报文来告诉服务器自己想要访问的共享资源。服务器收到消息后,会对用户此次的访问进行权限的验证,如果权限允许服务器会为客户端与共享资源的连接分配一个TID。这样客户端就可以访问共享资源了。
4、断开连接:客户端通过向用户发送tree disconnect报文来关闭与服务器之间的连接。
五、Samba安全级别
1、user: 对用户访问服务器的共享资源之前进行身份本地验证
2、server: 由网络中另一台指定的服务器对用户的身份进行验证
3、domain: 加入win的域、由网络中的域控制器负责身份验证
六、Sam主配置文件/etc/samba/smb.conf
[global]全局设置: | 这部分配置项的内容对整个Samba服务器都有效。 |
[homes]用户家目录共享设置: | 设置Linux用户对应共享的家目录。Samb默认开启了本地家目录和打印机的共享。当用户访问服务器中与自己用户名同名的共享目录时,通过验证后将自动映射到该用户的宿主文件夹中。 |
[printers]打印机共享设置: | 如果需要共享打印机设备,可以在这部分进行配置。 |
七、Samba服务配置案例
实验需求:
1、分别为信息学院/infors和音乐学院/musics创建各自的共享文件夹,只有本学院的用户可以访问本院的共享文件夹。root管理员可以访问所有的共享目录。
2、为学校创建公共的共享文件夹,此文件夹内容允许所有人访问、每个人(除了管理员)只可以修改删除自身创建的文件夹。
3、为安全起见,为root管理员用户设置个别名,root用户通过别名admin访问所有共享文件夹。
4、Linux客户端需要永久挂载共享目录。
5、最后只允许本学校局域网内的用户访问samba服务器。
Server端:
1、安装Samba服务。
2、分别为信息和音乐学院创建各自的组,并创建各学院的Samba共享账户,并将其加入各自学院的组中。
3、分别为信息和音乐学院创建各自的共享文件夹,同时为学校创建一个可以所有人访问的/public共享文件夹。并设置合适的权限。
4、为预创建的共享文件夹修改安全上下文,否则用户无法访问共享文件夹。
5、在/etc/samba/目录下创建个用户别名配置文件smbusers,来为root管理员用户起个别名,使root管理员通过别名登录Samba服务器。
6、修改/etc/samba/smb.conf主配置文件来发布各学院的共享文件夹。
*默认Samba服务开启了本地共享用户的家目录和打印机设备的文件共享。
当用户登录到服务器后就可访问此用户的家目录。若要有权访问用户家目录还需开启selinux的布尔值,才可访问用户家目录。若要关闭家目录共享只需将Samba主配置文件中的[home]部分内容给注释掉即可。
Client端:
使用Linux来访问Samba服务器共享的文件夹。
1、安装Samba服务客户端软件
2、查看Samba服务器上的共享文件夹
3、使用信息学院的infor1用户访问共享文件夹进行测试。
公共目录访问:
4、使用音乐学院的music1用户访问共享文件进行测试
公共目录访问:
5、使用admin别名用户永久挂载Samba服务器上的信息学院共享文件夹到本地。
也可以使用mount命令对Samba共享文件进行临时挂载到本地。
使用window客户端来访问Samba服务器上的共享文件资源。
1、打开运行对话框输入共享文件访问路径
*由于之前已通过root用户的别名admin登录到Samba服务器,因此此次默认使用之前的admin别名用户访问共享文件。
2、分别点击各个共享文件夹,测试Samba服务器上的root管理员别名用户admain,是否可以访问各个学院和公共的共享文件夹。
3、CMD相关命令:
net use
作用:将计算机连接到其它主机共享的资源、或将计算机与网络上的共享资源断开连接、以及远程连接网络上的计算机。
用法:Net use [devicename | *] [\\computername\sharename[\volume]] [password | *] [/user:[domainname\]username][[/delete]| [/persistent:{yes | no}]]
例如:
- net use z: \\192.168.1.8\sharefile -----访问网络上其它主机共享的文件夹并将其映射到本地的z盘(盘符需未使用)。
- net use \\192.168.1.8\IPC$ “root123(密码)”/user: "root(用户名)"------与目标主机建立远程IPC非空连接,即远程连接到目标主机。这样本地主机就可以远程访问目标主机上的资源。实际上在win运行框中访问目标主机共享文件夹时,所输入的目标主机IP地址和其后输入的用户密码信息,其实就是与目标主机建立远程IPC非空连接。
- net use z: /delete -------删除网络共享目录到本地Z盘符的映射。
- net use \\192.168.1.8\sharefile -------断开与目标主机共享资源的连接,这样用户通过运行框再远程访问目标主机共享的资源时,需要重新输入用户密码。
- net use * /delete -------断开与网络上所有主机资源的连接,"*"表示所有。
@声明:“山月润无声”博主知识水平有限,以上文章如有不妥之处,欢迎广大IT爱好者指正,小弟定当虚心受教!