千家信息网

Linux系统服务搭建之samba

发表于:2024-09-21 作者:千家信息网编辑
千家信息网最后更新 2024年09月21日,基本概念局域网内的不同计算机之间提供文件及打印机等资源的共享服务,SMB协议是C/S模型协议。1.1、相关协议Linux--NFS(Network File System):网络文件系统Window-
千家信息网最后更新 2024年09月21日Linux系统服务搭建之samba
  • 基本概念

局域网内的不同计算机之间提供文件及打印机等资源的共享服务,SMB协议是C/S模型协议。

1.1、相关协议

Linux--NFSNetwork File System):网络文件系统

Window--NetBios:主机名解析协议

LinuxèWindow--CIFS :通用网络文件系统

1.2、特点

局域网、跨操作系统平台、可在线修改文件内容

samba--软件、smb--文件共享协议、

1.3、作用

1、 分享网络文档、打印机

2、 跨平台访问身份验证、权限设置、支持SSL证书加密

3、 解析NetBios名字:Samba通过nmbd服务可以搭建NBNSNetBios Nmae Server)服务器,提供名称解析--将计算机名解析为IP,实现主机之间的访问定位!

1.4、端口

SMB--TCP 139 445

NMB--UDP 137 138

1.5、配置文件

主配置文件--/etc/samba/smb.conf

用户名别名配置文件--/etc/samba/smbuser(用于隐藏用户真实的名称)

1.6、用户安全级别

在全局配置文件 "global"下,security = "***"

share------匿名登录

user--本地用户(需配置共享密码)和匿名用户都可登录

server--专门作为一台身份验证的服务器

domain--通过域控制器验证登录

1.7、全局设置参数

[global]

workgroup =MYGROUP #工作组名称

username map = /etc/samba/smbusers #启用别名概念

server string =Samba Server Version %v #服务器描述信息,一般为版本信息

log file =/var/log/samba/log.%m #日志文件路径和名称

max log size =50 #如果日志文件的大小超过50KB,则重新记录

security = user #用户登录安全级别:shareuserserverdomain

passdb backend =tdbsam #设置共享账户文件类型,默认为tdbsam

load printers =yes # 自动加载打印机

cups options =raw #指定打印机的工作模式

netbios name =** #主机的netbios 的名称

hosts allow = 127. 192.168.100. #允许访问共享文件的网段及用户IP、域名

realm = ** #指定 Active Directory


1.8、共享文件区域设置

[homes] #共享文件名(随便写)

comment = Home Directories #共享文件"homes"的描述信息

browseable = no #设置共享文件夹在Window的网上邻居中是否可见,此处为不可见

path = /var/spool/samba #共享文件夹的目录

writable = yes #拥有写权限------read only 只读模式 刚好相反

public = yes #允许共享

guest ok = yes #允许匿名访问

valid users = abc @xyz+qwe #仅允许几个用户登录,或者组登录

注:上面一条命令的使用前提是共享目录拥有777权限

create mask = 666#上传文件的默认权限

directory mask=777 #上传目录的默认权限

read only = yes #开启只读模式(配置文件内设置)--系统默认

valid users =用户1,用户2 可以访问的用户

write list = 用户1 配置文件内设置)---有"写"权限用户列表

最后的三项经常组合当做白名单使用同时还要给目录更改权限

  • 用户登录

2.1、使用匿名用户登录

设置共享文件夹,直接免用户名登录

步骤:

第一步 配置本地yum源,安装软件samba

yum -y install samba

第二步 配置共享文件/etc/samba/smb.conf

将安全级别改为 "security = share"



第三步 启动smb服务

service smb start

第四步 在客户端登录验证

查看共享文件目录: smbclient -L IP

登录服务器上的共享文件 smbclient //IP/共享区域名 自己上面【】里面写的那个


2.2、使用有效用户登录

有效用户的登录方式和上面的匿名用户一样,只是将上面的安全级别改为

"security = user"此时,匿名用户有效用户都可以登录

2.3、查看系统的共享文件

使用匿名用户 smbclient -L IP


使用指定用户Smbclient -U user1 -L IP


2.4、将系统已有的本地用户转换为samba用户

Pdbedit -a bcl (在服务器端)

并查看已有的samba用户 Pdbedit -L

2.5、创建zhangsanlisi本地用户,张三可以"写"李四为"只读"目录不可见

先给共享目录开启权限 rw

修改配置文件


  • 使用samba实现公司的文件服务器

要求:

1、创建 两个部门HRIT,每个部门两个人hr01hr02it01it02,设置文件共享密码;

2、部门内部的文件只能内部人员查看,别的部门不能查看;

3、用户之间彼此的文件可以查看但是不能修改他人的文件;

4HR部门的文件远程只允许领导办公室192.168.115.200电脑查看;

5IT部门的文件只允许管理员it01有写权限;且只允许其他两个部门192.168.115网段和192.168.100网段的职工查看;

6、谁创建的文件只能谁修改;

7、还要有一个公布员工工资表的文件夹!

实验步骤:

第一步 创建组HRIT,并在组内分别创建成员hr01hr02it01it02,设置共享密码


查看添加的组内成员的所有者、所属组、附加组

第二步、创建部门目录,设置权限:只能本部门成员使用本部门的目录文件

创建部门共享文件夹:

/home/HR,更改所属组为 HR,设置权限1770,即所有者和所属组有全部权限,且赋予SBIT的权限,谁创建谁负责!

/home/IT,更改所属组为IT,设置权限1770

全公司职工工资表查看文件夹 /home/public








第三步、设置配置文件,并给相应的部门开启权限

1、为了实验效果,下面的配置文件将部分权限分开设置;

2、配置三种共享文件夹的具体目录路径,开启共享权限;

3、限制各部门共享文件查看人员权限;

4、测试验证

基于用户的访问控制权限



Window系统测试并验证

测试hr02用户除了可以查看是否还可以修改hr01用户的资料


基于主机的访问控制权限


第四步、验证

/public共享文件任何人都可以查看

HR目录在非192.168.115.200电脑上登录无论谁都登不上,200IPWindow,在上面已经验证

IT目录只能在192.168.115.0192.168.100.0网段的电脑上登录

  • 磁盘映射

Window端缓存清除

net use * /del

Window端缓存查看

net use

磁盘映射

Linux

先查看共享的目录 smbclient -U bcl -L 192.168.115.193

临时挂载:

mount -t cifs -o username=***,password=*** //服务器IP/共享目录 /mnt

永久挂载需要写入 /etc/fstab

Window

我的电脑è(右键)映射网络驱动器è//共享服务器的IP/共享文件夹

对于windows而言,只要是网络上的共享文件夹,都可以使用这种方式共享


0