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

一、安装Samba服务;

安装Samba服务有两种方式:

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

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

此处使用在线安装方式。

openwrt samba指定网络密码不正确 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