2016-09-14 2 views
0

У меня есть bash-3.2.tar.gz У меня есть все инструменты, необходимые для компиляции bash. Теперь мне нужно ограничить команду в скомпилированном двоичном файле bash, например. Я хочу ограничить команду «kill» в скомпилированном двоичном файле bash. Как достичь этого?Как ограничить определенную команду в bash?

Заранее спасибо.

+4

Было бы, вероятно, будет намного проще * до * вы скомпилировать его. –

+0

'alias asdasd =" echo bash: asdasd: команда не найдена ''? –

+3

Как удалить команду kill в любом случае полезной? – xxfelixxx

ответ

5

Непонятно, что именно вы пытаетесь сделать, так что вот несколько мыслей.

Вы можете удалить команды из Баш перед компиляцией его путем редактирования DEFSRC и OFILES переменных в builtins/Makefile.in (перед запуском configure).

Вы можете: отключить встроенная команда, используя команду enable. Например, запуск enable -n kill приведет к отключению встроенной команды kill, так что запуск kill вместо этого будет искать файл с именем kill в вашем $PATH.

+0

Спасибо за помощь. – Mariners

0

Я пропатчен пакет Баша предопределённых 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(); 
Смежные вопросы