samba服务部署与实践
1 Samba的介绍
- SMB是一个协议名,全称是Server Message Block(服务器消息快协议),用于在计算机间共享文件、打印机、串口等,电脑上的网上邻居由它实现。
- 是应用层(和表示层)协议,使用C/S架构,其工作的端口与其使用的协议有关。
- 当远程连接计算机访问共享资源时有两种方式:
- \\共享计算机地址\共IP享资源路径
- \\共享计算机名\共享资源路径
其中,使用计算机名访问时,SMB服务工作在NetBIOS协议之上,用的是TCP的139端口;使用IP地址访问时,用的是TCP的445端口。
- SMB工作过程:版本协商--->会话请求凭据--->文件路径凭据--->对共享资源进行操作
- 配置SMB服务就是启用网络发现和打印机共享(如果网络配置为公用默认不开启,需要手工开启)
2 Samba的使用
2.1 samba服务的组成部分
Samba-common – 用来提供一些配置文件
Samba-client – 客户端应用程序
Samba – 服务端应用程序
samba在linux系统上的服务名称:smb
服务端口:通常使用TCP/445进行所有连接。还使用UDP137、UDP138和TCP/139进行向后兼容
主配置文件:/etc/samba/smb.conf
配置文件:
客户端测试:
修改共享目录的参数
2.1修改目录说明(comment)
vim /etc/samba/smb.conf
comment=van dir
systemctl restart smb
smbclient -L //172.25.60.100 #发现共享出来的目录与文件,会看到目录的comment改变
2.2 设置共享文件隐藏,但并不是代表没有共享,照样可以使用
vim /etc/samba/smb.conf
browseable=no (默认是yes)
systemctl restart smb
smbclient -L //172.25.60.100 发现不了共享目录
smbclient //172.25.60.100/van -U van 但是可以登陆使用
2.3 设置用户登录samba
服务端:
vim /etc/samba/smb.conf
valid users=westos 只允许用户westos登陆
systemctl restart smb
客户端:
smbclient //172.25.60.100/LEE -U van 不可以登陆使用
smbclient //172.25.60.100/LEE -U westos 可以登陆使用
#####samba用户#####
添加用户smb用户westos2
useradd westos2 ;smbpasswd -a westos2
pdbedit -L 查看该服务用户
pdbedit -x westos2 删除westos2用户
2.4 设置登陆列表 vim /etc/samba/smb.conf
valid users=+westos 允许用户组westos登陆,用户属于westos组都可以登陆(@符也可以)
systemctl restart smb
useradd -G westos haha
smbclient //172.25.254.133/LEE -U haha 可以登陆使用
smbclient //172.25.254.133/LEE -U van 不可以登陆使用
2.5 设置用户是否可写与可写列表:
服务端:
vim /etc/samba/smb.conf
writable=yes
write list=westos
systemctl restart smb
smbclient //172.25.254.133/van -U westos
put和rm不行,文件系统权限没有
setfacl -m u:westos:rwx /van
客户端:
smbclient //172.25.60.100/LEE -U westos 可以进行写操作
2.6设置可写用户组
vim /etc/samba/smb.conf
write aaa@qq.com
systemctl restart smb
smbclient //172.25.60.100/LEE -U westos 可以写
useradd tom
usermod -G westos tom
smbclient //172.25.60.100/LEE -U tom 可以写
2.7设置共享文件的超户
当我添加了smb用户linux后,把writable=yes可写参数打开
但是使用linux用户登陆,不可写
smbclient //172.25.254.233/van -U linux 仍然不能可写
因为getfacl列表中只对超户westos可写
我们把linux设置为超户实现linux用户可写
vim /etc/samba/smb.conf
admin users=linux
smbclient //172.25.254.233/van -U linux 可写了
put linuxfile
在服务端查看时,cd /van
ll 上传的linuxfile文件所有人为root
、
2.8设置匿名用户是否可以登陆
smbclient //172.25.60.100/van 本身匿名用户不能登陆
vim /etc/samba/smb.conf
guest ok=yes
systemctl restart smb
smbclient //172.25.60.100 /van 可以登陆了
但是,该身份仅在smb交互界面可以使用,不能用来挂载
需要添加参数:
vim /etc/samba/smb.conf
map to guest=bad user
systemctl restart smb
mount //172.25.60.100/van /mnt -o username=guest
3 samba多用户身份设定
客户端:
- 安装软件
yum install cifs-utils -y
匿名用户可以直接通过samba用户名和用户密码进行登录,密码裸露在命令行中,是不太安全的。同时所有用户都可以查看共享文件,也是不合理的,我们需要进行设置认证名单。
注:credentials=/root/smbfile指定挂载时所用到的用户文件
multiuser 支持多用户认证
sec=ntlmssp 认证方式为标准smb认证方式
首先,在客户端创建一个普通用户linux,将共享目录挂载,root用户可以进入挂载目录并查看目录中的内容。切换到linux用户,进入挂载目录,没有权限)。
多用户身份设定
共享目录永久挂载:
推荐阅读
-
Rsync 服务部署与参数详解
-
React 服务器渲染原理解析与实践
-
详解CentOS的SVN服务器搭建与自动部署全过程
-
在ubuntu中部署samba服务器的方法
-
荐 Linux网络系列--YUM仓库部署与NFS服务(YUM仓库部署、YUM命令使用、NFS共享存储服务讲解及实验)
-
从实践出发:微服务布道师告诉你Spring Cloud与Spring Boot他如何选择
-
今日头条在消息服务平台和容灾体系建设方面的实践与思考 socket阿里巴巴python算法
-
Nodejs的学习Ⅳ(静态与动态服务器的简单搭建、npm的上传包、在公网上部署服务器、MySQL的安装)
-
WebSocket部署到服务器出现连接失败问题的分析与解决
-
读书笔记-《大型网站系统与Java中间件实践》-第二章 网站架构架构演进中间件应用服务器