Kali Linux は、迷惑な「警告: スーパー アカウントを使用しているため、システムに損傷を与える可能性があります」というプロンプトを削除します

最初に書きます

この記事の Kali Linux バージョンは 2022.3 です。Kali
 Linux を使用する過程で、多くの人が次のような状況に遭遇すると思います。

ここに画像の説明を挿入
p

 Thunar とマウスパッドのインターフェイスの中央にある警告バーについては、実を言うと、結局のところ、Kali Linux が使用されており、ユーザーはまだ root の使い方を知りません (

 そこで私は Google と Bing の間を行ったり来たりして、最終的にこのバーに関するいくつかのディスカッションを見つけましたが、私が見つけたいくつかのチュートリアルでは実際には実用的な解決策が提案されておらず、解決プロセスには多くの落とし穴もありました。このブログを書きました。

 とにかく、今すぐ始めましょう。

チュートリアルの開始

 変更したソフトウェアを最初に置きます:
Mousepad_0.5.10-1_amd64.deb
thunar_4.16.10-1_amd64.deb

一般的なアイデア。

 まず、Kali Linux では、「警告: ルート アカウントを使用しています。」というメッセージが表示されます。これは、「警告: スーパー アカウントを使用しているため、システムに損傷を与える可能性があります。」というメッセージです。このプロンプトは、実際には 2 つのソフトウェアから来ています。

 赤いプロンプトは、あまり知られていない Linux オープン ソース テキスト エディターである Mousepad ( Github リンク)から来ています。

 オレンジと赤の警告は、Thunar- Github リンクからのものです。

 2 つのソフトウェアの Github ソース コード ウェアハウスを見ると、対応するファイルwindow.c内に対応するコード部分が見つかります。

 この問題に対処するのは非常に簡単で、これら 2 つのソフトウェアを再コンパイルして再度インストールするだけです。

2 つのソフトウェアのソースコードをダウンロードする

 まず最初に注意しなければならないのは、これら 2 つのソフトウェアは Xfce 上で動作している、つまり xfce のバージョンと密接に関係しているということです。したがって、最新バージョンを直接コンパイルしてインストールすることはできません。

 まず、ターミナルでこれら 2 つのソフトウェアのバージョンを確認します。

ここに画像の説明を挿入

 次に、コード リポジトリで対応するバージョンのソース コードを見つけてダウンロードします。

変更を加えます

 変更する必要がある箇所はほとんどないので、C 言語を知らなくても非常に簡単です。

1 つ目は Thunar で、検索ボックスを直接使用してキーワードroot を検索すると、731 行目あたりに次のコード ブロックが見つかります。

ここに画像の説明を挿入

thunar-window.c の部分:

/* check if we need to add the root warning */
  if (G_UNLIKELY (geteuid () == 0)){
    
          
  /* add the bar for the root warning */      
  infobar = gtk_info_bar_new ();
  gtk_info_bar_set_message_type (GTK_INFO_BAR (infobar), GTK_MESSAGE_WARNING);      
  gtk_widget_set_hexpand (infobar, TRUE);      
  gtk_grid_attach (GTK_GRID (window->grid), infobar, 0, 2, 1, 1);      
  gtk_widget_show (infobar);      
  /* add the label with the root warning */      
  label = gtk_label_new (_("Warning: you are using the root account. You may harm your system."));      
  gtk_container_add (GTK_CONTAINER (gtk_info_bar_get_content_area (GTK_INFO_BAR (infobar))), label);      
  gtk_widget_show (label);    
  }

 おそらく731号線にあります。次に、上記のコードブロック内に配置されている部分をすべて削除すると、次のようになります。

ここに画像の説明を挿入

 同様にマウスパッドのソースコードも扱います。

 ソースコードは次のようになります。

ここに画像の説明を挿入

マウスパッド-window.c セクション

static void
mousepad_window_create_root_warning (MousepadWindow *window){
    
      
/* check if we need to add the root warning */  
if (G_UNLIKELY (geteuid () == 0)){
    
          
GtkWidget       *ebox, *label, *separator;      
GtkCssProvider  *provider;      
GtkStyleContext *context;      
const gchar     *css_string;      
/* add the box for the root warning */      
ebox = gtk_event_box_new ();      
gtk_box_pack_start (GTK_BOX (window->box), ebox, FALSE, FALSE, 0);      
gtk_widget_show (ebox);      
/* add the label with the root warning */      
label = gtk_label_new (_("Warning: you are using the root account. You may harm your system."));      
gtk_widget_set_margin_start (label, 6);      
gtk_widget_set_margin_end (label, 6);      
gtk_widget_set_margin_top (label, 3);      
gtk_widget_set_margin_bottom (label, 3);      
gtk_container_add (GTK_CONTAINER (ebox), label);      
gtk_widget_show (label);      
separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);      
gtk_box_pack_start (GTK_BOX (window->box), separator, FALSE, FALSE, 0);      
gtk_widget_show (separator);      
/* apply a CSS style to capture the user's attention */      
provider = gtk_css_provider_new ();      
css_string = "label { background-color: #b4254b; color: #fefefe; }";      
context = gtk_widget_get_style_context (label);
gtk_css_provider_load_from_data (provider, css_string, -1, NULL);      
gtk_style_context_add_provider (context, GTK_STYLE_PROVIDER (provider),                                      
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);      
g_object_unref (provider);    
	}
}

 おそらく1059行目です。この処理方法は上記のThunarとは少し異なり、中のメソッド部分を削除するのですが、その削除内容は以下の通りです。
