运维进阶——samba共享文件系统

samba概念

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

1.samba服务器的安装及访问调试

yum install samba-client samba-common.x86_64 samba.x86_64 -y

在这里插入图片描述
在这里插入图片描述

编辑samba的配置文件

vim /etc/samba/smb.conf

添加

    [gzl]	共享的名称
    path = /westos	共享的路径

在这里插入图片描述
同时可以看到主配置文件中显示,selinux对共享目录的影响

Set SELinux labels only on files and directories you have created. Use the
  chcon command to temporarily change a label:
chcon -t samba_share_t /path/to/directory

我们需要设置安全上下文

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

在这里插入图片描述
systemctl restart smb 重启smaba

systemctl stop firewalld.service

[root@server ~]# smbpasswd -a westos
New SMB password:
Retype new SMB password:
Failed to add entry for user westos.
[root@server ~]# id westos
id: westos: no such user

在这里插入图片描述
要添加为smb用户,必须要是本地用户

[root@server ~]# useradd westos
[root@server ~]# smbpasswd -a westos
New SMB password:
Retype new SMB password:
Added user westos.
[root@server ~]# pdbedit -L
westos:1001:

在这里插入图片描述

pdbedit -L    查看smb用户

在客户端测试

下载samba客户端

扫描二维码关注公众号,回复: 6390590 查看本文章
yum install samba-client.x86_64 -y

方式一:用户身份或匿名直接查看
匿名用户查看
在这里插入图片描述
用户身份查看
[root@client ~]# smbclient -L //172.25.254.213 -U westos
Enter westos’s password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]

Sharename       Type      Comment
---------       ----      -------
gzl             Disk      
IPC$            IPC       IPC Service (Samba Server Version 4.1.1)
westos          Disk      Home Directories
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]

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

Workgroup            Master
---------            -------

在这里插入图片描述
在服务端建立文件,在客户端查看

[root@client ~]# smbclient //172.25.254.213/gzl -U westos
Enter westos's password: 
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
  .                                   D        0  Sat May 25 22:06:52 2019
  ..                                  D        0  Sat May 25 21:48:03 2019
  file                                N        0  Sat May 25 22:06:52 2019

		40913 blocks of size 262144. 28591 blocks available
smb: \> quit

在这里插入图片描述
方式二:挂载后操作

[root@client ~]# mount //172.25.254.213/gzl /mnt -o username=westos,password=123
[root@client ~]# df
Filesystem           1K-blocks    Used Available Use% Mounted on
/dev/vda1             10473900 3247632   7226268  32% /
devtmpfs                469332       0    469332   0% /dev
tmpfs                   484920     140    484780   1% /dev/shm
tmpfs                   484920   12800    472120   3% /run
tmpfs                   484920       0    484920   0% /sys/fs/cgroup
/dev/mapper/vg0-vo      483670    2339    451840   1% /home
/dev/sr0               3704296 3704296         0 100% /run/media/root/RHEL-7.3 Server.x86_64
//172.25.254.213/gzl  10473900 3158236   7315664  31% /mnt
[root@client ~]# cd /mnt
[root@client mnt]# ls
file

在这里插入图片描述

2.samba基本操作

在配置文件最后添加这些的作用

 [gzl]
    comment = westos dir	说明
    path = /westos		共享路径
       browseable = no		是否可以查看到,no为不显示,但可以用
   valid users = +westos	允许哪些用户登陆,前面加 +或@为 westos这个组
    writeable = yes		可写
    guest ok = yes		匿名用户登陆

注意:配置文件修改后,还要注意共享目录的权限,对于哪些用户可写,只有两个都可写,才能写
1).说明

vim /etc/samba/smb.conf

添加

 [gzl]
    comment = westos dir   
    path = /westos       

在这里插入图片描述

systemctl restart smb

客户端查看

[root@client ~]# smbclient -L //172.25.254.213
Enter root's password: 
Anonymous login successful

匿名用户没有密码,所以直接回车就可以了

Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]

	Sharename       Type      Comment
	---------       ----      -------
	gzl             Disk      westos dir
	IPC$            IPC       IPC Service (Samba Server Version 4.1.1)
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]

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

	Workgroup            Master
	---------            -------

在这里插入图片描述
2)共享的目录是否可以查看

vim /etc/samba/smb.conf

添加

 [gzl]
    comment = westos dir    
    path = /westos          
    browseable = no

在这里插入图片描述

systemctl restart smb

客户端查看

[root@client ~]# smbclient -L //172.25.254.213
Enter root's password: 
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]

	Sharename       Type      Comment
	---------       ----      -------
	IPC$            IPC       IPC Service (Samba Server Version 4.1.1)
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]

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

	Workgroup            Master
	---------            -------

在这里插入图片描述
查看不到,那能否使用呢

