GUFW는 13행에서 분할 오류를 반환합니다.

GUFW는 13행에서 분할 오류를 반환합니다.

GUFW를 루트로 실행하면 다음이 반환됩니다.

No protocol specified
Unable to init server: Could not connect: Connection refused
No protocol specified
Unable to init server: Could not connect: Connection refused

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_modifier_mask: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:5272): Gtk-CRITICAL **: _gtk_replace_virtual_modifiers: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_modifier_mask: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:5272): Gtk-CRITICAL **: _gtk_replace_virtual_modifiers: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_modifier_mask: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:5272): Gtk-CRITICAL **: _gtk_replace_virtual_modifiers: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_modifier_mask: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:5272): Gtk-CRITICAL **: _gtk_replace_virtual_modifiers: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_modifier_mask: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:5272): Gtk-CRITICAL **: _gtk_replace_virtual_modifiers: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_modifier_mask: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:5272): Gtk-CRITICAL **: _gtk_replace_virtual_modifiers: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_modifier_mask: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:5272): Gtk-CRITICAL **: _gtk_replace_virtual_modifiers: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_modifier_mask: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:5272): Gtk-CRITICAL **: _gtk_replace_virtual_modifiers: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_modifier_mask: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:5272): Gtk-CRITICAL **: _gtk_replace_virtual_modifiers: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_modifier_mask: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:5272): Gdk-CRITICAL **: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:5272): Gtk-CRITICAL **: _gtk_replace_virtual_modifiers: assertion 'GDK_IS_KEYMAP (keymap)' failed
/usr/bin/gufw-pkexec: line 13:  5272 Segmentation fault      (core dumped) python3 ${LOCATIONS[${i}]} $1

안정적인 GUFW 버전을 새로 설치하더라도 분할 오류로 인해 충돌이 발생합니다.

이 문제를 어떻게 해결할 수 있나요?

답변1

터미널에 다음 명령을 입력합니다.

echo $XDG_SESSION_TYPE

반환된 경우 Wayland다음을 입력하세요.

xhost si:localuser:root

루트가 Wayland 세션에서 그래픽 응용 프로그램을 시작할 수 있도록 허용합니다.

답변2

구경하다여기, Manjaro KDE를 실행할 때 동일한 문제가 발생했습니다. 이것을 변경하면 작동합니다.

/etc/sddm.conf
DefaultPath=/usr/local/sbin:/usr/local/bin:/usr/bin

참조 스레드에서 설명했습니다.

답변3

나는 같은 문제에 직면했습니다. 실수로 SSH를 통한 gparted 솔루션을 찾았습니다.여기.

sudo -E gufw

/etc/ssh/sshd_config가 올바르게 구성되었다고 가정하면 작동합니다.

답변4

문제는 pkexec내용에서 볼 수 있듯이 실행 파일이 를 사용하여 실행된다는 것입니다 /usr/sbin/gufw.

#!/bin/bash
if [ $(loginctl show-session $(loginctl|grep $(whoami)|sort -n|tail -n 1 |awk '{print $1}') -p Type) = "Type=wayland" ]; then
    xhost +si:localuser:root
fi
c_user=$(whoami)
pkexec gufw-pkexec $c_user

매뉴얼 페이지를 읽으면 pkexec다음과 같습니다.

PROGRAM이 실행되는 환경은 LD_LIBRARY_PATH 또는 유사한 메커니즘을 통한 코드 삽입을 피하기 위해 알려진 가장 작은 안전 환경으로 설정됩니다. 또한 PKEXEC_UID 환경 변수는 pkexec를 호출하는 프로세스의 사용자 ID로 설정됩니다. 그러므로,기본적으로 $DISPLAY 및 $XAUTHORITY 환경 변수가 설정되지 않았기 때문에 pkexec에서는 X11 응용 프로그램을 다른 사용자로 실행할 수 없습니다.. 이 두 변수는 작업의 org.freedesktop.policykit.exec.allow_gui 주석이 null이 아닌 값으로 설정된 경우 보존됩니다. 그러나 이는 권장되지 않으며 레거시 프로그램에서만 사용해야 합니다.

따라서 기본적으로 gufw이 명령은 X11 시스템에서 실행하려고 하면 작동하지 않습니다. 그러나 이 작업을 직접 수행하는 경우:

sudo gufw-pkexec

효과가있다. 으악


편집하다

해결책을 찾았습니다오류 보고서아치 랩에. 기본적으로 polkit 정책 파일의 gufw()에 설정된 경로는 /usr/share/polkit-1/actions/com.ubuntu.pkexec.gufw.policy잘못된 실행 경로를 사용하고 있습니다.

나는 변했어:

<annotate key="org.freedesktop.policykit.exec.path">/usr/bin/gufw-pkexec</annotate>

도착하다

<annotate key="org.freedesktop.policykit.exec.path">/usr/sbin/gufw-pkexec</annotate>

이제 괜찮아

관련 정보