Openwrt下设置Samba服务
openwrt下配置Samba与其他发行版有所不同,现记录如下,以供参考。
一、安装Samba服务;
安装Samba服务有两种方式:
1.编译安装:编辑openwrt固件的时候,限制Samba相关功能。
2.在线安装:使用openwrt包管理工具opkg在线安装。
此处使用在线安装方式。
其中“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”就不会重新创建,直接修改该文件进行配置即可。
参考文档:
3.User Documentation - SambaWiki