一、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