文章目录
前言
-
在windows网络环境中,主机之间进行文件和打印机共享是通过微软公司自己的SMB/CIFS网络协议实现的。SMB(Server Message Block,服务消息块)和CIFS(Common Internet File System,通用互联网文件系统)协议是微软的私有协议,在Samba项目出现之前,并不能直接与Linux/UNIX系统进行通信。
-
Samba是著名的开源软件项目之一,它在Linux/UNIX系统中实现了微软的SMB/CIFS网络协议,从而使得跨平台的文件共享变得更加容易。在部署Windows、Linux/UNIX混合平台的企业环境时,选用Samba可以很好地解决不同系统之间的文件互访问题。
一:Samba应用环境
- 文件和打印机共享:文件和打印机共享是Samba的主要功能, SMB进程实现资源共享,将文件和打印机发布到网络之中,以供用户可以访问。
- 身份验证和权限设置: smbd服务支持user mode和domain mode等身份验证和权限设置模式,通过加密方式可以保护共享的文件和打印机。。
- 名称解析:Samba通过nmbd服务可以搭建NBNS(NetBIOS Name Service)服务器, 提供名称解析,将计算机的NetBIOS名解析为IP地址。。
- 浏览服务:局域网中, Samba服务器可以成为本地主浏览服务器( LMB) ,保存可用资源列表,当使用客户端访问Windows网上邻居时,会提供浏览列表,显示共享目录、打印机等资源
二:Samba常规服务器配置
基本的Samba服务器的搭建流程主要分为四个步骤:
- 编辑主配置文件smb.conf,指定需要共享的目录,并为共享目录设置共享权限。。
在smb.conf 文件中指定日志文件名称和存放路径。
设置共享目录的本地系统权限及samba共享权限。
重新加载配置文件或重新启动smb服务,使用配置生效。
2.1:samba实验
[root@localhost~]# mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 xfs 201G 9.3G 192G 5% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 13M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda5 xfs 40G 39M 40G 1% /home
/dev/sda1 xfs 50G 174M 50G 1% /boot
tmpfs tmpfs 378M 4.0K 378M 1% /run/user/42
tmpfs tmpfs 378M 52K 378M 1% /run/user/1025
/dev/sr0 iso9660 4.3G 4.3G 0 100% /mnt
tmpfs tmpfs 378M 0 378M 0% /run/user/0
2.11:安装samba软件
[root@localhost ~]# yum -y install samba*
....省略内容
[root@localhost ~]# rpm -qc samba ##查看samba下载安装包位置
/etc/openldap/schema/samba.schema
/etc/pam.d/samba
[root@localhost ~]# cd /etc/samba/
[root@localhost samba]# ls ##查看列表 smb.chonf就是配置文件
lmhosts smb.conf smb.conf.example
[root@localhost samba]# mv smb.conf smb.conf.bak ##移动当前目录更改名称作为备份文件
[root@localhost samba]# ls
lmhosts smb.conf.bak smb.conf.example
##这边smb.conf.bak就是原来sab.conf的备份文件 筛选除了注释到smb.conf
[root@localhost samba]# grep -v "#" smb.conf.bak >smb.conf
[root@localhost samba]# ls
lmhosts smb.conf smb.conf.bak smb.conf.example
2.12:编辑配置文件并添加共选项
[root@localhost samba]# vi smb.conf ## 编辑配置文件
[global]
3 workgroup = SAMBA
4 security = user '设置匿名验证'
5 map to guest = Bad User '添加本句 版本原因 这边代替6.5版本的share '
6 passdb backend = tdbsam
#末尾添加内容
[share] '分享选项'
path=/opt/lpf '文件路径'
public=yes '打开共享'
browseable=yes '允许访问'
writable=yes
create mask=0644 '把权限设置为644'
directory mask=0755 '新建的目录:权限都777'
:wq保存退出
2.13:重启服务关闭防火墙跟安全防护功能
[root@localhost samba]# systemctl start smb
[root@localhost samba]# setenforce 0
[root@localhost samba]# systemctl stop firewalld
2.14:查看服务器是否启动
[root@localhost samba]# netstat -natp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 8568/rsync
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 26288/smbd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN 9374/X
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 12995/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 8908/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 8911/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 9185/master
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 20868/sshd: root@pt
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 26288/smbd
tcp 0 0 127.0.0.1:25151 0.0.0.0:* LISTEN 8912/python2
tcp 0 0 14.0.0.100:22 14.0.0.5:49314 ESTABLISHED 20868/sshd: root@pt
tcp6 0 0 :::873 :::* LISTEN 8568/rsync
tcp6 0 0 :::139 :::* LISTEN 26288/smbd
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::80 :::* LISTEN 8922/httpd
tcp6 0 0 :::6000 :::* LISTEN 9374/X
tcp6 0 0 :::21 :::* LISTEN 25808/vsftpd
tcp6 0 0 :::22 :::* LISTEN 8908/sshd
tcp6 0 0 ::1:631 :::* LISTEN 8911/cupsd
tcp6 0 0 ::1:25 :::* LISTEN 9185/master
tcp6 0 0 ::1:6010 :::* LISTEN 20868/sshd: root@pt
tcp6 0 0 :::443 :::* LISTEN 8922/httpd
tcp6 0 0 :::445 :::* LISTEN 26288/smbd
#samba的服务端口为139跟445 现在已经开启成功
[root@localhost samba]# mkdir /opt/lpf
[root@localhost lpf]# cd lpf/
[root@localhost lpf]# touch 1.txt
[root@localhost lpf]# ll
总用量 0
-rw-r--r--. 1 root root 0 7月 20 02:18 1.txt
[root@localhost lpf]# echo "123123" > 1.txt
[root@localhost lpf]# cat 1.txt
123123
[root@localhost lpf]# id nobody
uid=99(nobody) gid=99(nobody) 组=99(nobody)
2.15:添加共享目录
[root@localhost opt]# vim /etc/samba/smb.conf
#底下添加内容
[share]
path=/opt/shuai
public=yes
browseable=yes
writable=yes
create mask=0644
directory mask=0755
[love]
path=/opt/love
browseable=yes
writable=yes
create mask=0644
directory mask=0755
valid users=hua2, hua3 #仅hua2和hua3可以访问
write list=hua2 #hua2可以写
[root@localhost lpf]# systemctl restart smb #重启服务
2.16:添加用户并设置密码
[root@shell opt]# systemctl restart smb
[root@shell opt]# vim /etc/samba/smb.conf
[root@shell opt]# mkdir love
[root@shell opt]# cd love
[root@shell love]# chmod 777 /opt/love/
[root@shell love]# useradd zhangsan
useradd:用户“zhangsan”已存在
[root@shell love]# useradd lisi
useradd:用户“lisi”已存在
[root@shell love]# smbpasswd -a zhangsan
New SMB password:
Retype new SMB password:
Added user zhangsan.
[root@shell love]# smbpasswd -a lisi
New SMB password:
Retype new SMB password:
Added user lisi.
[root@shell love]# pdbedit -L
zhangsan:1026:
lisi:1027:
2.17:查看与客户端映射网络驱动
2.18:客户端输入服务端IP地址进行链接 已经发现两个共享目录
在windows的运行,输入\20.0.0.41 (sanmba对应地址)
2.19:输入用户名跟密码进行共享
2.2:查看共享目录跟文件
温馨提示:
要关闭防火墙
- 如果防火墙不关闭,windows跟samba之间的连通性就会被阻挡
权限问题
- 可能会出现权限不足的情况,修改你想要的那个文件的权限
[root@localhost opt]# chmod 777 /opt/love