Samba的简单安装和配置——ubuntu

1、概述

Samba是局域网内的跨平台的共享文件服务器。同一网络下Windows与macOS都可以进行访问。Samba是构建在NetBIOS(Network Basic Input/Output System)、SMB(Server Message Block)、CIFS(Common Internet File System)等数十种服务和协议基础上的。

Samba服务所使用的端口和协议,需要端口转发的时候可以参考:

  • Port 137 (UDP) - NetBIOS 名字服务 ; nmbd。
  • Port 138 (UDP) - NetBIOS 数据报服务。
  • Port 139 (TCP) - 文件和打印共享 ; smbd (基于SMB(Server Message Block)协议,主要在局域网中使用,文件共享协议)。
  • Port 389 (TCP) - 用于 LDAP (Active Directory Mode)。
  • Port 445 (TCP) - NetBIOS服务在windos 2000及以后版本使用此端口。
  • Port 901 (TCP) - 用于 SWAT,用于网页管理Samba。

2、安装

ubuntu安装很简单,使用apt指令即可。

sudo apt update
sudo apt install samba

确认samba安装成功。

samba -V

3、配置

选择或新建一个文件夹作为共享文件夹。

mkdir /home/foo/share

进行配置。

sudo vim /etc/samba/smb.conf

每一部分的配置都从一对“ [] ”开始(除了“ [global] ”),方括号中的名字将成为共享资源的名称。详细配置方法可以通过man smb.conf查看。以我自己的配置为例:

[commonshare]
    comment = common share directory
    path = /commonshare
    public = no
    valid users = @common
    write list = @common
    create mode = 0770
    directory mode = 0770
    force group = common
[share]
    comment = hero share dir
    path = /home/%U/share
    public = no
    valid users = %U
    write list = %U
  • path为共享文件夹路径。
  • public为是否匿名用户可见。
  • valid users为有效用户,@表示用户组。
  • write list为可以写入的用户,@同样表示用户组。
  • create modedirectory mode,其中的mode也可以是mask,这两个选项分别为新建文件和目录的用户权限,数字含义与Linux中的权限相同。
  • force group为新建文件和目录的所有组,同理force user为所有者。
  • %U为会话用户名,是客户端登陆时输入的用户名。以%开头的值为可替换变量,服务器工作时会替换为对应的值。更多可替换变量可以通过man smb.conf查看。

以上配置建立了两个共享文件夹,第一个是用于common组的共享文件夹,组的所有成员都对其中其他成员的文件和目录具有所有权限,可以进行读写和执行。第二个是共享文件夹为用户私人所有,每个登录客户端的用户看到的文件夹路径为其home目录下的share文件夹。

对允许使用的用户foo(需要预先在服务器中添加账户)添加Samba服务需要的密码。

sudo smbpasswd -a foo

4、启动

更新防火墙规则允许Samba服务。

sudo ufw allow samba

重启Samba

sudo service smbd restart

5、使用

  • Windows

在文件夹的地址栏输入 \\IP地址\配置名,比如前例中的 \\192.168.0.2\commonshare

  • ubuntu

打开文件管理器然后点击连接服务器,然后输入smb://192.168.0.2/commonshare

  • macOS

访达目录中, 点击前往中的连接服务器输入smb://192.168.0.2/commonshare

6、参考

https://ubuntu.com/tutorials/install-and-configure-samba#1-overview