SAMBA服务器
一、介绍
SAMBA最初发展的主要目的就是用来进行沟通windows与unix like这两个不同的操作系统平台
主要功能为:
1、共享文件与打印机服务
2、可以提供用户登陆samba主机时的身份认证,以提供不同身份用户的个别数据
3、可以进行windows网络上的主机名解析
4、可以进行设备的共享
协议:SAMBA使用的NetBIOS通信协议,NetBIOS是无法跨越路由的,目前SAMBA还是比较广泛的使用在LAN中,也可以通过NetBIOS over TCP/IP的技术,就可以跨路由使用SAMBA服务器提供的功能。
二、构成
主要使用软件包:
samba.x86_64 :主要提供了SMB服务器所需要的各项服务程序(smbd、nmbd)
samba-client.x86_64 :主要提供客户端所需要的命令
samba-common :主要提供了客户端与服务端都会使用到的命令
SAMBA服务器主要是通过两个服务
1、nmbd:用来管理工作组、NetBIOS Name等的解析,主要是利用UDP协议开启端口137、138来负责名称解析的任务
2、smbd:用来管理SAMBA主机共享的目录、文件与打印机等,主要是利用可靠的TCP协议来传输数据,开放的端口为139、445
主配置文件 :/etc/samba/smb.conf
三、主要使用命令
服务端:设置火墙策略,添加服务,开启smb服务
[[email protected] ~]# firewall-cmd --permanent --add-service=samba
success
[[email protected] ~]# firewall-cmd --permanent --add-service=samba-client
success
[[email protected] ~]# systemctl restart firewalld.service
永久设置,重启服务
客户端:匿名用户登陆
[[email protected] ~]# smbclient -L //172.25.254.173
服务端:设置samba用户,samba用户必须为服务器端的本地用户
[[email protected] ~]# smbpasswd -a student ##student用户为本地用户
New SMB password: ##samba用户密码与linux登陆密码可一致也可不一致
Retype new SMB password:
Added user student.
[[email protected] ~]# pdbedit -L ##查看samba用户
student:1000:Student User
客户端:[[email protected] ~]# smbclient -L //172.25.254.173 -U student ##使用student用户身份登陆
Enter student's password:
[[email protected] ~]# smbclient //172.25.254.173/student -U student ##进入共享中的student目录
###要是发现进入student目录中ls没有出现的内容,检查selinux的问题,若安全上下文不匹配则ls不能显示出来。
而且会出现挂载不上的问题。
[[email protected] ~]# setsebool -P samba_enable_home_dirs 1
客户端:挂载测试
[[email protected] ~]# mount -o username=student,password=student //172.25.254.173/student /mnt/
修改配置文件 (此配置文件中#;都是注释符号)
1、设置与主机名有关的信息
89 workgroup = zhaoyan ##工作组的名称
90 netbios name=zhaoyanserver ##主机的NetBIOS名称,每台主机均不同
91 server string = Samba Server Version %v ##主机的简易名称
客户端:测试
黑白名单
96 ; hosts allow = 127. 192.168.12. 192.168.13. ##默认是一个网段
97 hosts deny = 172.25.254.71 ##拒绝172.25.254.71主机连接
客户端:测试
加入共享的内容:
[DATA]
comment = hahaha
path = /westos
使用[[email protected] westos]# testparm 测试是否文件是否有错误
##此时在客户端测试挂载时出现报错
##报错原因为服务端/westos的目录权限不够
修改该目录的权限
客户端测试:
[[email protected] ~]# mount //172.25.254.173/DATA /mnt/ -o username=student,password=111
可以在配置文件中进行开机直接自动挂载
vim /etc/fstab
增加参数:
[DATA]
comment = hahaha
path = /westos
writable = yes ##可写
guest ok = yes ##单纯共享时,让用户随意登陆设置值
让用户student可写
客户端测试:
让student组的用户均可写:
配置文件:
测试:
让某一用户在挂载后使用root的身份
配置文件:
测试:
不能被浏览到资源名称:
配置文件:
测试:
共享资源仅能被student组的用户可以浏览:
配置文件:
若在客户端的student用户将共享资源挂载在/mnt/上,但经过测验,退出student用户westos登陆其本机的帐号密码,/mnt/下仍然是挂载状态,而且若权限与服务端允许,该共享资源的内容是可以被随意改写的,此下,设置权限,改变此不安全的行为。
多用户挂载:[[email protected] mnt]# yum install cifs-utils.x86_64 -y
在客户端的行为:
建立文件:
vim /root/smbfile
chmod 600 /root/smbfile
测试:
[[email protected] ~]# mount -o credentials=/root/smbfile,multiuser,sec=ntlmssp //172.25.254.173/DATA /mnt
切换客户端的用户
该切换的用户也可进行一次samba的登陆
[[email protected] ~]$ cifscreds add -u zhaoyan 172.25.254.173