Linux-Samba文件共享服务

简介: 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]打印机共享设置:如果需要共享打印机设备,可以在这部分进行配置。image.png 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选项用于指定用户名

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

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

1. [root@localhost ~]# pdbedit -L
2. 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服务器:

1. [root@localhost ~]# systemctl reload smb
2.

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

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

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

1. [root@localhost ~]# vi /etc/samba/smbusers
2. 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 写保护,将以只读方式挂载
目录
相关文章
|
2月前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
308 146
|
3月前
|
缓存 安全 Linux
六、Linux核心服务与包管理
在没有网络的情况下,使用系统安装光盘是获取RPM包的常用方法。场景二:配置本地文件镜像源 (使用系统安装光盘/ISO)(检查RPM包的GPG签名以保证安全) 或。YUM/DNF包管理工具 (yum/dnf)(此处可以放置您为本主题制作的思维导图)处理依赖问题的危险选项 (应极力避免)(覆盖文件、替换已安装包)。(list) 则是列出文件。(query file) 是。(假设系统安装光盘已挂载到。信息 (verbose)。(upgrade) 选项。(all) 已安装的包。(package) 选项
398 11
|
5月前
|
存储 数据管理 Linux
区分Linux中.tar文件与.tar.gz文件的不同。
总之,".tar"文件提供了一种方便的文件整理方式,其归档但不压缩的特点适用于快速打包和解压,而".tar.gz"文件通过额外的压缩步骤,尽管处理时间更长,但可以减小文件尺寸,更适合于需要节约存储空间或进行文件传输的场景。用户在选择时应根据具体需求,考虑两种格式各自的优劣。
859 13
|
6月前
|
安全 Linux
Linux赋予文件000权限的恢复技巧
以上这些步骤就像是打开一扇锁住的门,步骤看似简单,但是背后却有着严格的逻辑和规则。切记,在任何时候,变更文件权限都要考虑安全性,不要无谓地放宽权限,那样可能
206 16
|
7月前
|
Linux
【Linux】 Linux文件I/O常见操作技巧
以上就是Linux文件I/O操作的一些技巧,接纳它们,让它们成为你在Linux世界中的得力伙伴,工作会变得轻松许多。不过记住,技巧的运用也需要根据实际情况灵活掌握,毕竟,最适合的才是最好的。
247 28
|
6月前
|
存储 Linux 数据处理
深入剖析Linux中一切即文件的哲学和重定向的机制
在计算机的奇妙世界中,Linux的这套哲学和机制减少了不同类型资源的处理方式,简化了抽象的概念,并蕴藏着强大的灵活性。就像变戏法一样,轻轻松松地在文件、程序与设备之间转换数据流,标准输入、输出、错误流就在指尖舞动,程序的交互和数据处理因此变得既高效又富有乐趣。
114 4
|
7月前
|
Ubuntu Linux
"unzip"命令解析:Linux下如何处理压缩文件。
总的来说,`unzip`命令是Linux系统下一款实用而方便的ZIP格式文件处理工具。本文通过简明扼要的方式,详细介绍了在各类Linux发行版上安装 `unzip`的方法,以及如何使用 `unzip`命令进行解压、查看和测试ZIP文件。希望本文章能为用户带来实际帮助,提高日常操作的效率。
1198 12
|
6月前
|
Linux
linux文件重命名命令
本指南介绍Linux文件重命名方法,包括单文件操作的`mv`命令和批量处理的`rename`命令。`mv`可简单更改文件名并保留扩展名,如`mv old_file.txt new_name.txt`;`rename`支持正则表达式,适用于复杂批量操作,如`rename 's/2023/2024/' *.log`。提供实用技巧如大小写转换、数字序列处理等,并提醒覆盖风险与版本差异,建议使用`-n`参数预览效果。
|
3月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
490 1
二、Linux文本处理与文件操作核心命令
|
3月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
336 137