Linux学习笔记—SAMBA文件服务器

11 篇文章 0 订阅

一、samba相关概念

NFS可以让 Unix Like 的机器互相共享文件;
CIFS只能让Windows机器共享文件;
SMB(Server Message Block)即SAMBA,可以让Unix Like和WIndows不同的操作系统平台互相共享数据。

SAMBA使用的 NetBIOS (Network Basic Input/Output System)协议,但是NetBIOS是无法跨路由的。
通过NetBIOS over TCP/IP技术可以跨路由器的使用SAMBA服务器所提供的功能。目前,SAMBA还是比较广泛的使用在LAN内部。

1、SAMBA常见的应用
  • 共享文件与打印机服务
  • 可以提供用户登录SAMBA主机时的身份认证,以提供不同身份用户的个别数据;
  • 可以进行Windows网络上的主机名解析(NetBIOS Name);
  • 可以进行设备的共享(例如Zip、CD-ROM)。
2、SAMBA的基本信息
# /etc/samba/smb.conf           主配置文件
# /usr/share/doc/samba-4.1.1	含了SAMBA的所有相关的技术手册
  • 服务端口:通常使用TCP/445进行所有连接。还使用UDP137、UDP138和TCP/139进行向后兼容
  • 服务名称:smb --主机目录共享,文件与打印机等信息。nmb–管理群组和NetBIOS Name解析的。
  • 软件包:Samba-common – Samba支持的文件,Samba-client – 客户端应用程序,Samba – 服务器应用程序

二、samba文件存储

实验环境:
1>服务端IP=172.25.254.205
2>关闭防火墙

[root@localhost ~]# systemctl stop firewalld

<1>安装并开启samba服务

[root@localhost ~]# yum install samba samba-common samba-client -y
[root@localhost ~]# systemctl start smb

<2>匿名用户访问——无密码

[root@localhost ~]# smbclient -L //172.25.254.205
Enter root's password:                            ##无密码,回车即可
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]   ##域名MYGROUP

	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
	---------            -------

<2>设定访问域名及黑、白名单

[root@localhost ~]# vim /etc/samba/smb.conf          ##配置文件
 89         workgroup = WESTOS            ##域名
 96         hosts deny =172.25.254.205    ##黑名单
 97         hosts allow =172.25.254.105   ##白名单
 [root@localhost ~]# systemctl restart smb.service   ##重启服务

测试:
<1>IP=172.25.254.105主机访问

[root@localhost ~]# smbclient -L //172.25.254.205    ##白名单用户访问
Enter root's password: 
Anonymous login successful
Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1]       ##域名更改为WESTOS

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

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

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

这里写图片描述
<2>IP=172.25.254.205主机访问,访问拒绝
这里写图片描述


注意:配置文件的查找
这里写图片描述


三、smb文件挂载

实验环境:selinux为permissive状态或disabled姿态

[root@localhost ~]# getenforce 
Permissive

<1>创建smb用户(smb用户建立的前提:虚拟机必须存在该用户)

[root@localhost ~]# id student         ##student用户存在                
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
[root@localhost ~]# smbpasswd -a student ##设定student用户在smb中的密码
[root@localhost ~]# useradd westos       ##创建westos用户
[root@localhost ~]# smbpasswd -a westos  ##设定westos用户在smb中的密码
[root@localhost ~]# pdbedit -L         ##查看smb用户

示图:查看smb用户
这里写图片描述


注意:smb用户的删除

[root@localhost ~]# pdbedit -x 用户名   

这里写图片描述


<2>本地用户登陆

[root@localhost ~]# smbclient -L //172.25.254.205 -U westos

示图:默认登陆目录为本地用户westos的家目录
这里写图片描述
这里写图片描述
<3>smb命令
这里写图片描述
这里写图片描述


注意:
<1>!ls 表示查看客户端
<2>? 输出为smb中支持的命令,命令少于shell中的命令,若需执行shell中的命令,需挂载。


<4>挂载
1)临时挂载

[root@localhost ~]# mount -o username=linux,password=123 //172.25.254.205/linux /mnt    ##临时挂载

这里写图片描述
2)永久挂载

[root@localhost ~]# vim /etc/fstab         ##永久挂载
//172.25.254.205/linux /mnt cifs defaults,username=linux,password=123  0 0            

这里写图片描述
示图:永久挂载
这里写图片描述

四、smb共享设置

实验环境:
<1>SELinux为Enforcing状态
<2>删除永久挂载

[root@localhost ~]# getenforce 
Enforcing

SELinux为Enforcing状态时,本地用户无法共享家目录
这里写图片描述

1、共享Samba用户家目录

[root@localhost ~]# setsebool -P samba_enable_home_dirs on      ##开启此服务

测试:
这里写图片描述


注意:配置文件提示开启bool值

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

这里写图片描述


2、共享用户自行建立的目录
[root@localhost ~]# mkdir /smbdir       ##建立共享目录
[root@localhost ~]# semanage fcontext -a -t samba_share_t 'smbdir(/.*)?'
[root@localhost ~]# restorecon -RvvF /smbdir/
[root@localhost ~]# vim /etc/samba/smb.conf
322    [westos]           ##任意
323    comment = smbdir directory       ##任意
324    path = /smbdir                   
[root@localhost ~]# systemctl restart smb.service   ##重启服务

示图:
<1>修改安全上下文
这里写图片描述
<2>配置文件,共享用户自行建立的目录/smbdir
这里写图片描述
测试:
示图:
<1>匿名用户登陆可查看共享目录
这里写图片描述
<2>本地用户可进入共享目录的家目录
这里写图片描述