ここに画像の説明を挿入

 この部分の作業は完了です。

コンパイル

 この部分は少し面倒です。Debian ベースのマシンでコンパイルすることをお勧めします (可能であればサーバーを使用できますが、インストールされているランタイム ソフトウェア パッケージは削除するのが面倒です)。そうでない場合は、必要なランタイムが大量に存在します。見つからないライブラリ。

 まず、2 つのソフトウェアのソース コード フォルダーにあるターミナルを開き、マウスパッドのコンパイルを例として、それを直接使用します./autogen.sh

 最終結果は失敗でなければなりません。コンパイラは、特定のパッケージが見つからないことを通知し、このパッケージをインストールする必要があります。これは実際には非常に簡単です。必要なパッケージがたくさんあるため、1 つずつリストすることはしません。

 注意すべき点がいくつかあります。欠落しているパッケージは、プロンプトに表示されている名前ではありません。通常は-devサフィックスの付いたパッケージが必要です。apt search 包名最初に検索して、名前の後に dev が付いているパッケージを見つけることができます。以下に示すように:

ここに画像の説明を挿入

 ランタイム ライブラリの面倒なインストールの後は、./autogen.sh繰り返し実行して次のプロンプトが表示されても問題ありません。

ここに画像の説明を挿入

 次に、makeそれを使用してコンパイルします。コンパイルが成功すると、次のようになります。

ここに画像の説明を挿入

パッケージのインストール

 まず を使用してapt remove両方のパッケージをアンインストールし、その後再起動します。

 ここでは少し異なります。make installインストールには使用せず、 を使用しますcheckinstall

checkinstallインストール後はデフォルトでdpkg管理ディレクトリにパッケージが追加されたり、後で削除したい場合でもアンインストールdpkg -r ***できる

 初めて使うapt install checkinstall

 その後、ソース コード フォルダーにPackname-versionの形式で名前を付ける必要があります。たとえば、 mousepad-0.5.10の形式にする必要があります。そうしないと、 dpkg コマンドで管理するのが非常に不便になります。

 Temrinal で直接使用してcheckinstallインストールすると、説明の追加やパッケージ情報の確認などが必要かどうかを確認するメッセージが表示されます。理解できない場合は Enter キーを押し続けてください。エラーが発生した場合は、プロンプト情報に従って、フォルダーやファイルなどの削除などの簡単な操作を実行します。

 成功後は次のようになります。

ここに画像の説明を挿入

 同時に、対応する.debパッケージがディレクトリに生成されます。
ここに画像の説明を挿入

 1 つをコンパイルした後、すぐに再起動して 2 つ目をコンパイルします。2 回目のコンパイル中にはインストールされない可能性がありますが、deb パッケージが表示されます。インストールを使用し、インストールを強制的に上書きするパラメーターを追加できますdpkg -i--force-allそして再び再起動します。
 効果を見てみましょう

ここに画像の説明を挿入ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/m0_74075298/article/details/128175444