你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
如题,想设置一下用户管理权限,和管理者管理权限
举报
权限系统说明
letter shell 3.x的权限管理同用户定义紧密相关,letter shell 3.x使用8个bit位表示命令权限,当用户和命令的权限按位与为真,或者命令权限为0时,表示该用户拥有此命令的权限,可以调用该命令
STMWoodData 发表于 2022-4-22 11:28</p> <h2></h2> <p>权限系统说明</p> <p>
[md]我看到了这个,能说详细一点吗?
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0),,,)
只有SHELL_CMD_PERMISSION(0)命令权限为0时,该函数或功能才能用,而且这个0是常量,不知道怎么修改,SHELL_EXPORT_CMD()也不知道什么时候导入命令列表的,只知道输出时函数的位置,
如果库中#define不定义密码,就全部都能用,也就无法修改密码再登录了;
而且如果设置了密码,一开始初始化之后就要密码了,你没有密码什么都用不了,同样的问题,无法权限管理
/** * @brief shell 检查命令权限 * * @param shell shell对象 * @param command ShellCommand * * @return signed char 0 当前用户具有该命令权限 * @return signec char -1 当前用户不具有该命令权限 */ signed char shellCheckPermission(Shell *shell, ShellCommand *command) { return ((!command->attr.attrs.permission || command->attr.attrs.type == SHELL_TYPE_USER || (command->attr.attrs.permission & shell->info.user->attr.attrs.permission)) && (shell->status.isChecked || command->attr.attrs.enableUnchecked)) ? 0 : -1; }
那个常数0可以改的,看上面权限检查可以知道命令的权限为0的时候,所有用户都可以执行有权限。假如权限由0改为0x01就表示当定义的用户权限也为0x01的有这个命令权限。定义的用户权限为0x02的不能执行0x01权限的命令。 /** * @brief shell 命令权限 * * @param permission 权限级别 */ #define SHELL_CMD_PERMISSION(permission) \ (permission & 0x000000FF)
STM32F103烧录程序后电流变大
STM32F103CBT6读取单总线温湿度传感器,需要手动重启。
求教學stlink v3 set** 怎麼和**blue pill**連結傳輸寫好的程式
F103和G474的180°移相區別
怎么下载stm32f103zet6的spice模型,没找到
塗鴉模組適配ST芯片
板载stlink无法连接到设备
多DMA数据流问题
STM32F103长时间运行,串口发送失败
STM32G474 BOOST电路双环PID的用法
权限系统说明
letter shell 3.x的权限管理同用户定义紧密相关,letter shell 3.x使用8个bit位表示命令权限,当用户和命令的权限按位与为真,或者命令权限为0时,表示该用户拥有此命令的权限,可以调用该命令
[md]我看到了这个,能说详细一点吗?
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0),,,)
只有SHELL_CMD_PERMISSION(0)命令权限为0时,该函数或功能才能用,而且这个0是常量,不知道怎么修改,SHELL_EXPORT_CMD()也不知道什么时候导入命令列表的,只知道输出时函数的位置,
如果库中#define不定义密码,就全部都能用,也就无法修改密码再登录了;
而且如果设置了密码,一开始初始化之后就要密码了,你没有密码什么都用不了,同样的问题,无法权限管理