2016-09-14 5 views
0

私はbash-3.2.tar.gzを持っています 私はbashをコンパイルするのに必要なすべてのツールを持っています。コンパイルされたbashバイナリでコマンドを制限する必要があります。コンパイルされたbashバイナリでコマンド "kill"を制限したい。これを達成する方法は?bashで特定のコマンドを制限する方法は?

ありがとうございます。

+4

それはおそらくずっと容易になるだろう*前*あなたがそれをコンパイルします。 –

+0

'alias asdasd ="エコーbash:asdasd:コマンドが見つかりませんでした "? –

+3

どのようにしてkillコマンドを削除すると便利ですか? – xxfelixxx

答えて

5

あなたがしようとしていることは明確ではないので、ここにいくつかの考えを示します。

あなたはconfigureを実行する前に)builtins/Makefile.inDEFSRCOFILES変数を編集して、それをコンパイルする前のbashからコマンドを削除することができます。

コマンドを使用してビルトインコマンドを無効にすることができます。たとえば、enable -n killを実行すると、組み込みのkillコマンドが無効になるため、killを実行すると、$PATHkillという名前のファイルが検索されます。

+0

助けてくれてありがとう。 – Mariners

0

私はそれを制限するためにbashのパッケージ組み込み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(); 
関連する問題