samba实现可扩展的文件共享

本文详细介绍如何使用Samba在Linux环境下实现文件共享,包括安装、用户管理、逻辑卷配置、权限设置及配额管理,同时提供了Linux和Windows下的测试方法。

samba介绍:
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置"NetBIOS over TCP/IP"使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
实验需求:
创建六个用户,分别为 yg001 ,yg002,yg003,yg004,yg005,boss001,使其都可以访问共享目录public,此文件夹的大小为5G,但是它可以扩展大小。用户yg001,yg002,yg003可以在public下创建和删除文件,并且彼此之间创建的文件可以相互修改,其他用户则没有此权限,yg001和yg002最多只能创建100M的总文件大小,还不能删除其他人创建的文件,但是yg003没有限制。以上六个用户都有一个以自己为名字的共享目录,仅自己可见可访问可创建,其他人没有权限,但是boos001对yp001–yp005共享的个人目录有完整的权限
安装:

yum install -y samba 
#如果装有dnf也可以使用dnf装
dnf  install  -y samba

共享用户的建立:

[root@localhost ~]# for username in yg001 yg002 yg003 yg004 yg005 boss001;do useradd -s /sbin/nologin $username ; (echo centos;echo centos) |smbpasswd -a $username ;done
#查看共享用户
[root@localhost ~]# pdbedit -L
yg003:1036:
yg004:1038:
yg002:1040:
yg001:1037:
yg005:1039:
boss001:1041:

创建逻辑卷:

#分区 详细的就略过了这一步
[root@localhost ~]# fdisk /dev/sda 
[root@localhost ~]# partprobe /dev/sda
#pv的创建
[root@localhost ~]# pvcreate /dev/sda6
#vg的创建
[root@localhost ~]# vgcreate vgname /dev/sda6
#lv的创建大小为5G
[root@localhost ~]# lvcreate -L 5G -n lvname vgname
#lv的查看
[root@localhost samba]# lvs
  LV     VG     Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lvname vgname -wi-ao---- 5.00g                                     
[root@localhost ~]# mkfs.ext4 /dev/vgbaishe/lvbaishe 
#将共享的文件挂载到逻辑卷上,并设置quota
[root@localhost ~]# vim /etc/fstab 
 	/dev/vgname/lvname      /app/publicfile        ext4    defaults,usrquota       0 0

给用户设置quota

#生成quota
[root@localhost ~]# quotacheck -cum /app/publicfile/
#开启quota
[root@localhost ~]# quotaon /app/publicfile/
#给用户设置quota的可创建文件的总大小
[root@localhost samba]# setquota -u yg001 0 100M 0 0 /app/publicfile/
[root@localhost samba]# setquota -u yg002 0 100M 0 0 /app/publicfile/
#查询quota
[root@localhost samba]# repquota -v /app/publicfile/
*** Report for user quotas on device /dev/mapper/vgname-lvname
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --      16       0       0              0     0     0              
yg001    --       8       0  102400              0     0     0       
yg002  --       0       0  102400              0     0     0       

Statistics:
Total blocks: 7
Data blocks: 1
Entries: 0
Used average: 4.000000

主配置文件配置:

[root@localhost samba]# vim /etc/samba/smb.conf
[global]
        workgroup = SAMBA
        security = user
        passdb backend = tdbsam
        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw
#伪装服务器的类型
        server string = Windows 7 Ultimates 7.0
#那些地址可以访问我 下面的意思是这个网段的都行
        hosts allow= 192.168. 172.168.
#以ip地址.log为名字的日志文件
        log file = /var/log/samba/%I.log
#子配置文件的地址其中%U是名字的宏定义
        config file = /etc/samba/conf.d/%U.conf
[public]
#commetn是这个共享的描述
        comment = This is public
#path是共享文件的地址
        path = /app/publicfile
#是否允许匿名访问
        public = yes
        browseable = no
#是否可写
        writeable = no

linux命令式测试:

#linuxxia匿名访问
[root@localhost samba]# smbclient -L //192.168.242.128
Enter SAMBA\root's password: 
Anonymous login successful
OS=[Windows 6.1] Server=[Samba 4.6.2]

	Sharename       Type      Comment
	---------       ----      -------
	IPC$            IPC       IPC Service (Windows 7 Ultimates 7.0)