[root@client ~]# mount //172.25.254.213/gzl /mnt -o username=westos,password=123
[root@client ~]# df
Filesystem           1K-blocks    Used Available Use% Mounted on
/dev/vda1             10473900 3251420   7222480  32% /
devtmpfs                469332       0    469332   0% /dev
tmpfs                   484920     140    484780   1% /dev/shm
tmpfs                   484920   12800    472120   3% /run
tmpfs                   484920       0    484920   0% /sys/fs/cgroup
/dev/mapper/vg0-vo      483670    2339    451840   1% /home
/dev/sr0               3704296 3704296         0 100% /run/media/root/RHEL-7.3 Server.x86_64
//172.25.254.213/gzl  10473900 3158276   7315624  31% /mnt

在这里插入图片描述
查看不到,但是可以使用
3)允许登陆的用户

 [gzl]
        comment = westos dir	说明
        path = /westos		共享路径
;       browseable = no		是否可以查看到,no为不显示,但可以用
       valid users = westos	允许哪些用户登陆,前面加 +或@为 westos这个组
#和;都表示注释

在这里插入图片描述
systemctl restart smb

在客户端查看
先用westos用户查看
在这里插入图片描述
可以登录查看到
那么其他用户是否可以呢
在服务端新建一个用户,并把这个用户添加为samba用户
在这里插入图片描述
在客户端登录查看
在这里插入图片描述
被禁止无法查看

在服务端改为

 [gzl]
    comment = westos dir	说明
    path = /westos		共享路径
;       browseable = no		是否可以查看到,no为不显示,但可以用
   valid users = +westos	允许哪些用户登陆,前面加 +或@为 westos这个组

systemctl restart smb

设置为westos组用户可登陆
在这里插入图片描述
在服务端将gzl用户添加到westos组
在这里插入图片描述

在这里插入图片描述
gzl作为westos的组用户可以登录
4)可写
在服务端
在这里插入图片描述
允许可写,但还要看/westos这个目录的权限
在这里插入图片描述
使/westos目录也具有写权限
在客户端
在这里插入图片描述
服务端查看
在这里插入图片描述

3.怎样实现smb的多用户挂载?

刚才在服务端将smb服务设置好之后
客户端实现挂载,对smb的共享目录进行修改
这个时候客户端以服务端lwestos身份实现登陆
现在客户端的linux用户也想使用smb服务
当linux用户直接可以查看root用户挂载在/mnt的东西时,这样是很不安全的
在这里插入图片描述

就像这个现象
应该客户端地每一个用户在smb服务端均有自己的用户

那么如何操作呢

实验步骤如下:
客户端

mount //172.25.254.111/gzl /mnt -o username=lee,password=lee客户端挂载
df查看挂载
cd /mnt
ls
useradd linux
id linux
su - linux
cd /mnt
ls也可以看到root用户挂载后/mnt下面的东西

在这里插入图片描述

df
cd /mnt
ls
mount 可以看到是lwestos身份的smb
exit

在这里插入图片描述

yum install cifs-utils -y 安装可以实现多用户挂载的服务
man mount.cifs 可以查看cifs系统的挂载策略
df
umount /mnt
df

在这里插入图片描述

vim /root/smbauth 	smb挂载用户身份的一个认证文件

之前挂载的时候用户是裸露在外面的,现在写在认证文件里面

username=westos
password=l123

在这里插入图片描述

chmod 600 /root/smbauth
ls -l /root/smbauth
mount //172.25.254.113/gzl /mnt -o credentials=/root/smbauth

在这里插入图片描述

umount /mnt
mount //172.25.254.113/Lgzl /mnt -o credentials=/root/smbauth,sec=ntlmssp,multiuser    
su - linux
cd /mnt
ls 	被拒绝

在这里插入图片描述
以认证方式挂载,切换到linux用户,无法查看

现在为linux用户创建挂载用户

cifscreds --help 
cifscreds add -u westos 172.25.254.111
cd /mnt
ls

此时就可以看了

在这里插入图片描述

cifscreds clear -u westos 172.25.254.111 取消
touch file6
ll 在客户端是属于linux用户的(因为linux的id与westos的id一样)

在服务端:

cd /westos
ll 在服务端是属于westos的

注意:如果客户端的id与westos不一样,就直接显示westos的id,因为客户端不存在id与westos一样的用户
id westos

客户端:
exit
cd /mnt
touch file7

服务端:
ll 属于westos的

怎样实现永久挂载?

在客户端:

vim /etc/fstab

//172.25.254.111/gzl /mnt cifs defaults,credentials=/root/smbauth,sec=ntlmssp,multiuser 0 0

mount -a 
df

猜你喜欢

转载自blog.csdn.net/zhaoliang_Guo/article/details/90675361
今日推荐