Kali Linux删除去掉烦人的“警告:您正在使用超级账户,可能会损害您的系统”提示

写在最前

本文章的Kali Linux版本为2022.3
 我相信许多人在使用Kali Linux的过程中都会遇上这些情况:

在这里插入图片描述
p

 对于这个横在Thunar和Mousepad界面正中的警告栏,我说个实话,这毕竟用的都是Kali Linux了,用户还能不知道root应该怎么用吗(

 于是乎我在谷歌和必应之间来回切换,终于找到了几个关于这个横栏的讨论,但是,找到的为数不多的教程其实并没有提出什么实际的解决办法,而且我的解决过程中也有许多的坑,综上种种,我写了这篇博客。

 那么不管怎么说,现在就开始吧。

教程开始

 先把已经改好的软件放在最前面:
mousepad_0.5.10-1_amd64.deb
thunar_4.16.10-1_amd64.deb

总体的大概思路。

 首先,Kali Linux使用的带有“Warning:you are using the root account”,也就是上图的“警告:您正在使用超级帐户,可能会损害您的系统。”这个提示,它其实来自两个软件。

 红色的提示来自一款不怎么有名的Linux开源文本编辑器:Mousepad—Github链接

 橙红色的警告来自Thunar-Github链接

扫描二维码关注公众号,回复: 15407925 查看本文章

 翻看两个软件的Github源代码仓库,都可以在对应的window.c文件中找到对应的代码部分。

 那么处理这个事情就很简单了,我们只需要重新编译安装一遍这两个软件就可以了。

下载两个软件的源码

 首先必须注意一个地方,这两款软件是依靠Xfce来运行的,也就是说它和xfce的版本息息相关。因此,我们不能直接编译安装最新版本。

 先在Terminal中查看这两个软件的版本。

在这里插入图片描述

 然后在代码仓库里找到对应版本的源码并下载。

进行更改

 需要更改的地方很少,如果不懂C语言也可以很轻松。

 首先是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行的样子。然后把放在上面代码块里的部分全部删除,删除之后大概是这个样子:

在这里插入图片描述

 同理我们处理mousepad的源码。

 源代码长这样:

在这里插入图片描述

mousepad-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系的机器上编译(有条件用服务器就行了,安装的运行库软件包懒得删),否则会有大量的需要的运行库找不到。

 首先在两个软件的源码文件夹里打开Terminal,以编译mousepad为例,直接使用./autogen.sh

 最后的结果一定是失败的,编译器会提示你缺少某个包,然后我们必须安装这个包。这个其实很简单,因为需要的包有点多所以我不一一列举出来。

 这里有些需要注意的地方:缺少的包并不是提示所说的那个名字,我们一般需要带有-dev后缀的包,可以先用apt search 包名搜索一下,找到名字后面带dev的包。如下图:

在这里插入图片描述

 经过痛苦的安装运行库后,反复运行./autogen.sh得到下面的提示说明就ok了:

在这里插入图片描述

 之后使用make进行编译,编译成功后是这样的:

在这里插入图片描述

打包安装

 先使用apt remove将两个软件包都卸载,之后重启一下。

 这里稍有不同,我们不使用make install来安装,而使用checkinstall

checkinstall有很多优点,它在安装之后会默认把包加入dpkg的管理目录中,即使以后想删除也可以用dpkg -r ***来卸载。

 首先用apt install checkinstall

 之后一定要把源码文件夹给命名为packname-版本这种格式,比如应该是mousepad-0.5.10这种格式,否则用dpkg命令管理时会很不方便。

 在Temrinal中直接使用checkinstall进行安装,期间它会提示是否需要添加描述和确认包信息之类的,如果看不懂一路回车就行了,如果出现报错,可以跟着提示信息做一些简单的操作,比如删某个文件夹或者文件之类的。

 成功之后是这样的:

在这里插入图片描述

 同时会在目录生成对应的.deb包。
在这里插入图片描述

 编译完其中一个之后立刻重启一次再编译第二个,在第二个编译时可能无法安装,但是会出现deb包,可以使用dpkg -i安装,并添加--force-all参数强制覆盖安装,之后再次重启。
 看看效果吧

在这里插入图片描述在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_74075298/article/details/128175444