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


相关推荐
无己心1 天前
面向多平台 AI 搜索引擎的适配层架构设计
前端·人工智能·搜索引擎·ai·1024程序员节
u0103055277 天前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u0103055277 天前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝9 天前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u0103055279 天前
Java图像处理实战指南
人工智能·1024程序员节
u01030552710 天前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u01030552712 天前
Java实用类应用精讲
人工智能·1024程序员节
u01030552712 天前
Java I/O核心操作实战
人工智能·1024程序员节
u01030552713 天前
ArrayList操作详解与实战应用
人工智能·1024程序员节
u01030552714 天前
Java模块化编程实战指南
人工智能·笔记·1024程序员节