在openwrt中,LuCI和LuCI2都是通过rpcd的acl来完成权限管理的。
- 在“/usr/share/rpcd/acl.d/”目录中会存在”*.json”文件定义不同的访问权限级别
- 在“/etc/config/rpcd”文件中定义了不同用户对应的访问权限级别;
例如:
config login option username 'root' option password '$p$root' list read '*' list write '*'
config login option username 'blaer' option password '$p$blaer' list read lesssuperuser list write lesssuperuser
|
在上面的“/etc/config/rpcd”文件中定义了两个用户的访问权限:
- “root”用户可以读写一切
- “blaer”用户对应lesssuperuser权限级别。而lesssuperuser权限级别在“/usr/share/rpcd/acl.d/”目录中的某个”*.json”文件中定义;
例如lesssuperuser权限级别定义如下:
{ "lesssuperuser": { "description": "not quite as super user", "read": { "ubus": { "file": [ "*" ], "log": [ "*" ], "service": [ "*" ], }, }, "write": { "ubus": { "file": [ "*" ], "log": [ "*" ], "service": [ "*" ], }, } } }
|
而一个超级用户可能的权限定义如下:
{ "superuser": { "description": "Super user access role", "read": { "ubus": { "*": [ "*" ] }, "uci": [ "*" ] }, |