目录
一、概念
1.1 基本概念
- 定义:是在Linux系统上实现SMB(Session MessageBlock)协议的一个免费软件
- 功能:以实现Windows与Linux服务器间的文件共享和打印机服务共享
1.2 服务器组件
- 进程
- smbd:提供了文件和打印服务
- nmbd:提供了NetBIOS名称服务和浏览支持,帮助SMB客户定位服务器,处理所有基于UDP的协议
二、安装使用
2.1 安装
- centOS:
yum install -y samba
2.2 配置
- 配置文件:
/etc/samba/samba.conf
- 文件内容(填写完后命令:
testparm
格式检查)#全局参数设定 [global] # 工作组名称 workgroup = SAMBA # security这里指定samba的安全等级。关于安全等级常用2种: # share:用户不需要账户及密码即可登录samba服务器 # user:由提供服务的samba服务器负责检查账户及密码(默认) security = user # 后端密码数据库 passdb backend = tdbsam # 打印设定:不加载打印机 load printers = no # 配置每个用户的家目录,homes为固定写法 # 默认用户登录smb服务器即进入各自的家目录 [homes] # 注释 comment = Home Directories # 非所有者是否可访问 browseable = no # 是否可写入 writable = yes # 目录所有者 valid users = %S # 目录在访问者那显示的名字,此为自定义 [共享盘] # 配置可访问目录 path = /home/share # 是否可写入 writable = yes # 是否可浏览 browseable = yes # 未登录用户是否可访问 guest ok = no # 重要:目录下新建文件非组内容易只读,所有组可读写,不可执行 create mode = 0664 # 重要:文件夹权限,非组内人员可读、进入、执行 # 不可在文件夹一级目录写,所有组无限制 directory mode = 0775 [部门盘] path = /home/office writable = yes browseable = yes guest ok = no # 重要:目录下新建文件的权限设定 create mode = 0660 # 重要:文件夹权限,不符合则进不去 directory mode = 0770
- 运行相关
- 查看是否启动:
systemctl status smb
,有绿色的active显示,若没有看下面的日志 - 开启服务:
systemctl start smb
,如果状态是灰色的就要启动 - 关闭服务:
systemctl stop smb
- 开机启动:
systemctl enable smb
,Loaded行是否有enable - 关闭开机启动:
systemctl disable smb
,Loaded行是否有disable
- 查看是否启动:
问题:若是后面连不上服务器,有可能是服务器防火墙阻挡了,
systemctl stop firewalld
,关闭防火墙
2.3 添加用户
smb账号必须是centos的已有账号
-
CentOS账号注册
- 完整注册:
useradd -s /usr/sbin/nologin -d /home/userhome/somebody -g off somebody
-s:为用户登录shell,未指定则为/bin/bash,nologin为不能登录终端的账号
-d : 为用户的home目录,未指定则为/home/somebody
-g : 为用户的默认组,未指定则为somebody组,跟配置文件匹配才可进入文件 - 简略注册:
useradd somebody
- 完整注册:
-
smb账号操作
命令名 功能 pdbedit –a 用户名
新建Samba账户(在centos系统中要注册过) pdbedit –x 用户名
删除Samba账户,不删除用户home目录文件 pdbedit –L
列出Samba用户列表,读取数据库文件 pdbedit –c "[D]"–u 用户名
冻结该Samba用户账号(主要看Account Flags项加D) pdbedit –c "[]"–u 用户名
恢复该Samba用户账号(主要看Account Flags项去D) pdbedit -v 用户名
列出Samba用户详细信息(主要看Account Flags项)
2.4 增加文件夹
新建文件夹并配置权限
- 命令行
cd /home # 切换到home目录下 mkdir share # 新建共享文件夹 chmod 775 share # 修改权限匹配配置文件,非组内人员可读,可进入,不可在文件夹一级目录写 mkdir office # 新建部门文件夹 chown :off office # 修改所属组为off,off为centos中提前创建 chmod 770 office # 修改权限匹配配置文件,仅组内成员可访问
三、Windows访问
- 测试是否可以连接smb服务器:
ping 192.168.123.123
,假设这是服务器IP - 调出运行窗口:任务管理器==》文件==》运行新任务,或者
win+R
快捷键
- 输入账号密码
- 映射访问模式
四、其他需求
4.1 更换账号
4.2 客户端断开连接
- powershell --》
net use * /delete /y
4.3 服务端操作
- 查看smb服务器使用情况命令:
smbstatus
,包括连接的账户,PID,查看的文件,连接的时间 - 服务器强制踢人:kill PID,直接结束客户的进程,记得冻结账户