Samba 文件共享

Samba文件共享主要针对windows客户端,如果我要实地的搭建一个文件服务器,首先要规划一下我的文件服务器主要干什么用。

1. 可以把samba共享的目录放在单独的一个分区

2. 在lvm 上创建samba服务器,方便我以后扩容我的samba共享磁盘,

3. 是否启用磁盘配额,分部门共享只显示此部门的文件

实验环境:关闭防火墙,关闭selinux(关闭selinux需要重启),samba服务器的ip地址为 20.0.0.1/24,xp 客户端的ip地址为20.0.0.2/24,linux 客户端的ip地址为20.0.0.3/24 。

第一步:安装samba

[root@localhost ~]# mount /dev/cdrom /media

mount: block device /dev/sr0 is write-protected, mounting read-only

[root@localhost ~]# vim /etc/yum.repos.d/a.repo

[a]

name=a

baseurl=file:///media

gpgcheck=0

[root@localhost ~]# yum install samba –y

默认samba的服务器的配置文件/etc/samba/smb.conf 这个文件

如果我要共享我根目录下的haha目录,需要先建立haha目录

Mkdir /haha

在/etc/samba/smb.conf 最后边写共享的目录,位置

实现linux和windows文件共享_的

实现linux和windows文件共享_的_02

我只写了共享目录,其他没做任何修改。

此时在客户端测试!

实现linux和windows文件共享_ip地址_03

客户端要求我输入我用户名我密码,因为我的安全级别是user。我将安全级别user改为share

实现linux和windows文件共享_服务器_04

改为share后测试!

实现linux和windows文件共享_的_05 改为share就是任何人可以访问,这样的话不安全,但是我没有写任何权限,默认只有读权限,

因为我在根目录下创建的haha,haha本身就有权限,我把我在根目录下的haha给他最大权限,但是我在samba里面做限制,它就会按我samba的权限去执行,

Vim /etc/samba/smb.conf

我将安全级别改为user

实现linux和windows文件共享_服务器_06

我将haha目录的权限改为777

[root@localhost /]# ll -d haha/

drwxr-xr-x 2 root root 4096 3月 22 04:51 haha/

[root@localhost /]# chmod 777 haha/

[root@localhost /]# groupadd it 创建了一个it组

[root@localhost /]# useradd -g it -s /usr/sbin/nologin aa

创建aa用户,将aa加入到it组中,但是不能从系统登录

[root@localhost /]# smbpasswd -a aa 将系统用户添加为samba用户

New SMB password: 密码为123

Retype new SMB password:

Added user aa.

客户端测试!

实现linux和windows文件共享_的_07

因为haha默认其他人是可读权限,而我给haha文件夹最大权限,我想让aa,在里面可写,而bb不能写。

那么我建立一个bb的用户

[root@localhost /]# useradd -g it -s /usr/sbin/nologin bb

创建bb用户,将bb加入到it组中,但是不能从系统登录

[root@localhost /]# smbpasswd -a aa 将系统用户添加为samba用户

New SMB password: 密码为123

Retype new SMB password:

Added user aa.

在vim /etc/samba/smb.conf

实现linux和windows文件共享_的_08

Write list 创建了一个写的列表,只有这个列表内的用户和组才可以写,其他没有写权限,

测试一下!

我先用aa登录

实现linux和windows文件共享_ip地址_09实现linux和windows文件共享_ip地址_10

在haha的 目录下新建一个文件夹,然后删除文件夹我都是具有权限的。

实现linux和windows文件共享_的_11

下面我用bb用户登录测试!

在用bb登录之前我要将我之前访问的缓存删除一下

实现linux和windows文件共享_服务器_12

此时我用bb登录,它就会显示bb用户的宿主目录

实现linux和windows文件共享_服务器_13

实现linux和windows文件共享_服务器_14

我创建文件夹,它会提示我无法创建,我上传也是我无法上传到的。

我想让aa,都具有写入的权限,因为aa,bb都是it组,

Vim /etc/samba/smb.conf

实现linux和windows文件共享_ip地址_15

如果需要在写入权限的列表中加入用户和组的话,中间使用“,”隔离开。

Service smb restart

测试一下! aa ,bb都具有写入权限。

在上边的实验中,我们使用不同的 用户登录,会每个用户的宿主目录,这个samba可以设置。

实现linux和windows文件共享_服务器_16

如果我将宿主目录下的写权限给取消那么aa用户,bb用户就不能在宿主目录下创建文件了

实现linux和windows文件共享_服务器_17

测试!

实现linux和windows文件共享_的_18

我们去aa,bb的宿主目录权限

实现linux和windows文件共享_服务器_19

aa,bb。用户都具有写的权限,但是我在samba里面做限制了,它依然没有写的权限,在这里宿主目录的权限和samba的权限取其交集,也就是最小权限。

我在根目录在创建一个共享目录123.让所有可写

实现linux和windows文件共享_ip地址_20

实现linux和windows文件共享_ip地址_21

因为权限是取其权限交集的最小权限

因为我在根目录建立了一个123的文件,因为我是用root用户建立的

实现linux和windows文件共享_服务器_22

我在samba的配置文件中给了其他可写的权限,但是123文件夹自身的权限其他人不可写,那么我需要给123写的权限,为了做实验方便,我直接给他最大的权限。同时我用户aa登录的时候不让他显示我aa的宿主目录。

实现linux和windows文件共享_服务器_23

测试!

实现linux和windows文件共享_ip地址_24

不显示我的宿主目录

实现linux和windows文件共享_服务器_25

我之前还共享了一个haha文件夹,因为我将haha文件夹隐藏了,所以就看不见了

实现linux和windows文件共享_服务器_26

在linux客户端进行测试 ,客户端的ip地址是20.0.0.3

实现linux和windows文件共享_服务器_27

实现linux和windows文件共享_ip地址_28

实现linux和windows文件共享_服务器_29

实现linux和windows文件共享_的_30

连接到我samba的服务器上了。

使用命令查看,提示输入密码的时候直接按回车键ok

实现linux和windows文件共享_的_31

在服务器端使用命令查看

实现linux和windows文件共享_ip地址_32