Linux云计算基础篇(28)-Samba文件服务
一、Samba文件共享
Samba实现Linux和Linux之间的文件共享,还可以实现Linux和Windows之间的文件共享。允许在不同的操作系统之间共享文件和打印机。
Samba是一个C/S架构,也就是客户端服务端
Samba套件构成:
samba:Samba的主程序和穿护进程以及相关文档内容
samba-common:提供主要的配置文件以及语法校验命令
samba-client:提供客户端的工具命令
Samba主要得配置文件内容
samba的主要配置目录:/etc/samba
[root@samba ~] ll /etc/samba/
imhosts文件:主要配置IP和主机名的对应关系,类似/etc/hosts
smb.conf文件:Samba最主要的配置文件,指定共享目录等内容
smbpasswd文件:默认没有,存放samba的用户和密码的文件;进行用户验证需要使用
samba主配置文件常用内容
samba的主要配置文件:/etc/samba/smb.conf
更多配置内容参考/etc/samba/smb.conf.example文件
[global] #samba的全局配置
Workgroup=MYGROUP#指定工作组名称
security=user #设置安全等级,user模式需用户验证,share模式无需验证
server string=Samba Server Version#指定主机注释说明
netbiosname=MYSERVER #指定Samba默认主机名,例如在windows上查看共享显示的主机名
hosts allow=127.192.168.12.192.168.13. #允许访问samba服务器IP地址范围,默认允许所有的IP访问
[homes]
valid users = #指定允许访问用户
invalid users= #指定不允许访问用户
write list = #指定写入用户
read list = #设置只读用户
public = yes #是否可以匿名访问
---------------------------------------------------------------------------------
Samba常用命令
smbpasswd命令:设置samba的用户以及密码,管理samba用户和密码
常用选项:
-a 添加一个用户为samba用户
-x 删除一个samba用户
pdbedit命令:管理samba用户数据库
常用选项:
-L 列出所有的samba用户
-Lv 显示详细信息
-x 删除samba用户
-a 创建samba用户
testparm命令:测试samba配置文件设置是否正确
smbclient命令:查看samba服务的共享目录。 -L指定sama服务器ip地址,-U指定用户名
--------------------------------------------------------------------------------
Samba共享实战(一)
创建/samba目录,允许所有主机访问,登陆账户和密码分别是Sambauser和passwd
1.安装samba软件
[root@samba ~]# dnf install samba -y
2.创建/samba目录,授予目录权限
[root@samba ~]# mkdir /samba
[root@samba ~]# chmod 777 /samba
3.修改smb.conf配置文件
[share]
path = /samba
comment = This is a directory
browseable = yes
writeable = yes
write list = sambauser
read list = sambauser
--------------------------------------------------------------------------------------
Samba共享实战(二)
创建/samba目录,允许所有主机访问,登录账户和密码分别是Sambauser和passwd
4.创建Samba用户,并且指定密码
[root@samba ~]# useradd -s /sbin/nologin sambauser
[root@samba ~]# smbpasswd -a sambauser
5.启动smb服务,关闭防火墙,关闭Selinux
[root@samba ~]# systemctl start smb
[root@samba ~]# systemctl stop firewalld
[root@samba ~]# setenforce 0
Samba共享实战(三)
创建/samba目录,允许所有主机访问,登录账户和密码分别是sambauser和passwd
6.Linux客户端配置,安装samba-client 和cifs-utils
[root@samba ~]# dnf install -v samba-client
[root@samba ~]# dnf install cifs-utils -y
7.查看samba服务端的共享目录
[root@samba ~]# smbclient -L 192.168.68.150 -U sambauser
Samba共享实战(四)
创建/samba目录,允许所有主机访问,登录账户和密码分别是sambauser和passwd
8.Linux客户端配置,手动挂载
[root@samba ~]# mount -t cifs //192.168.68.150/share /mnt -o username=sambauser
[root@samba ~]# df -Th /mnt
Samba共享实战(五)
9.创建一个TXT文件,里面填充username,与passwd密码相关信息
[root@samba ~]#cat /etc/samba/password.txt
username=user1
password=redhat
[root@samba ~]# chmod 400 password.txt
[root@samba ~]# vim /etc/fstab
//192.168.10.10/SHARE /mnt/it cifs defaults,credentials=/etc/samba/password.txt 0 0 #Credentials (调用设置的密码本,该本只允许自己查看)
[root@samba ~]# mount -a
二、配置阶段
samba 配置
[root@web01 ~]# yum -y install samba
[root@web01 ~]# systemctl enable smb.serice --now
[root@web01 ~]# netstat -tulnp | grep :139
[root@web01 ~]# netstat -tulnp l grep :445
[root@web01 ~]# systemctl enable smb.serice --now
[root@web01 -]# netstat -tuinp l grep:137
[root@web01 -]# netstat -tulnp l grep :138
smb service: 文件和打印机共享
nmb .service: 名称解析
需求一: 共享/public 目录,共享名为 IT,该共享允许 IT 组的所有成员可以访问,仅允许user1和 user2 用户有写入权限;
[root@web01 -]# vim /etc/samba/smb.conf
[IT]
comment =IT team public directory
path = /publice
write list = userl.user2
browseable = yes
valid users = @it #挂载、访问权限
create mask = 64 4
directory mask = 0755
[root@web01 ~]# systemctl restart smb.service
samba 用户:
1. 首先必须是本地用户(用户列表必须存在)
#useradd user1
#useradd user2
2.将该用户转换为 samba 用户
#smbpasswd -a user1
#smbpasswd -a user2
[root@web01 -]# smbpasswd -a user1
New SMB password:
Retype new SMB password:
Added user user1.
[root@web01 -]# smbpasswd -a user2 #将本地用户添加到SMB用户中
New SMB password:
Retype new SMB password:
Added user user2.
[root@web01 -]# pdbedit -L #查询SMB用户列表
user1:2003:
user2:2004:
[root@web01 -]#chmod 777 /public/
在客户端测试
[root@web02 ~]# yum -y install samba-client
[root@web02 ~]#smbclient -L //192.168.6.101
[root@web01 -]# groupadd it
[root@web01 ~]#usermod -aG it user1
[root@web01 -]#usermod -aG it user2
[root@web01 ~]#usermod -aG it user4
root@web01 ~]#systemctl restart smb.service
------------------------------------------------------------------------------------------------------------------------------
