Linux-Samba文件共享服务

了解samba:

        Samba是著名的开源软件项目之一,它在Linux/UNIX操作系统中实现了微软公司的SMB/CIFS网络协议,从而使平台的文件共享变得更加容易,选用Samba可以很好地解决不同操作系统之间的文件互访问题。

一,Samba软件的组成

1.Samba软件包的构成:

        Samba大部分软件包已经在CentOS系统中安装好了,用户可以通过以下操作查询系统中samba相关软件包的安装情况。 

[root@localhost ~]# rpm -qa | grep "^samba"
samba-common-4.4.4-9.el7.noarch
samba-common-libs-4.4.4-9.el7.x86_64
samba-libs-4.4.4-9.el7.x86_64
samba-client-libs-4.4.4-9.el7.x86_64
samba-common-tools-4.4.4-9.el7.x86_64
samba-4.4.4-9.el7.x86_64

2.Samba服务的程序组件

        Samba服务器提供smbd,nmbd两个程序,分别完成不同的功能。其中,smbd负责为客户端提供服务器中共享资源(目录和文件等)的访问;nmbd负责提供基于NetBIOS协议的主机名称解析,以便windows网络中的主机提供查询服务。

        安装完samba软件包后,管理员可以通过systemctl工具来控制samba服务器的启动,中止,开机自启。

[root@localhost ~]# systemctl start smb
[root@localhost ~]# systemctl start nmb
[root@localhost ~]# systemctl enable smb
Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service.
[root@localhost ~]# systemctl enable nmb
Created symlink from /etc/systemd/system/multi-user.target.wants/nmb.service to /usr/lib/systemd/system/nmb.service.

二,主配置文件smb.conf

1.smb.conf配置文件

        Samba服务的配置文件位于/etc/samba/目录中,其中smb.conf是主配置文件。

[root@localhost ~]# grep -v "#" /etc/samba/smb.conf

[global]
        workgroup = SAMBA
        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw

[homes]
        comment = Home Directories
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes

[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = root
        create mask = 0664
        directory mask = 0775

在smb.conf文件中存在三个特殊的配置段。

[global]全局设置:这部分配置项的内容对整个Samba服务器都有效。

[homes]宿主目录共享设置:设置Linux用户的默认共享,对应用户的宿主目录。当用户访问服务器中与自己用户名同名的共享目录时,通过验证后将自动映射到该用户的宿主文件夹中。

[printers]打印机共享设置:如果需要共享打印机设备,可以在这部分进行配置。

 2.testparm工具

        Samba服务器提供了一个配置文件检查工具——testparm工具可以对smb.conf配置文件的正确性进行检查,如果发现错误将会进行提醒。

[root@localhost ~]# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters
[global]
        workgroup = SAMBA
        printcap name = cups
        security = USER
        idmap config * : backend = tdb
        cups options = raw

默认安装的主配置文件中内容较少,关于smb.conf文件中的更多配置项,可以执行“man smb.cnf”命令查阅帮助或参考“/etc/samba/smb.conf.example”。

三,构建文件共享服务器

一,需要用户验证的共享

        1.建立Samba用户数据库 :执行pdbedit -a -u vina命令可以添加一个名为vina的Samba共享用户,其中的-a选项表示添加,-u选项用于指定用户名称

[root@localhost ~]# useradd vina
[root@localhost ~]# pdbedit -a -u vina

        执行pdbedit -L 命令可以列出所有的Samba共享用户,结合-v选项可以输出更详细的内容。

[root@localhost ~]# pdbedit -L
vina:1000:

        当指定的Samba用户不在使用时,结合-x选项并指定samba用户名称,删除指定的samba账号。

[root@localhost ~]# pdbedit -x -u vina
[root@localhost ~]# pdbedit -L vina
Username not found!

        2.设置用户访问权限

        创建共享用户vanko,hunter,确认共享目录:

[root@localhost ~]# useradd vanko    #创建系统用户
[root@localhost ~]# useradd hunter
[root@localhost ~]# pdbedit -a -u vanko    #创建Samba共享用户
[root@localhost ~]# pdbedit -a -u hunter
[root@localhost ~]# mkdir /opt/mytools    #新建本地测试目录
[root@localhost ~]# touch /opt/mytools/test.txt    #新建测试文件

        修改smb.conf配置文件,添加名为tools的共享目录配置段:

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

[tools]
        comment = you can get software tools from here
        path = /opt/mytools
        read only = yes
        valid users = vanko,hunter
        write list = hunter

        重载加载smb.conf文件中的配置,或重启smb服务器:

[root@localhost ~]# systemctl reload smb

四,用户映射及访问地址限制

         进一步提供Samba共享服务的安全性,除了可以对指定的共享目录设置用户授权以外,还可以采取用户映射,访问地址限制等措施。

1.共享账号映射(别名)

[root@localhost ~]# vi /etc/samba/smbusers
vanko = sunboy player

        设置完成共享用户的别名以后,若要正常启用账号映射功能,需要修改主配置文件/etc/samba/smb.conf,添加全局配置项“ username map = /etc/samba/smbusers ”,然后重新加载配置即可生效。

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

[global]
        username map = /etc/smbusers
.......

[root@localhost ~]# systemctl reload smb

2.访问地址限制

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

[global]
       hosts allow = 192.168.2.
........
[root@localhost ~]# systemctl reload smb

注:当通过共享目录上传文件,创建子目录的默认权限,分别使用配置项directory mask和create mask进行指定。

[tools]
        .........
        directory mask = 0755    #上传的目录的默认权限为755
        create mask - 0644        #文件默认权限为644

五,Linux系统如何访问共享文件夹

        1.安装samba客户端工具

[root@localhost ~]# yum -y install samba-client        #安装samba客户端

        2.查询目标主机的共享资源列表

[root@localhost ~]# smbclient -L 192.168.2.1 -U hunter
Enter hunter's password:
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4]

        Sharename       Type      Comment
        ---------       ----      -------
        print$          Disk      Printer Drivers
        IPC$            IPC       IPC Service (Samba 4.4.4)
        tools           Disk      you can get software tools from here
        hunter          Disk      Home Directories
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4]

        Server               Comment
        ---------            -------
        LOCALHOST            Samba 4.4.4

        Workgroup            Master
        ---------            -------
        SAMBA                LOCALHOST

         3.登录并访问共享文件夹

        选项:-U:指定经过授权的共享用户名称(或映射的别名),并输入正常密码。需要通过“ //主机名/共享名 ”的形式指定共享文件夹的位置。

[root@localhost ~]# smbclient -U sunboy //192.168.2.1/tools -U hunter
Enter hunter's password:
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4]
smb: \>

        在smb:\>环境中,使用特定的命令可以对共享目录进行列表,上传,下载,例:ls用于列表目录,pwd命令查看当前路径,get命令和mget命令用于下载文件,put命令和mput命令用于上传文件。?和 help命令在线帮助。

六,使用mount挂载共享文件夹

1.挂载samba服务器中的tools共享目录挂载到本地

[root@localhost ~]# mount -o username=hunter //192.168.2.1/tools /smbdir
mount: //192.168.2.1/tools 写保护,将以只读方式挂载

注:samba共享服务的常用属性本人了解了这些,欢迎大家来补充 !!!

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

征服bug

curry.30

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值