退格无法在bash限制模式下工作

时间:2017-07-11 06:33:21

标签: linux bash

在限制模式下使用时,我在bash中遇到了退格问题。我已经搜索了很多东西,没有任何效果或匹配的场景面临着。

在按退格键时,光标向前移动一个空白区域,但实际上它在内部删除了前一个字母,即按下"输入"它实际上有效,但在屏幕上看不到。

示例:命令" ls退格退格",不列出任何内容(如预期的那样),但在屏幕上ls在2个退格后可见,并且附加了2个空格。

期待有用的建议。 :)

提前致谢!! :)

下面是我用来chroot bash的补丁。 如果出现问题,请查看并通知我。

file:shell.c:@@ -384,6 +387,30 @@

+  if (getcwd(pwd,sizeof(pwd)) != pwd )
+        {
+                return -1;
+        }
+        /* chroot to mount point path */
+        if( !(chroot(chroot_dir)))
+        {
+                seteuid(getuid());
+                setegid(getgid());
+                /* On successful to chroot env invoke bash prompt */ 
+                if(! chdir(pwd))
+                {
+                        if(execlp("/rbin/bash","/rbin/bash","--restricted",NULL))
+                        {
+                        }
+                }
+                else
+                {
+                        chdir("/");
+                        if(execlp("/rbin/bash","/rbin/bash","--restricted",NULL))
+                        { 
+                        }
+                }
+        }

2 个答案:

答案 0 :(得分:0)

尝试使用Shift键使用Backspace,它应该可以工作。

如果按退格键正在打印一个字符,那么您可以使用stty更改终端设置,如下所示:stty erase backspace_character其中backspace_character是您按退格键时获得的字符。

答案 1 :(得分:0)

您可以使用emacs命令

对于 shell终端,您可以点击命令

set -o emacs

对于 vi编辑器,您可以点击命令

set -o vi