Linux系统中的文件共享(CIFS)----samba

linux系统如何实现文件共享?

linux >>>>>>>>> linux  or  windows    -------------利用linux中的 samba服务软件!!!

注: samba服务 默认共享的是 本地用户的家目录(/home/username)!!

 

实验测试环境:

利用虚拟机 desktop 和 server;

其中server作为服务端

为了方便分辨 :

更改主机名称为 shareserver(.westos.com)   ip:172.25.254.223

hostnamectl  set-hostname  shareserver.westos.com #设置主机名


nm-connection-editor   #利用图形界面设置IP


@ 给shareserver安装samba系列服务软件:(当然你得配置好你的yum源!!!)

@启动并查看状态:

@此时我们需要将真实存在的本地用户(eg:student,root等)添加到smb用户:

创建一个本地的asuka用户:

添加asuka用户到smb用户:(smbpasswd -a asuka):

通过pdbedit -L 来查看已经添加了的smb用户:

pdbedit -x asuka

删除添加过的smb用户!

@关闭防火墙(因为防火墙会阻拦smb服务):

@将Selinux调至 警告状态或者关闭:(当selinux开启且状态为enforcing时,登陆smb共享服务会报错!)

 在客户端:shareclient (配置IP)

@安装smb客户端软件:

@匿名登陆查看:

此处需要输入密码时直接回车即可登陆!

@smb用户 asuka登陆查看:

@smb用户 asuka登陆并操作:

第一种共享方式:

注:  (只能创建目录,或者上传文件,不能touch 文件!)                    

             这种方式上传的文件应为客户端当前所在目录中含有的文件,否则系统会报错!

创建一个 haha目录:

可以看到 服务端家目录(/home/asuka)里也出现了 haha目录:

当我们上传不属于当前目录的文件时:(可以看到报错信息):

@第二种共享方式(挂载方式):(将共享的家目录挂载到客户端的mnt目录上):

这种方法是最有效的!

在客户端进入/mnt目录,建立5个file文件:

@在服务端家目录下查看变化:(客户端共享上传的file文件出现了)

相应的我们也可以删除文件:

#######smb用户的访问控制#########

实验背景(服务器:shareserver)

 

查看寻找smb的主配置文件:(/etc/samba/smb.conf)

@更改域名:

我们第一次登陆时可以发现域名为 WORKGROUP:

vim /etc/samba/smb.conf :(编写配置文件):

89行的 workgroup= 你的域名!(我的为 coolsing ):

不需要重启服务就可以看到变化:(域名变为了 我们设置的coolsing )

@设置smb用户白名单:(vim /etc/samba/smb.conf)

客户端shareclient(172.25.254.223被我们设置为白名单用户)

我们的服务端也安装了smb-client 登陆服务:(且不在白名单里面):

可以看到登陆失败了:

将服务端(172.25.254.223)加入白名单里:

可以看到223我们的服务端可以登陆smb系统了!

@设置黑名单(编辑配置文件):

设置客户端123为黑名单用户:

可以看到不能登陆了:

@使客户端访问服务端创建的目录【非默认目录(家目录)】:

(1)在服务端创建一个目录:

 (2)   修改目录的安全上下文和smb服务的安全上下文保持一致(才可正常使用!)

『当selinux开启且为enforcing的情况时需要进行此项操作』

再逐层刷新安全上下文!

最后编辑配置文件:

在最后加入下面三行内容,其中:

322表示 coolsing目录

323表示目录的绝对路径

测试结果:(coolsing目录)

@共享系统目录:

编写格式与共享创建的目录相似:

当服务端selinux为enforcing状态时:

需要开启samba的 samba_export_all_ro 服务客户端才能登陆观察系统目录中的文件内容:

setsebool -P samba_export_all_ro on  #开启smb只读服务

可以看到没有开启:

开启后:(可以观察/mnt系统目录下的hhhh文件了)

或者我们可以将selinux设置为permission状态就可以省去上面的操作了!

#####共享目录的功能设定#######

1.设定目录是否可以被浏览:

以 DIR为例,我们给后面加入 browseable=no 表示不让浏览(登陆查看会隐藏 DIR相关信息):

注:当时我们 smbclient //172.25.254.223/DIR -U asuka 登陆上还是可以看到的(这是正常的)

更改前:

更改后:(DIR信息隐藏了);当我们把 browseable改为=yes时就又可以查看了

2.设定目录是否可以写:(刚开始删除不允许!)

我们需要加入:(writeable=yes),并且需要给/coolsing目录加权限(777):

完成上述操作后可以看到可以删除文件了:

上传时:(writeable=no的话):

为yes的话:

3.设定指定用户可写:

指定student用户可写:(注:write list 和 writeable 相互冲突;所以得注释掉 writeable!!!)

而asuka用户不能删除掉:

@设定指定组用户可写:(表达方式有两种  ‘@’+用户名 或者 ‘+’ + 用户名)

在服务端将asuka用户的组改为student用户的组:(可以看到asuka也为student的组成员了)

实验删除:(可以删除了!)

当我们使用挂载的方式进行实验时:

还可以发现:(刚才利用asuka用户创建的yyyy目录 的 用户为 1001 组为 1001 ,这是因为客户端没有uid gid为1001的用户)

而在服务端查看:(uid =1001 >>>即  asuka用户!!!)

4.设定指定用户为超级用户(root)

加入327行,表示 asuka用户指定为root用户!:

指定完毕后,用asuka上传根目录下的(anaconda-ks.cfg文件)(当然我们得在此目录环境下登陆smb系统!):

利用挂载登陆的方式可以看到:(asuka上传的,显示出来的是root用户!)

5.smb的多用户挂载

@首先在客户端安装多用户挂载的软件:(cifs-utils)

@学会使用man命令来帮助我们使用软件!

查看我们smaba的版本:

@编写已知smb用户的认证文件:

vim /root/smbpass:(新建的一个文件)

@挂载DIR:

mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //172.25.254.223/DIR  /mnt/

(/root/smbpass用来认证,采取加密方式为:ntlmssp,采用多用户挂载:multiuser)

@设置完毕后,当其他未经认证的用户是不能查看/mnt里的内容的:

新建一个hello用户:(客户端)

对hello认证后就可以查看/mnt目录下的内容了:

注当我们密码输入错误时需要重新认证:(输入:cifscreds clearall )

最后.smb的匿名访问(指定的目录)——————DIR为例

先编写328行内容:(允许guest用户访问)

再编写125行内容:(表示 guest用户的映射是非系统用户)

重启smb服务

进行实验:

可以看到成功了:

当我们没有编写时登陆是这个情况:(报错,拒绝!)

@在客户端匿名挂载:

当然前提是我们编写了上一步的配置文件才可匿名挂载:

否则:(报错如下)

OVER!!!

猜你喜欢

转载自blog.csdn.net/Asukaaaa/article/details/84562618