Samba概述


Samba是一套使用SMB(Server Message Block)协议的应用程序,通过支持这个协议,Samba允许Linux服务器与Windows系统之间进行通信,使跨平台的互访成为可能。Samba采用C/S模式,其工作机制是让NetBIOS( Windows 网上邻居的通信协议)和SMB两个协议运行于TCP/IP通信协议之上,并且用NetBEUI协议让Windows在“网上邻居”中能浏览Linux服务器。

Samba服务器包括两个后台应用程序:Smbd 和 Nmbd。Smbd 是Samba的核心,主要负责建立 Linux Samba服务器与Samba客户机之间的对话,验证用户身份并提供对文件和打印系统的访问;Nmbd主要负责对外发布Linux Samba服务器可以提供的NetBIOS名称和浏览服务,使Windows用户可以在“网上邻居”中浏览Linux Samba服务器中共享的资源。另外Samba还包括一些管理工具,如 smb-client,smbmount,testparm,Smbpasswd 等程序。

Samba服务器可实现如下功能:WINS和DNS服务;网络浏览服务;Linux和Windows域之间的认证和授权;UNICODE字符集和域名映射;满足CIFS协议的UNIX共享等。

准备工作


1. 更新系统

没啥,就他喵想用个最新的。

apt update && apt upgrade

2. 安装samba

官方网站:https://www.samba.org/

命令流程:

apt install -y samba

创建用户


1. 创建系统用户组

groupadd samba

2. 创建系统用户

创建一个禁止登陆系统的用户,并让它加入samba组中。

useradd -g samba -M -s /sbin/nologin admin

3. 设置系统用户密码

passwd admin

4. 设置Samba用户登陆密码

此密码需要单独设置,用来登陆SMB。可以和用户系统密码一样,也可以不一样。

smbpasswd -a admin

创建共享目录


1. 创建用户专属目录

mkdir /home/admin

2. 修改目录权限

chmod  /home/admin/

Samba配置文件


vim /etc/samba/smb.conf
;======================= Global Settings =======================
[global]
workgroup = WORKGROUP
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
server role = standalone server
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
usershare allow guests = yes #======================= Share Definitions =======================
[Blu-ray]
comment = 蓝光原盘
path = /home/admin
public = no
valid users = admin
write list = admin
create mask = 0777
directory mask = 0777

重启Samba服务器


/etc/init.d/samba restart

、常用命令


;======================= Global Settings =======================
[global]
workgroup = WORKGROUP ;工作组名称
server string = Samba Server Version %v ;主机的简易说明
dns proxy = no
log file = /var/log/samba/log.%m ;产生日志文件的命名,默认以访问者IP地址命名
max log size = 1000 ;日志文件最大容量,默认50,单位为KB,0表示不限制
syslog = 0
panic action = /usr/share/samba/panic-action %d
server role = standalone server
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
usershare allow guests = yes ;======================= Share Definitions =======================
[guest]
comment = Guest Directories ;共享描述,当鼠标悬浮在目录上时会显示
path = /home/guest ;共享目录路径
browseable = yes/no ;设置共享是否可浏览,如果no就表示隐藏,需要通过IP+共享名称进行访问
writable = yes/no ;设置共享是否具有可写权限
read only = yes/no ;设置共享是否具有只读权限
valid users = username ;设置允许访问共享的用户,例如valid users = user1,user2,@group1,@group2(多用户或组使用逗号隔开,@group表示group用户组)
write list = username ;设置在共享具有写入权限的用户,例如例如write list = user1,user2,@group1,@group2(多用户或组使用逗号隔开,@group表示group用户组)
invalid users = username ;设置不允许访问共享的用户
public = yes/no ;设置共享是否允许匿名访问
guest ok = yes/no ;功能同public一样
create mask = 0700 ;创建的文件权限为700
directory mask = 0700 ;创建的目录权限为700
 

最新文章

  1. 一个难倒 3年 android开发经验 " 工程师 " 的 "bug"
  2. msChart组件安装与编程
  3. Machine Learning Algorithms Study Notes(1)--Introduction
  4. 【POJ 2653】Pick-up sticks 判断线段相交
  5. RTSP协议、RTMP协议、HTTP协议的区别
  6. 【转】Python3.x移除了callable内建函数
  7. ios-上拉电阻负载许多其他接口
  8. 使用MyBatis3时 selectOne 方法返回null的问题记录
  9. [TJOI2016&&HEOI2016]求和
  10. 如何实现 集群化/Session 复制-doc(cluster-howto.html)
  11. [TCP/IP] 网络层-简单查看路由表
  12. springBoot中使用定时任务
  13. jquery裁剪图片插件cropit示例
  14. 搭建iSCSI文件服务器故障转移群集
  15. Day 03 基本数据类型
  16. 用AOP思想改造一个服务器的数据存储
  17. Build Web Apps in Node and Express视频下载
  18. python-django开发学习笔记三
  19. Laravel和thinkphp的区别/优缺点
  20. OpenCV-跟我学一起学数字图像处理之中值滤波

热门文章

  1. CocosPods 每次install pod 都卡在analyzing
  2. kuangbin专题七 ZOJ1610 Count the Colors (灵活线段树)
  3. x0vncserver
  4. shell操作数组
  5. git ssh密钥的使用
  6. Solr学习笔记(2) —— Solr管理索引库
  7. Nginx 基本 安装..
  8. JTAG与JLink说明
  9. HDU2665(可持久化线段树板子)
  10. 江西财经大学第一届程序设计竞赛 H