Top

安装

 # 安装samba服务器
yum install -y samba
# samba 服务器地址
smb://user@192.168.0.10
# 查看安装包
rpm -qa |grep samba

端口与服务管理

# 启动samba进程
systemctl start smb
# 查看运行状态
systemctl status smb
# 查看端口
netstat -antulp |grep smb
# 设置开机自启动
systemctl enable smb
chkconfig smb on
# samba的主要配置文件
/etc/samba/smb.conf # Samba服务使用的端口和协议:
1 端口137 (UDP) - NetBIOS名称服务; 美国全国广播公司
2 端口138 (UDP) - NetBIOS数据报服务
3 端口139 (TCP) - 共享文件和打印;它基于smbd(SMB) servermessageblock协议,主要用于局域网,文件共享协议) 。
4 端口389 (TCP) - LDAP (活动目录模式)
5 端口445 (TCP) - NetBIOS服务在windos 2000或更高版本上使用此端口。 (CIFS、公共互联网文件系统,它将SMB协议扩展到internet,然后实现internet文件共享。
6 端口901 (TCP) SWAT,用于web管理Samba
windows系统之间的文件共享协议: netbiosextenduserinterface (netbeui )协议和IPX/SPX协议
NetBEUI协议是一种短而精悍、通信效率高的广播型协议,安装后无需设置,特别适用于“网络邻居”中的数据传输。

其他常用命令

# 查看 samba 服务状态及其客户端访问情况
smbstatus
/usr/bin/smbclient # 客户端功能

配置

全局配置


[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
config file = /etc/samba/%U.smb.conf # 使得不同的登录用户只加载其自身的配置,%U 代表用户名
printing = cups
printcap name = cups
load printers = yes
cups options = raw
interfaces = ens9f3 192.168.0.200/24 # 访问接口 和 IP
hosts allow = 192.168.0. # 客户端 白名单
log file = /var/log/samba/log.%m # 日志文件配置
max log size = 50000
smb ports = 1234 # 自定义服务端口 #
#[homes]
# comment = Home Directories
# valid users = %S, %D%w%S
# browseable = No
# read only = No
# inherit acls = Yes [printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No [print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775

共享库配置

[d200_temp]
comment = please do not modify it all will
path= /data/shared/d200_d
writable = yes
public = yes

用户名密码认证库配置

[d200_temp]
comment = please do not modify it all will
path= /data/shared/d200_d
public = no
valid users = sit,@ydd
printable = no
write list = sit,@ydd

Samba 登录用户配置

sit_home_Dir="/raid/shared/d200_d/temp"
sit_pwd="h3c@123"
userdel -r sit &> /dev/null
groupdel ydd &> /dev/null
groupadd ydd
useradd sit -d /raid/shared/d200_d/temp -s /sbin/nologin -p ${sit_pwd}
pdbedit -x sit
echo "sit pwd : ${sit_pwd}"
pdbedit -a -u sit
usermod -a -G ydd sit # 添加用户
smbpasswd -a <用户名>
# 或
pdbedit -a -u <用户名>
# 重置密码
smbpasswd <用户名>
# 删除用户
pdbedit -x <用户名>

防火墙配置

# 开启防火墙
systemctl start firewalld.service
# 放行 samba
firewall-cmd --add-service samba --permanent
firewall-cmd --reload # 重新加载防火墙配置
firewall-cmd --list-all | grep samba -q # 查询防火墙信息 # iptables 规则配置
iptables -I RH-Firewall-1-INPUT 5 -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
iptables -I RH-Firewall-1-INPUT 5 -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
iptables -I RH-Firewall-1-INPUT 5 -p udp -m udp --dport 137 -j ACCEPT
iptables -I RH-Firewall-1-INPUT 5 -p udp -m udp --dport 138-j ACCEPT
iptables-save
service iptables restart

设定安全的上下文关系

# 将 samba 目录共享给其他用户,
chcon -t samba_share_t <共享目录> # 修改对象的安全上下文
# 第二种方法,
semanage fcontext -a -t samba_share_t <共享目录>
restorecon -FRv /home/kevin # 刷新上下文,使其立即生效
#如果samba服务器共享目录给多个域,则需要:
setsebool -P allow_smbd_anon_write=1
//If you are setting up this machine as a Samba server and wish to share the home directories
samba服务器要共享家目录时:
setsebool -P samba_enable_home_dirs 1
//If you want to use a remote Samba server for the home directories on this machine
如果你需在本机上使用远程samba服务器的家目录
setsebool -P use_samba_home_dirs 1
//You can disable SELinux protection for the samba daemon by executing setsebool -P samba_domain_controller 1
# 可读可写
setsebool -P samba_export_all_rw 1
# 只读
setsebool -P samba_export_all_ro 1 # 关闭selinux关于samba的进程守护的保护
setsebool -P smbd_disable_trans 1 # 0是关闭 1是开启
# 查询SElinux策略内各项 samba 规则的布尔值
[root@localhost ~]# getsebool -a | grep smb
smbd_anon_write --> off
[root@localhost ~]# getsebool -a | grep samba
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_load_libgfapi --> off
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
tmpreaper_use_samba --> off
use_samba_home_dirs --> off
virt_use_samba --> off

本地系统设置访问读写权限

# 设置文件访问权限
setfacl -R -m g:sit:rwx <目录> # 设置用户组权限
setfacl -R -m u:sit:rwx <目录> # 设置用户权限
# 获取文件权限信息
getfacl <文件>

Pdbedit 用法

# 命令用于管理Samba服务的帐户信息数据库
pdbedit -a username # 新建Samba账户
pdbedit -x username # 删除Samba账户
pdbedit -r -u user # 修改samba用户信息
pdbedit -L # 列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit -Lv # 列出Samba用户列表详细信息。
pdbedit -c “[D]” -u username # 暂停该Samba用户账号。
pdbedit -c “[]” -u username # 恢复该Samba用户账号。

Smbpasswd 用法

smbpasswd -a user   # 添加一个samba用户
smbpasswd -d user # 禁用一个samba用户
smbpasswd -e user # 恢复一个samba用户
smbpasswd -x user # 删除一个samba用户

其他

# 重新加载配置
smbcontrol all reload-config
# 允许用户执行共享上的所有文件,
acl allow execute always = yes
# 添加网络映射到指定驱动器号
net use H: \\server\users\demo\ /persistent:yes # 用户管理
https://wiki.samba.org/index.php/User_and_Group_management

Windows 下相关转发

查看网络连接 -- 可删除缓存,用于切换登录用户

# 显示当前网络连接列表
net use
# 删除一个网络连接配置
net use 远程连接名称 /del
# 一次性全部删除
net use * /del
# 若以上方法不管用,可进入控制台删除网络凭证

Windows 设置 Smb 端口转发

# 使用管理员权限
# 查看端口转发
netsh interface portproxy show all
# 配置端口转发
netsh interface portproxy add v4tov4 listenport=445 listenaddress=127.0.0.1 connectport=samba服务器地址 connectaddress=samba端口
# 清除所有端口转发规则
netsh interface portproxy reset

访问 Samba 服务器

服务器 --- Linux

1、安装samba client
sudo apt-get install smbclient
yum install samba-client
2、获取指定 Samba 服务器的共享列表
smbclient -L 192.168.1.1 -U <username>
smbclient -L 192.168.1.1 -U <username> --workgroup=SAMBA
3、连接共享目录 -- 交互式
smbclient 192.168.1.1/<共享目录名> -U username
4、连接共享目录 --- 一次性连接共享目录进行指定操作后退出
smbclient -U sit -c 'ls' //172.16.89.129/<共享目录名>

服务器 --- Windows

# 1、快捷键 `Win + E` 打开文件资源管理器
# 2、在地址栏中输入 `\\<Samba 服务器地址>`
若需要验证则再输入用户名和密码登录

Apple --- Mac

# 1、打开访达
# 2、快捷键 `Cmd + K` 连接文件服务器
输入samba 服务器 IP ,
若需要验证则再输入用户名和密码登录

mac如何访问windows共享文件夹--- samba 服务器

Linux 挂载 samba 地址

# 1、安装
apt install cifs-utils
# or
yum install cifs-utils
# 2、在本地创建一个挂载点目录
sudo mkdir /home/user/shareFiles
# 3、挂载
sudo mount -t cifs -o username=xxx,password=xxx //<目标IP地址或主机名>/<共享目录名> <挂载点目录>
mount -t cifs //192.168.1.65/linuxsamba /database -o username=smbuser,password=123456,rw,file_mode=0777,dir_mode=0777,setuid=509,setgid=101
# 或者
mount -t cifs //192.168.1.65/linuxsamba /database -o username=smbuser,password=123456,rw

参考网址

Linux下安装部署Samba共享盘的操作手册

腾讯云---Linux/centos上如何配置管理samba服务器

Linux/centos上如何配置管理samba服务器?

Samba服务器的配置与管理

samba客户端的使用与服务端的搭建

Linux系统工程师3.5网络文件系统

smb协议详解和samba服务的配置

使用POSIX ACL设置共享

将Samba设置为独立服务器

smb.conf--- man手册

Samba命令帮助文档

帮助文档-----002

自动化配置脚本

# 

搭建Samba服务器笔记全套的更多相关文章

  1. Android源码浅析(三)——Android AOSP 5.1.1源码的同步sync和编译make,搭建Samba服务器进行更便捷的烧录刷机

    Android源码浅析(三)--Android AOSP 5.1.1源码的同步sync和编译make,搭建Samba服务器进行更便捷的烧录刷机 最近比较忙,而且又要维护自己的博客,视频和公众号,也就没 ...

  2. ubuntu 搭建samba服务器&挂载(mount)代码到本地

    一.搭建samba服务器 1.下载: sudo apt-get install samba samba-common 2.创建共享文件夹MyShare: mkdir /home/user/MyShar ...

  3. Linux:搭建samba服务器

    samba服务器的搭建 修改防火墙设置 firewall-cmd --permanent --add-service=samba //设置防火墙 firewall-cmd --reload //重新加 ...

  4. Ubuntu16.04 搭建samba服务器

    1昨天花了一天时间弄了NFS服务器,结果搭建完之后出现各种问题,要么挂载不上,要么就是字符乱码.今天在看到一个关于树莓派的介绍的时候,提到Samba服务器的搭建,我尝试了一下,结果发现很顺利地就能够正 ...

  5. Ubuntu 上搭建 Samba 服务器

    由于经常要接收同事发送的一些文件,U盘拷来拷去的很麻烦. 在本机Ubuntu上搭了各Samba服务器,过程中遇到点小问题,记录一下 sudo apt-get install samba 创建一个共享目 ...

  6. ubuntu 搭建 samba 服务器

    . sudo apt-get install samba samba-common . sudo vi /etc/samba/smb.conf [alair's share] path = /home ...

  7. 在ubuntu12.0.4上搭建samba服务器以实现文件共享

    在安装之前samba服务器之前,先进行以下配置和测试. <壹> 准备工作 一.NAT联网方式 (1)硬件连接 无需网线,无需路由器 (2)虚拟机选择NAT连接方式 (3)测试网络通不通 在 ...

  8. Fedora14下首次搭建Samba服务器遇到的一些问题

    SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的通信协议.而Samba则是在Linux和Unix系统上实现SMB协议的一个免费软件,由服务器及客户端程 ...

  9. CentOS 6.5搭建Samba服务器

    目标需求:在Windows7下访问CentOS 6.5 root用户桌面/ZS文件夹 0.准备工作 关闭防火墙并开启不起动 service iptables stop chkconfig iptabl ...

  10. samba服务器笔记 (一)

    Samba安装 samba:主服务包:samba-client:客户端:samba-common:通用工具:samba4-libs:库:samba-winbind:windows域映射:samba-w ...

随机推荐

  1. 沃罗诺伊图 (Voronoi diagram)

    沃罗诺伊图 (Voronoi diagram) Introduction: what is voronoi diagram? 沃罗诺伊图 (Voronoi diagram),取名自俄罗斯数学家乔治·沃 ...

  2. 2021-11-30 WPF的MVVM绑定

    主页面代码 public partial class MainWindow : Window { MainViewModel mainViewModel = null; public MainWind ...

  3. 利用python分析pdf数据,分析上市公司财报

    import re import os.path import matplotlib import matplotlib.pyplot as plt from pdfminer.pdfparser i ...

  4. selenium报错:This version of ChromeDriver only supports Chrome version 109 Current browser version is 112.0.5615.49...解决办法

    前言:跟GPT交互,让其写一段代码,执行失败.经过排查验证,GPT写的代码没有问题,是本地环境问题. 执行报错: selenium.common.exceptions.SessionNotCreate ...

  5. [HDCTF2019]Maze 反汇编-花指令处理

    这是一道迷宫花指令加upx脱壳处理的题 先介绍花指令 一. 概述 花指令是对抗反汇编的有效手段之一,正常代码添加了花指令之后,可以破坏静态反汇编的过程,使反汇编的结果出现错误.错误的反汇编结果会造成破 ...

  6. 《Linux基础》02. 目录结构 · vi、vim · 关机 · 重启

    @ 目录 1:目录结构 2:vi.vim快速入门 2.1:vi 和 vim 的三种模式 2.1.1:一般模式 2.1.2:编辑模式 2.1.3:命令模式 2.2:常用快捷键 2.2.1:一般模式 2. ...

  7. CodeForces 1388D Captain Flint and Treasure

    题意 给长度为\(n\)的序列\(a[n]\)和\(b[n]\),初始时\(ans=0\),有以下操作: \(ans=ans+a[i]\) 如果\(b[i]\neq-1\),则\(a[b[i]]=a[ ...

  8. ffmpeg 在xp和server2003/2008/2012上修复无法定位GetNumaNodeProcessorMaskEx的问题

    问题 在给开发一个手机视频网站时需要用到ffmpeg截取视频缩略图, 把项目提交到服务器(server2003/ server2008)上时, 发现在调用命令时会出现错误"无法定位GetNu ...

  9. Vue.js 官方脚手架 create-vue 是怎么实现的?

    Vue.js 官方脚手架 create-vue 是怎么实现的? 摘要 本文共分为四个部分,系统解析了vue.js 官方脚手架 create-vue 的实现细节. 第一部分主要是一些准备工作,如源码下载 ...

  10. 【解惑】时间规划,Linq的Aggregate函数在计算会议重叠时间中的应用

    在繁忙的周五,小悦坐在会议室里,面前摆满了各种文件和会议安排表.她今天的工作任务是为公司安排下周的50个小会议,这让她感到有些头疼.但是,她深吸了一口气,决定耐心地一个一个去处理. 首先,小悦仔细地收 ...