Linux 运维手册之 CIFS 文件共享服务

后知后觉 暂无评论

CIFSCommon Internet File System,通用网络文件系统)它使程序可以访问远程计算机上的文件并要求此计算机提供服务。

CIFS 使用 C/S 模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由微软使用。

SMB协议在局域网上用于服务器文件访问和打印的协议。像SMB协议一样,CIFS在高层运行,而不像TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文件传输协议和超文本传输协议的一个实现。

CIFS 的一个实现

SMB(Server Message Block,服务器消息块)是Windows服务器和客户端之间实现文件共享的服务协议。Samba服务通常用来做跨系统文件共享服务,实现不同操作系统之间的资源共享。

Samba 服务部署

RadHat / CentOS

# yum -y install samba

Debian / Ubuntu

# apt install samba

Fedora

# dnf install samba

Samba 服务配置

本文以 CentOS 7 为例,其他发行版请自行替换相关命令。

[root@domain ~]# cat /etc/samba/smb.conf
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.

[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 = @printadmin root
    force group = @printadmin
    create mask = 0664
    directory mask = 0775

全局参数详解

项目说明
workgroup工作组
security安全
printing共享打印机类型
printcap name打印机配置名
load printers自动加载打印机
cups options打印模式

局部参数详解

项目说明
comment描述
path共享路径
browseable是否可读
writable是否可写
valid users允许访问该共享的用户
invalid users禁止访问该共享的用户
write list允许写入该共享的用户
guest ok指定该共享是否允许访客账户访问

默认程序以用户鉴权模式运行,需要以用户身份进行验证。

添加系统普通用户

# useradd kane

配置用户密码(Samba 的密码由 pdbedit 单独进行管理,不使用系统用户密码)

# pdbedit -a -u kane

配置共享目录

# mkdir -p /data/share/

目录授权

# chown -R /data/share/

配置文件修改

在配置文件最后加入一个新单元

[share]
    comment = Kane Share Directories
    path = /data/share
    public = No
    writable = Yes

重启服务

# systemctl restart smb
# systemctl enable smb

Samba 访问测试

Windows 环境

打开我的电脑,在地址栏输入 //domain/ip,然后使用用户和密码即可访问。

注意:地址前面的 // 必须存在。

Linux 环境

在 Linux 中访问 Samba 服务器需要安装额外的包。

# yum install -y cifs-utils
# yum install -y samba-client

查询远端可用挂载点

[root@localhost ~]# smbclient -L 10.0.0.55 -U kane
Enter SAMBA\kane's password: 

    Sharename       Type      Comment
    ---------       ----      -------
    print$          Disk      Printer Drivers
    share           Disk      Kane Share Directories
    IPC$            IPC       IPC Service (Samba 4.7.1)
    kane            Disk      Home Directories
Reconnecting with SMB1 for workgroup listing.

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

    Workgroup            Master
    ---------            -------
小贴士:-U 指定用户 -L 指定远端地址。

挂载远端 SMB 服务器

# mount -t cifs -o rw,user=kane,pass=123456 //10.0.0.55/share /mnt
小贴士:地址后跟随的名称为查询结果中的 Sharename。

附录

参考链接

本文撰写于一年前,如出现图片失效或有任何问题,请在下方留言。博主看到后将及时修正,谢谢!
回复
回答16+33=