注意:配置文件提示

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

这里写图片描述


3、共享系统目录

注意:修改安全上下文会影响其他服务的使用,所以需要修改smb布尔值。修改此bool,也可共享用户自行建立的目录。

[root@localhost ~]# getsebool -a | grep samba
[root@localhost ~]# setsebool -P samba_export_all_rw on  ##开启smb所有读写bool值
[root@localhost ~]# vim /etc/samba/smb.conf
325   [mnt]
326   comment = /mnt           
327   path = /mnt         
[root@localhost ~]# systemctl restart smb.service   ##重启服务

示图:
<1>查看bool值
这里写图片描述
<2>配置文件,共享/mnt系统目录
这里写图片描述
测试:
<1>匿名用户可查看共享目录
这里写图片描述
<2>本地用户可进入共享目录的家目录
这里写图片描述

五、用户权限设置

<1>允许所有人可写

[root@localhost ~]# vim /etc/samba/smb.conf    ##允许共享目录/smbdir可写
322    [westos]                    ##任意
323    comment = smbdir directory  ##任意
324    path = /smbdir    
325    writable = yes              ##允许可写               

[root@localhost ~]# systemctl restart smb.service   ##重启服务
[root@localhost ~]# mount //172.25.254.205/westos /mnt -o password=123,username=linux

测试:
注意:文件系统需挂载,才可共享访问
这里写图片描述
<2>允许某用户可写

[root@localhost ~]# umount /mnt
[root@localhost ~]# vim /etc/samba/smb.conf    ##允许共享目录/smbdir可写
322    [westos]                    ##任意
323    comment = smbdir directory  ##任意
324    path = /smbdir    
325;  writable = yes              ##注释,允许可写      
326    write list = westos          
[root@localhost ~]# systemctl restart smb.service   ##重启服务

示图:
<1>配置文件,只允许westos用户可写
这里写图片描述
<2>查看文件允许某用户可写

mount 命令

这里写图片描述

测试:
<1>westos用户可写
这里写图片描述
<2>student用户不可写
这里写图片描述
<3>允许组成员可写

[root@localhost ~]# vim /etc/samba/smb.conf    ##允许共享目录/smbdir可写
322    [westos]                    ##任意
323    comment = smbdir directory  ##任意
324    path = /smbdir    
325;  writable = yes              ##注释,允许可写      
326    write list = @westos        ##允许westos组成员可写,write list = +list     
[root@localhost ~]# systemctl restart smb.service   ##重启服务
[root@localhost ~]# id linux
uid=1002(linux) gid=1002(linux) groups=1002(linux)   ##linux不属于westos组
[root@localhost ~]# usermod -G westos linux     ##将linux加入westos组
[root@localhost ~]# umount /mnt
[root@localhost ~]# mount //172.25.254.205/westos /mnt -o password=123,username=linux

测试:
<1>组成员linux可写
这里写图片描述
<2>组成员student可写
这里写图片描述
4、共享浏览信息

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

        [westos]
        comment = smbdir directory
        path = /smbdir
;       writeable = yes
        write list = @westos
        browseable = no    ##默认browseable = yes   

[root@localhost ~]# systemctl restart smb.service 

测试:
<1>默认browseable = yes,共享可浏览
这里写图片描述
<2>隐藏共享浏览
这里写图片描述
5、student对于westos目录以超级用户身份访问

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

        [westos]
        comment = smbdir directory
        path = /smbdir
        writeable = yes
;       write list = @westos
        browseable = yes
        admin users = student

[root@localhost ~]# systemctl restart smb.service 

这里写图片描述
测试:

[root@localhost ~]# umount /mnt
[root@localhost ~]# mount //172.25.254.205/westos /mnt -o password=redhat,username=student
[root@localhost ~]# touch /mnt/file

这里写图片描述
6、允许匿名用户访问共享目录

[root@localhost ~]# vim /etc/samba/smb.conf 
125     map to guest = bad user   

322     [westos]
323     comment = smbdir directory
324     path = /smbdir
325     writeable = yes
326;    write list = @westos
327     browseable = yes
328     admin users = student       
329     guest ok = yes            ##允许匿名用户
[root@localhost ~]# systemctl restart smb.service 

这里写图片描述
测试:

[root@localhost ~]# mount //172.25.254.205/westos /mnt -o username=guset
[root@localhost ~]# smbclient //172.25.254.205/westos

这里写图片描述

六、多用户挂载

服务器:

[root@localhost ~]# vim /etc/samba/smb.conf 
        [westos]
        comment = smbdir directory
        path = /smbdir
        write list = westos
        browseable = yes
[root@localhost ~]# systemctl restart smb.service 

这里写图片描述

客户端:真机

以普通方式挂载,会使用户登录信息泄漏 。使用cifs-utils进行加密,安装cifs-utils软件包,它包含了cifscreds命令,将用户的信息放在根下的某个文件中。

<1>使用cifs-utils进行加密
[root@foundation5 ~]# yum install cifs-utils -y    #安装cifs-utils软件包,它包含了cifscreds命令 
[root@foundation5 ~]# vim /root/smbuser   ##新建用户信息文件
username=linux
password=123
<2>超级用户认证挂载(以linux用户认证信息)
[root@foundation5 ~]# mount -o credentials=/root/smbuser,sec=ntlmssp,multiuser //172.25.254.205/westos /mnt
<3>普通用户认证以westos用户登陆
[kiosk@foundation2 Desktop]$ cifscreds add -u westos 172.25.254.205
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值