secubox-openwrt/docs-zh/permissions-guide.md
CyberMind-FR ccfb58124c docs: Add trilingual documentation (French and Chinese translations)
Add complete French (fr) and Chinese (zh) translations for all documentation:

- Root files: README, CHANGELOG, SECURITY, BETA-RELEASE
- docs/: All 16 core documentation files
- DOCS/: All 19 deep-dive documents including embedded/ and archive/
- package/secubox/: All 123+ package READMEs
- Misc: secubox-tools/, scripts/, EXAMPLES/, config-backups/, streamlit-apps/

Total: 346 translation files created

Each file includes language switcher links for easy navigation between
English, French, and Chinese versions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-20 10:00:18 +01:00

5.7 KiB
Raw Blame History

OpenWrt 软件包权限指南

🌐 语言: English | Français | 中文

版本: 0.3.1 最后更新: 2025-12-28 状态: 活跃 作者: CyberMind

本文档是快速参考指南。 完整的部署流程请参阅 DEVELOPMENT-GUIDELINES.md §9

相关文档:


另请参阅

目标

确保所有 SecuBox 软件包文件在安装时就具有正确的权限,无需手动修正。

所需权限

可执行文件 (755)

这些文件必须具有执行权限:

-rwxr-xr-x (755)

文件列表:

  • /usr/libexec/rpcd/luci.* - RPCD 后端脚本
  • /usr/libexec/secubox/*.sh - 实用脚本
  • /etc/init.d/* - 初始化脚本
  • /etc/uci-defaults/* - 初始配置脚本

非可执行文件 (644)

这些文件不应该具有执行权限:

-rw-r--r-- (644)

文件列表:

  • /www/luci-static/resources/**/*.js - JavaScript 文件
  • /www/luci-static/resources/**/*.css - CSS 文件
  • /usr/share/rpcd/acl.d/*.json - ACL 权限文件
  • /usr/share/luci/menu.d/*.json - 菜单定义文件
  • /etc/config/* - UCI 配置文件

Makefile 配置

推荐方法PKG_FILE_MODES

OpenWrt 支持 PKG_FILE_MODES 变量,用于在软件包安装时定义文件权限。

语法:

PKG_FILE_MODES:=/path/to/file:permissions

完整示例:

include $(TOPDIR)/rules.mk

PKG_NAME:=luci-app-example
PKG_VERSION:=0.3.1
PKG_RELEASE:=1
PKG_LICENSE:=Apache-2.0
PKG_MAINTAINER:=CyberMind <contact@cybermind.fr>

LUCI_TITLE:=LuCI - Example Module
LUCI_DESCRIPTION:=Example SecuBox module
LUCI_DEPENDS:=+luci-base +rpcd
LUCI_PKGARCH:=all

# 文件权限RPCD 脚本必须可执行)
PKG_FILE_MODES:=/usr/libexec/rpcd/luci.example:755

include $(TOPDIR)/feeds/luci/luci.mk

# call BuildPackage - OpenWrt buildroot signature

多个可执行文件

如果有多个可执行文件:

PKG_FILE_MODES:=/usr/libexec/rpcd/luci.example:755 \
	/usr/libexec/example/helper.sh:755 \
	/etc/init.d/example:755

注意: 使用 \ 继续到下一行。

带有 PKG_FILE_MODES 的 SecuBox 模块

luci-app-secubox

PKG_FILE_MODES:=/usr/libexec/rpcd/luci.secubox:755 \
	/usr/libexec/secubox/fix-permissions.sh:755

luci-app-system-hub

PKG_FILE_MODES:=/usr/libexec/rpcd/luci.system-hub:755

luci-app-network-modes

PKG_FILE_MODES:=/usr/libexec/rpcd/luci.network-modes:755

验证

开发时

部署软件包之前,验证权限:

# 检查 RPCD 脚本
ls -l root/usr/libexec/rpcd/luci.*

# 检查辅助脚本
ls -l root/usr/libexec/*/

# 检查 Web 文件
find root/www -type f -name "*.js" -o -name "*.css" | xargs ls -l

软件包安装后

验证路由器上的权限是否正确:

# RPCD 脚本应为 755
ls -l /usr/libexec/rpcd/luci.*

# Web 文件应为 644
ls -l /www/luci-static/resources/secubox/*.js
ls -l /www/luci-static/resources/secubox/*.css

自动验证脚本

luci-app-secubox 中包含一个验证脚本:

# 检查并修复所有权限
/usr/libexec/secubox/fix-permissions.sh

# 通过 ubus
ubus call luci.secubox fix_permissions

# 通过 Web 界面
Dashboard → Quick Actions → "Fix Perms"

常见错误

1. RPCD 脚本不可执行

症状:

ubus call luci.example status
# Command failed: Permission denied

原因: RPCD 脚本没有 755 权限

解决方案:

# 在 Makefile 中添加
PKG_FILE_MODES:=/usr/libexec/rpcd/luci.example:755

2. Web 文件可执行

症状: JavaScript/CSS 文件具有 755 权限

原因: 错误操作或脚本配置错误

解决方案: Web 文件默认为 644无需在 PKG_FILE_MODES 中指定

3. 辅助脚本不可执行

症状:

/usr/libexec/example/helper.sh
# -bash: /usr/libexec/example/helper.sh: Permission denied

解决方案:

PKG_FILE_MODES:=/usr/libexec/rpcd/luci.example:755 \
	/usr/libexec/example/helper.sh:755

参考资料

部署前检查清单

创建 .ipk.apk 软件包之前:

  • 所有 RPCD 脚本在 PKG_FILE_MODES 中设置为 755
  • 所有辅助脚本在 PKG_FILE_MODES 中设置为 755
  • Web 文件JS/CSS不在 PKG_FILE_MODES 中(默认为 644
  • ACL/菜单文件不在 PKG_FILE_MODES 中(默认为 644
  • Makefile 使用 include $(TOPDIR)/feeds/luci/luci.mk
  • PKG_FILE_MODES 定义在 include $(TOPDIR)/feeds/luci/luci.mk 之前

迁移现有模块

为现有模块添加 PKG_FILE_MODES

cd luci-app-mymodule

# 编辑 Makefile
vi Makefile

# 在 'include $(TOPDIR)/feeds/luci/luci.mk' 之前添加
PKG_FILE_MODES:=/usr/libexec/rpcd/luci.mymodule:755

# 重新构建软件包
make package/luci-app-mymodule/clean
make package/luci-app-mymodule/compile

维护者: CyberMind contact@cybermind.fr 许可证: Apache-2.0