vtysh: don't install "enable" command in user mode

Recent change in d1b287e only fixed the problem for 3-letter words.

We were still displaying error for longer words starting with "ena":
```
nfware> enac
% Command not allowed: enable
nfware> enad
% Command not allowed: enable
nfware> enaena
% Command not allowed: enable
```

If we don't allow "enable" command in user mode, why add it at all?

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
This commit is contained in:
Igor Ryzhov 2021-07-23 18:38:20 +03:00
parent c48ebbdb20
commit c54796288e
1 changed files with 2 additions and 20 deletions

View File

@ -478,25 +478,6 @@ static int vtysh_execute_func(const char *line, int pager)
if (vline == NULL)
return CMD_SUCCESS;
if (user_mode) {
bool allow = true;
if (strncmp("en", vector_slot(vline, 0), 2) == 0) {
if (strlen(line) >= 3) {
if (strncmp("ena", vector_slot(vline, 0), 3)
== 0)
allow = false;
} else
allow = false;
if (!allow) {
cmd_free_strvec(vline);
vty_out(vty,
"%% Command not allowed: enable\n");
return CMD_WARNING;
}
}
}
if (vtysh_add_timestamp && strncmp(line, "exit", 4)) {
char ts[48];
@ -4523,7 +4504,8 @@ void vtysh_init_vty(void)
/* vtysh */
install_element(VIEW_NODE, &vtysh_enable_cmd);
if (!user_mode)
install_element(VIEW_NODE, &vtysh_enable_cmd);
install_element(ENABLE_NODE, &vtysh_config_terminal_cmd);
install_element(ENABLE_NODE, &vtysh_disable_cmd);