Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何限制bash中的特定命令?_Linux_Bash - Fatal编程技术网

Linux 如何限制bash中的特定命令?

Linux 如何限制bash中的特定命令?,linux,bash,Linux,Bash,我有bash-3.2.tar.gz 我拥有编译bash所需的所有工具。现在我需要在编译的bash二进制文件中限制一个命令,例如,我想在编译的bash二进制文件中限制命令“kill”。如何做到这一点 提前谢谢。现在还不清楚你到底想做什么,所以这里有一些想法 您可以在编译bash之前从bash中删除命令,方法是编辑内置/Makefile.in中的DEFSRC和文件变量(在运行configure之前) 您可以使用enable命令禁用内置命令。例如,运行enable-nkill将禁用内置的kill命令,

我有bash-3.2.tar.gz 我拥有编译bash所需的所有工具。现在我需要在编译的bash二进制文件中限制一个命令,例如,我想在编译的bash二进制文件中限制命令“kill”。如何做到这一点


提前谢谢。

现在还不清楚你到底想做什么,所以这里有一些想法

您可以在编译bash之前从bash中删除命令,方法是编辑
内置/Makefile.in中的
DEFSRC
文件变量(在运行
configure
之前)


您可以使用
enable
命令禁用内置命令。例如,运行
enable-nkill
将禁用内置的
kill
命令,因此运行
kill
将在
$PATH

中查找名为
kill
的文件。您不清楚要做什么,因此这里有一些想法

您可以在编译bash之前从bash中删除命令,方法是编辑
内置/Makefile.in中的
DEFSRC
文件变量(在运行
configure
之前)


您可以使用
enable
命令禁用内置命令。例如,运行
enable-nkill
将禁用内置的
kill
命令,因此运行
kill
将在
$PATH
中查找名为
kill
的文件。我修补了bash包builtin kill.def,使其受到限制:

--- builtins/kill.def.old       2016-09-14 14:13:49.058437000 +0530
+++ builtins/kill.def   2016-09-14 14:16:00.467550000 +0530
@@ -48,6 +48,7 @@
 #include "../bashintl.h"

 #include "../shell.h"
+#include "../flags.h"
 #include "../trap.h"
 #include "../jobs.h"
 #include "common.h"
@@ -79,6 +80,14 @@
   pid_t pid;
   intmax_t pid_value;

+#if defined (RESTRICTED_SHELL)
+  if (restricted)
+    {
+      sh_restricted ((char *)NULL);
+      return (EXECUTION_FAILURE);
+    }
+#endif /* RESTRICTED_SHELL */
+
   if (list == 0)
     {
       builtin_usage ();

我修补了bash包builtin kill.def,使其受到限制:

--- builtins/kill.def.old       2016-09-14 14:13:49.058437000 +0530
+++ builtins/kill.def   2016-09-14 14:16:00.467550000 +0530
@@ -48,6 +48,7 @@
 #include "../bashintl.h"

 #include "../shell.h"
+#include "../flags.h"
 #include "../trap.h"
 #include "../jobs.h"
 #include "common.h"
@@ -79,6 +80,14 @@
   pid_t pid;
   intmax_t pid_value;

+#if defined (RESTRICTED_SHELL)
+  if (restricted)
+    {
+      sh_restricted ((char *)NULL);
+      return (EXECUTION_FAILURE);
+    }
+#endif /* RESTRICTED_SHELL */
+
   if (list == 0)
     {
       builtin_usage ();

编译之前可能会容易得多。
alias asdasd=“echo bash:asdasd:command not found”
?以任何方式删除kill命令有何用处?请记住,如果安装了,用户可能会生成另一个shell,如
tcsh
dash
,而且许多语言也支持
kill
,包括C、Perl、Python、Ruby等。许多发行版也会有一个
/bin/kill
。编译它之前可能会容易得多。
alias asdasd=“echo bash:asdasd:command not found”
?删除kill命令有何用处?请记住,用户可能会生成另一个shell,像
tcsh
dash
(如果安装了),许多语言也支持
kill
,包括C、Perl、Python、Ruby等。许多发行版也会有
/bin/kill
。感谢您的帮助。感谢您的帮助。