私はbash-3.2.tar.gzを持っています 私はbashをコンパイルするのに必要なすべてのツールを持っています。コンパイルされたbashバイナリでコマンドを制限する必要があります。コンパイルされたbashバイナリでコマンド "kill"を制限したい。これを達成する方法は?bashで特定のコマンドを制限する方法は?
ありがとうございます。
私はbash-3.2.tar.gzを持っています 私はbashをコンパイルするのに必要なすべてのツールを持っています。コンパイルされたbashバイナリでコマンドを制限する必要があります。コンパイルされたbashバイナリでコマンド "kill"を制限したい。これを達成する方法は?bashで特定のコマンドを制限する方法は?
ありがとうございます。
あなたがしようとしていることは明確ではないので、ここにいくつかの考えを示します。
あなたは(configure
を実行する前に)builtins/Makefile.in
にDEFSRC
とOFILES
変数を編集して、それをコンパイルする前のbashからコマンドを削除することができます。
コマンドを使用してビルトインコマンドを無効にすることができます。たとえば、enable -n kill
を実行すると、組み込みのkill
コマンドが無効になるため、kill
を実行すると、$PATH
にkill
という名前のファイルが検索されます。
助けてくれてありがとう。 – Mariners
私はそれを制限するために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();
それはおそらくずっと容易になるだろう*前*あなたがそれをコンパイルします。 –
'alias asdasd ="エコーbash:asdasd:コマンドが見つかりませんでした "? –
どのようにしてkillコマンドを削除すると便利ですか? – xxfelixxx