Anonymous login successful
OS=[Windows 6.1] Server=[Samba 4.6.2]

	Server               Comment
	---------            -------

	Workgroup            Master
	---------            -------
#linux下有身份访问
[root@localhost samba]# smbclient -L //192.168.242.128 -U gy003
Enter SAMBA\baisuzhen's password: 
Domain=[LOCALHOST] OS=[Windows 6.1] Server=[Samba 4.6.2]

	Sharename       Type      Comment
	---------       ----      -------
	public       Disk     This is public
	IPC$            IPC       IPC Service (Samba 4.6.2)
Domain=[LOCALHOST] OS=[Windows 6.1] Server=[Samba 4.6.2]

	Server               Comment
	---------            -------

	Workgroup            Master
	---------            -------
#注意:上面的ip是我搭建samba服务器的ip地址

权限的设置:

#修改指定目录到指定组,可以更加方便的设置acl权限
[root@localhost baishezhuan]# chgrp baizhezhuan /app/publicfile/
#将以下三人加入到指定组
[root@localhost baishezhuan]# gpasswd -a yg001 baizhezhuan
[root@localhost baishezhuan]# gpasswd -a yg002 baizhezhuan
[root@localhost baishezhuan]# gpasswd -a yg003 baizhezhuan
#设置指定文件的acl值,使只有指定的组中用户才有创建的权限
[root@localhost baishezhuan]# setfacl -Rm d:g:baizhezhuan:rwx /app/publicfile/
#改变文件的所属人,为下一步做准备
[root@localhost baishezhuan]# chown yg003 /app/publicfile/
#给指定文件设置特殊权限,使只有目录的所属人和目录里文件的所属人可以删除文件
[root@localhost baishezhuan]# chmod o+t /app/publicfile/
#给指定用户设置acl 使其可以有更高的权限对指定的文件
[root@localhost app]# setfacl -Rm d:u:boss001:rwx /app/common/
[root@localhost ~]# cd /app/common/
[root@localhost common]# ll
total 0
drwxrwx---+ 2 yg003 root 25 Oct  9 09:01 yg003
drwxrwx---+ 2 yg004    root 23 Oct  9 09:05 yg004
drwxrwx---+ 2 boss001   root  6 Oct  9 08:42 boss001
drwxrwx---+ 2 yg005  root  6 Oct  9 08:42 yg005
drwxrwx---+ 2 yg002  root  6 Oct  9 08:42 yg002
drwxrwx---+ 2 yg001    root  6 Oct  9 08:42 yg001

子配置文件配置:

[root@localhost ~]# /etc/samba/conf.d
[root@localhost conf.d]# ll
total 24
-rw-r--r--. 1 root root 273 Oct  9 08:49 yg003.conf
-rw-r--r--. 1 root root 263 Oct  9 08:50 yg004.conf
-rw-r--r--. 1 root root 259 Oct  9 08:52 boss001.conf
-rw-r--r--. 1 root root 272 Oct  9 08:51 yg005.conf
-rw-r--r--. 1 root root 325 Oct  9 08:51 yg002.conf
-rw-r--r--. 1 root root 291 Oct  9 08:52 yg001.conf
#yg003的子配置文件和其他除了boss001的都一样,只是更改一下[yg003](这个[]里的内容最好跟用户名一致)下的 path的路径即可,
[root@localhost conf.d]# cat yg003.conf 
[public]
        comment = This is public
        path = /app/publicfile
        public = yes
        browseable = yes
	writeable = yes
	force create mode = 775
[yg003]
	comment = wo shi 003
	path = /app/common/yg003
	browseable = yes
	writeable = yes
#boss001的子配置,这样使其可以对所有的用户的共享都有改删查的操作
[root@localhost conf.d]# cat boss001.conf 
[public]
        comment =This is public
        path = /app/publicfile
        public = yes
        browseable = yes
	writeable = yes
[common]
        comment = wo shi boss
        path = /app/common
        browseable = yes
        writeable = yes

windows下测试:
windows+r
这个ip是安装samba服务器的ip地址
输入用户名和密码即可访问共享文件
用户名是你创建的如yg001 密码是自己设置的
总结:此实验主要是对权限的设置,samba的部分稍微简单。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值