Openwrt下设置Samba服务

openwrt下配置Samba与其他发行版有所不同,现记录如下,以供参考。

一、安装Samba服务;

安装Samba服务有两种方式:

1.编译安装:编辑openwrt固件的时候,限制Samba相关功能。

2.在线安装:使用openwrt包管理工具opkg在线安装。

此处使用在线安装方式。

Openwrt下设置Samba服务

其中“luci-app-samba”主要用于web配置,如果不需要可用不安装。

二、Samba配置

Openwrt下Samba服务涉及如下配置文件:

1. /etc/samba/smb.conf.template:存放公共配置

2. /etc/config/samba:UCI配置

3. /etc/samba/smb.conf:Samba服务运行时加载的文件,由前两个文件组合而成。

如果Samba服务通过init.d脚本启动(/etc/init.d/samba start|restart),"/etc/samba/smb.conf"文件将被重新创建(结合UCI配置和template文件)。因此用户只能通过修改“/etc/config/samba”(官方推荐使用LUCI编辑UCI配置,避免出错,需要安装“luci-app-samba”)或“/etc/samba/smb.conf.template”进行配置。

UCI配置示例如下:

config 'samba'
        option 'name' 'OpenWrt'
        option 'workgroup' 'OpenWrt'
        option 'description' 'Samba on OpenWrt'
        option 'charset' 'UTF-8'
        option 'homes' '0'
        option 'interface' 'loopback lan'

config 'sambashare'
        option 'name' 'Shares'
        option 'path' '/path/to/share'
#       option 'users' 'sandra'
        option 'guest_ok' 'yes'
        option 'create_mask' '0700'
        option 'dir_mask' '0700'
        option 'read_only' 'yes'

注意配置节点类型为“sambashare”,系统只能识别“samba”、“sambashare”两种类型。“samba”类型为全局配置,“sambashare”为具体目录配置

配置项说明:

“samba”配置项

名称 类型 必填 默认值 选项 描述
name string no 主机名称(hostname)   服务名称
workgroup string no 主机名称(hostname)   工作组名称
description string no Samba on hostname or OpenWrt   服务描述
charset string no UTF-8   显示字符集和Unix字符集
homes bool no 0 0,1 是否共享用户home目录
interface string no loopback lan  

服务监听的网络接口

语法:“<uci-interface-name> <uci-interface-name> …”

“sambashare”配置项:

名称 类型 必填 默认值 选项 描述
name string yes (none)   节点名称,会显示在文件浏览器
path file path yes (none)   共享目录的绝对路径,对应Samba配置项:path
users string no 全局配置里面的访客账号  

允许访问的samba用户,使用smbpasswd添加。

用户之间使用逗号分隔(如:"root,nobody")。

对应Samba配置项:valid users

read_only string no yes或者全局template文件配置 no,yes 只读模式开关,对应Samba配置:read only
guest_ok string no no或者全局template文件配置 no,yes 是否允许匿名访问,对应Samba配置:guest ok
create_mask integer no 0744或者全局template文件配置   新建文件的掩码,对应Samba配置:create mask
dir_mask integer no 0755或者全局template文件配置   新建目录的掩码,对应Samba配置:directory mask

配置好共享目录后,重启Samba服务(/etc/init.d/samba restart)即可。

三、关于开机启动

使用“/etc/init.d/samba enable”启用开启启动,“/etc/init.d/samba disable”禁止开机启动。

四、不使用UCI如何配置

UCI配置只支持部分samba配置。对于UCI不满足需求的情况,可以抛开UCI自定义配置。

这种情况下,使用“/etc/init.d/samba disable”关闭init.d开机启动。取而代之,使用“smbd -D”和“nmbd -D”命令来启动服务。如果需要开机启动,可以把这两条命令添加的“/etc/rc.local”文件。这样“/etc/samba/smb.conf”就不会重新创建,直接修改该文件进行配置即可。

参考文档:

1.Openwrt Project:Samba

2.Openwrt Project:Samba(smb)

3.User Documentation - SambaWiki

4.Samba - ArchWiki

5.Openwrt 之 Samba配置(编译安装可参考)

6.openwrt设置samba共享

7. The UCI System