文件共享服务——smaba

一、samba的安装及samba用户的创建:

1.samba实验环境的搭建:

          在ip地址为:172.25.254.213 的这台主机搭建samba服务器。

[root@localhost 245room]# yum install samba samba-client  samba-common -y

[root@localhost 245room]# systemctl start smb
[root@localhost 245room]# systemctl enable smb

[root@localhost /]# firewall-cmd --add-service=samba --permanent
success
[root@localhost /]# firewall-cmd --add-service=samba-client --permanent
success
[root@localhost /]# firewall-cmd --reload

2.用户登陆:

1)匿名用户登陆:

[root@localhost /]# smbclient -L //172.25.254.213
Enter root's password:                              ####  匿名用户不需要密码,直接回车即可

扫描二维码关注公众号,回复: 4123264 查看本文章

图表示匿名用户能够登陆samab的共享文件系统。

2) samba用户的添加

     注意要添加的samba用户必须是本地存在的用户所以我们先建立本地用户。

[root@localhost /]# useradd aporai
[root@localhost /]# useradd terry

添加samab用户

[root@localhost /]# smbpasswd -a aporai
New SMB password:123
Retype new SMB password:123
Added user aporai.
[root@localhost /]# smbpasswd -a terry
New SMB password:456
Retype new SMB password:456
Added user terry.

查看是否添加成功:

删除samba用户:

[root@localhost /]# pdbedit -x terry

3)samab用户的登陆:

[root@localhost /]# smbclient -L //172.25.254.213 -U aporai
Enter aporai's password:123

上图表示aporai用户可以登陆samba的 共享文件。

接着我们登陆到samba用户aporai自己的共享目录中(对samba用户来说,自己的家目录就是共享目录):

在aporai的家目录建立一个标记文件:

首先开启sabmba服务的sebool值中,能够查看家目录的程序的开关:

[root@localhost /]# setsebool -P samba_enable_home_dirs on

[root@localhost /]# smbclient  //172.25.254.213/aporai -U aporai
Enter aporai's password:123

如上图,成功登陆进入共享目录

二、samba服务的配置

1.域名的更改:

  [root@localhost samba]# vim /etc/samba/smb.conf

[root@localhost samba]# systemctl restart smb

测试:

2.访问控制(可访问就可挂载):

1)允许访问:

配置主文件:

上图表示允许172.25.254.2这台主机访问登陆samba的共享域。

[root@localhost samba]# systemctl restart smb

测试:

如下图该主机可以登陆:

换台主机尝试:

如下图登陆失败,显示无效的网络响应:

2) 拒绝访问:

主配置文件添加如下配置:

[root@localhost samba]# systemctl restart smb

用172.25.254.2这台主机测试:

登陆失败。

注释掉以上的配置开始下面的实验。

3.添加共享目录:

   首先配置主配置文件:

       上图第一行表示samba服务的共享目录的名称;   第二行是对该共享目录的说明; 第三行是真正存放共享目录数据的目录,第一行的就相当于该目录的别名。

      然后建立真实存放共享数据的目录,并修改其安全上下文:

[root@localhost /]# mkdir /245room
[root@localhost /]# semanage fcontext -a -t samba_share_t '/245room(/.*)?'
[root@localhost /]# restorecon -RvvF /245room/
restorecon reset /245room context unconfined_u:object_r:default_t:s0->system_u:object_r:samba_share_t:s0

[root@localhost /]# ls -Zd /245room/             ##### 查看修改的结果
drwxr-xr-x. root root system_u:object_r:samba_share_t:s0 /245room/

测试共享目录是否建立成功:

测试:在该目录中建立标记文件,然后用samba用户登陆到该共享目录中

[root@localhost /]# touch 245room/hope1

[root@localhost /]# smbclient //172.25.254.213/suzhao -U aporai

由以上结果证明该共享目录建立成功。

4.将系统的目录添加为共享目录:

   这里将 /mnt目录配置成共享目录,先配置主配置文件如下:

由于系统的目录不能更改安全上下文,所以只能让selinux开启对mnt目录的可读可写权,故做如下操作:

[root@localhost /]# setsebool -P samba_export_all_ro 1
[root@localhost /]# setsebool -P samba_export_all_rw on

测试:

[root@localhost mnt]# touch insist1

[root@localhost /]# smbclient //172.25.254.213/school -U aporai

5.读写控制:

1) 所有人可写(包括匿名用户):

没配置文件之前:

[root@localhost /]# mount //172.25.254.213/suzhao /mnt -o username=aporai,password=123

[root@localhost /]# cd /mnt

[root@localhost mnt]# touch hope2
touch: cannot touch ‘hope2’: Permission denied

配置文件:

还要对真实存放数据的共享目录给予满权限:

[root@localhost mnt]# chmod 777 /245room/

现在测试是否能写:

root@localhost mnt]# touch hope2

[root@localhost mnt]# cd /
[root@localhost /]# umount /mnt

2) 指定的用户可写:

配置文件:

[root@localhost /]# mount //172.25.254.213/suzhao /mnt -o username=terry,password=456

[root@localhost /]# cd /mnt
[root@localhost mnt]# touch hope4
touch: cannot touch ‘hope4’: Permission denied

现在用配置文件里面指定的用户porai测试:

[root@localhost /]# umount /mnt
[root@localhost /]# mount //172.25.254.213/suzhao /mnt -o username=aporai,password=123

[root@localhost /]# umount /mnt
[root@localhost /]# mount //172.25.254.213/suzhao /mnt -o username=aporai,password=123

[root@localhost /]# umount /mnt

3)同一个组中的用户能够写:

接着上一个实验,将terry加入aporai的所属组:

[root@localhost /]# id aporai
uid=1001(aporai) gid=1001(aporai) groups=1001(aporai)
[root@localhost /]# usermod -G 1001 terry
[root@localhost /]# id terry
uid=1002(terry) gid=1002(terry) groups=1002(terry),1001(aporai)

修改配置文件:

测试:

[root@localhost /]# mount //172.25.254.213/suzhao /mnt -o username=terry,password=456

[root@localhost /]# cd /mnt

[root@localhost mnt]# touch hope5

[root@localhost /]# umount /mnt

6.是否可浏览共享目录(只是隐藏了,实际可用)

修改配置之前:

配置文件:

重启服务后测试,发现共享目录suzhao已经隐藏了:

但却是可挂载的:

[root@localhost /]# mount //172.25.254.213/suzhao /mnt -o username=aporai,password=123

那当然也是能登陆的:

7.配置有效用户:

1)单用户

配置主文件之前,terry用户可登陆共享目录:

配置主配置文件,使aporai用户为有效用户:

测试: 如下图,terry用户不能挂载共享目录了,当然也就不能登陆共享目录了:

2)同一个组内用户有效:

配置主文件影响:

测试,如下图,因为terry和aporai在同一个用户组,所以terry也是有效用户:

8.将samba用户的身份映射为超级用户:

配置文件:下图的配置表示将aporai用户映射为root用户:

测试:

[root@localhost /]# mount //172.25.254.213/suzhao /mnt -o username=aporai,password=123

[root@localhost /]# cd /mnt

[root@localhost mnt]# touch hope7

9.匿名用户可登陆:

   在配置主文件之前测试如下:

   配置主文件,如下图:

[root@localhost samba]# systemctl restart smb

测试:

[root@localhost ~]# smbclient //172.25.254.213/suzhao

三.samba的多用户挂载模式:

    多用户挂载即:在同一个主机上的多个用户身份可同时用任意用户身份(指samba用户或者samba匿名用户)去挂载已经被挂载的共享目录,然后对该共享目录进行操作,这使得该共享目录的利用率提升。

在实验之前先来看看能不能多用户挂载:

  首先root用户是可以挂载共享目录的:

但是,该主机中的除root用户之外的其他用户不能进行挂载:

下面我们来实现多用户挂载。

## 1)在客户端下载多用samba户挂载的插件:

[root@foundation62 ~]# yum install cifs-utils.x86_64  -y

查看是否下载成功,如下图:

## 2)第一次挂载时的做法:

     假设使用aporai这个smb用户挂载:

[root@foundation62 ~]# vim /root/smbpasswd


[root@foundation62 ~]# mount -o credentials=/root/smbpasswd,sec=ntlmssp,multiuser //172.25.254.213/suzhao /mnt

## 3) 用该主机的其它用户身份来进行挂载已经挂载的共享目录:

在该主机上除了root用户,还有另外三个用户:

先用普通用户alice挂载之前,是不能浏览该目录内的信息的:

现在进行挂载:

[alice@foundation62 mnt]$ cifscreds add -u terry 172.25.254.213  ### 用terry这个smaba用户的身份挂载suzhao这个共享目录
Password:456

现在就能对/mnt进行操作:

主配置文件开启写功能:

在alice的环境下新建文件

在samba主机上看建立该文件的用户身份,如下图可知alice这个用户使用samba用户terry的身份挂载了suzhao这个共享目录:

4)用kiost用户挂载共享目录:

挂载前:

挂载共享目录:

[kiosk@foundation62 mnt]$ cifscreds add -u aporai 172.25.254.213   ### 用kiost用户以samba用户aporai的身份挂载共享目录。
Password:123

新建文件:

在samba服务器上查看建立的文件的属性,发现该文件的用户身份是apoorai

     前面我们已经在root用户的环境下使用smaba用户apporai挂载了suzhao这个共享目录,这证明一个samba用户可被多个客户用户同时挂载。

5) 用kury客户用户使用匿名身份进行挂载:

[kury@foundation62 mnt]$ cifscreds add -u anywho 172.25.254.213
Password:     ### 匿名用户无密码,直接回车

在kury用户下在挂载的目录中建立文件:

在服务器端查看该文件属性,发现hope14的用户身份是nobady,这表示匿名用户身份:

猜你喜欢

转载自blog.csdn.net/qq_40628106/article/details/84111904
今日推荐