我遇到了一个我似乎无法弄清楚的问题。我能够以 root 用户身份打开设置就好了。当我单击“用户”时,没有任何反应。我在 Linux kali 4.7.0-kali1-amd64 #1 SMP Debian 4.7.6-1kali1 (2016-10-17) x86_64 GNU/Linux 上运行。这是我在 /var/log/syslog 中得到的内容
Oct 27 21:00:09 kali kernel: [ 695.533180] gnome-control-c[1944]: segfault at 0 ip 00000000004c9a5d sp 00007fffae418480 error 4 in gnome-control-center[400000+394000]
我尝试运行命令:
addr2line -e /usr/bin/gnome-control-center -fCi 0xC9A5D
其中 0xC9A5d 是导致问题的对象的偏移量,但我什么也没得到。
然后我跑了:
addr2line -e /usr/bin/gnome-control-center -fCi 0x00000000004c9a5d
然后我得到:
cc_universal_access_get_resource ??:?
有趣的...
据我所知,造成这种情况的原因是用户模式指令导致页面错误。我在这里列出了几个感兴趣的 gnome-control-center 文件:
/usr/share/bash-completion/completions/gnome-control-center
/usr/bin/gnome 控制中心
我怀疑问题出在作为制表符完成的 shell 脚本列出的第一个文件中。所以我尝试在二进制文件上运行 gdb,但它似乎没有通过调试进行编译,因为没有找到任何调试符号。这样做的全部目的是尝试创建一个新用户,这样我就可以在 Kali 上安装 steam,在业余时间玩一些游戏,除了搞乱这个该死的系统哈哈。
当我看着吉图布对于 gnome 控制中心。我找到了 cc_ua_panel.c 文件。它有一个方法,我在其中找到了对 cc_universal_access_get_resource 的调用,如下所示。
static void
cc_ua_panel_init (CcUaPanel *self)
{
CcUaPanelPrivate *priv;
GtkWidget *panel;
GtkWidget *content;
priv = self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
CC_TYPE_UA_PANEL,
CcUaPanelPrivate);
g_resources_register (cc_universal_access_get_resource ());
priv->interface_settings = g_settings_new (INTERFACE_SETTINGS);
priv->a11y_settings = g_settings_new (A11Y_SETTINGS);
priv->wm_settings = g_settings_new (WM_SETTINGS);
priv->kb_settings = g_settings_new (KEYBOARD_SETTINGS);
priv->kb_desktop_settings = g_settings_new (KEYBOARD_DESKTOP_SETTINGS);
priv->mouse_settings = g_settings_new (MOUSE_SETTINGS);
priv->gsd_mouse_settings = g_settings_new (GSD_MOUSE_SETTINGS);
priv->application_settings = g_settings_new (APPLICATION_SETTINGS);
priv->builder = gtk_builder_new ();
gtk_builder_add_from_resource (priv->builder,
"/org/gnome/control-center/universal-access/uap.ui",
NULL);
cc_ua_panel_init_status (self);
cc_ua_panel_init_seeing (self);
cc_ua_panel_init_hearing (self);
cc_ua_panel_init_keyboard (self);
cc_ua_panel_init_mouse (self);
panel = WID ("universal_access_panel");
content = WID ("universal_access_content");
gtk_scrolled_window_set_min_content_height (GTK_SCROLLED_WINDOW (panel), SCROLL_HEIGHT);
priv->focus_adjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (panel));
gtk_container_set_focus_vadjustment (GTK_CONTAINER (content), priv->focus_adjustment);
gtk_container_add (GTK_CONTAINER (self), panel);
}
我不知道这里的问题可能是什么,如果这确实是问题并且不知道如何继续。我想知道它正在寻找什么资源以及为什么不存在。我在哪里可以找到这个以及如何解决这个问题?
我实际上已经获得了回溯
Thread 1 "gnome-control-c" received signal SIGSEGV, Segmentation fault.
0x00000000004c9a5d in ?? ()
(gdb) bt full
#0 0x00000000004c9a5d in ?? ()
No symbol table info available.
#1 0x00007ffff0b74f75 in g_closure_invoke ()
from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#2 0x00007ffff0b86f82 in ?? ()
from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#3 0x00007ffff0b8fbcc in g_signal_emit_valist ()
from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#4 0x00007ffff0b8ffaf in g_signal_emit ()
from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#5 0x00007ffff0b793a4 in ?? ()
from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#6 0x00007ffff0b7b861 in g_object_notify ()
from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#7 0x00007ffff58587e2 in ?? () from /usr/lib/libaccountsservice.so.0
No symbol table info available.
#8 0x00007ffff0e424e3 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
---Type <return> to continue, or q <return> to quit---return
No symbol table info available.
#9 0x00007ffff0e42b96 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#10 0x00007ffff0e80a5b in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#11 0x00007ffff0e424e3 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#12 0x00007ffff0e42b96 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#13 0x00007ffff0e7568a in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#14 0x00007ffff0e424e3 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#15 0x00007ffff0e42519 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#16 0x00007ffff089b68a in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#17 0x00007ffff089ba40 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#18 0x00007ffff089baec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#19 0x00007ffff0e5770d in g_application_run () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#20 0x000000000044cff7 in main ()
No symbol table info available.
答案1
我无法以 root 身份打开用户设置。 (真的,在全新安装上。)我所要做的就是键入useradd tempuser1
,然后重新打开用户设置!我猜我的段发生是因为“没有用户”(因为 root 不算)。
我使用的是最新版本的 Kali。