2016-09-14 4 views
0

Ich habe Bash-3.2.tar.gz Ich habe alle Tools benötigt, um die Bash zu kompilieren. Jetzt muss ich einen Befehl in der kompilierten Bash-Binärdatei einschränken, z. Ich möchte den Befehl "kill" in der kompilierten Bash-Binärdatei einschränken. Wie erreiche ich das?Wie schränkt man einen bestimmten Befehl in bash ein?

Vielen Dank im Voraus.

+4

Es wäre viel einfacher, * bevor wahrscheinlich * Sie es kompilieren. –

+0

'alias asdasd =" echo bash: asdasd: Befehl nicht gefunden "'? –

+3

Wie ist das Entfernen des Kill-Befehls in irgendeiner Weise nützlich? – xxfelixxx

Antwort

5

Es ist nicht genau klar, was Sie tun möchten, also hier sind ein paar Gedanken.

können Sie entfernen einen Befehl von bash, bevor sie durch das Bearbeiten der DEFSRC und OFILES Variablen im builtins/Makefile.in (vor dem Ausführen configure) kompilieren.

Sie können einen integrierten Befehl mit dem Befehl enable deaktivieren. Wenn Sie beispielsweise enable -n kill ausführen, wird der integrierte kill-Befehl deaktiviert, sodass kill statt kill in Ihrer $PATH stattdessen eine Datei mit dem Namen kill suchen würde.

+0

Danke für die Hilfe. – Mariners

0

ich gepatcht die Bash-Paket kill.def gebautet es beschränkt zu machen:

--- 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(); 
Verwandte Themen