Sudo komutu ile kullandığım araçlarda authorization hatası

Merhabalar, sudo komutu ile kullandığım bütün araçlar
Authorization required, but no authorization protocol specified
hatasını veriyor. Terminalden kullandığım uygulamalar (Vim gibi) bu uyarıya rağmen sorunsuz çalışsa da gsmartcontrol gibi GUI uygulamaları sudo komutuyla çalıştırdığımda

Authorization required, but no authorization protocol specified


(gsmartcontrol:71982): Gtk-WARNING **: 11:52:25.233: cannot open display: :1

hatasını alıp uygulamayı açamıyorum. Hyprland kullanıyorum, sistemimde polkit-kde-agent kurulu ve exec-once = /usr/lib/polkit-kde-authentication-agent-1 argümanı hyprland.conf dosyamda ekli bir halde bulunuyor. xhost si:localuser:root komutunu kullanmayı da denedim, ancak terminalde kullandığım birkaç komuttan sonra veya terminal penceresini kapatıp başka bir pencere açtığım zaman aynı hata devam ediyor, yani kalıcı değil.
Ek bir çözüm olarak:

#!/bin/sh
/usr/bin/xhost si:localuser:root

satırlarını bir script olarak kaydedip exec-once olarak başlarken çalıştırmayı denesem de bir işe yaramadı. Sistemimde ne eksik ki authorization hatası alıyorum?

Ek olarak: Yusuf İpek’ten bir isteğim var, Yusuf’un hyprconf GitHub reposundaki hyprland.conf dosyasında exec-once kısmında yazan sh ~/Applications/aw.sh ve ~/Applications/sleep-start.sh scriptlerini paylaşabilmeniz mümkün mü?

Bu X konfirugasyonunun root kullanıcı için yapılanmadığını gösteriyor olabilir. Çok önceden bende karşılaşmıştım X paketlerini tekrar kurarak düzeltmiştim.

Hemen deniyorum hocam, dönüş yapacağım.

Düzenleme: Tüm XOrg paketlerini tekrar yükleyip bilgisayarımı yeniden başlattıktan sonra denedim ve maalesef hala devam ediyor.

KDE polkit paketnin kurulu olduğundan emin misin?

Veya terminal üzerinden /usr/lib/polkit-kde-authentication-agent-1 çalıştırıp denediğinde aynı problemi yaşıyor musun?

sleep-start.sh

#!/bin/bash
sleep 2
qbittorrent &
transmission-qt &
aw-server &
keepassxc &
sleep 5
aw-watcher-window-wayland

Script’i paylaştığınız için çok teşekkür ederim. Onun dışında evet paket kurulu, terminalden çalıştırmayı denediğimde maalesef sorun devam ediyor. Sudo ile çalıştırmak ne kadar doğru bilmiyorum ama onu da denedim, direkt Polkit çalışmadı.

Authorization required, but no authorization protocol specified

qt.qpa.xcb: could not connect to display :1
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, xcb.

KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = <unknown> path = <unknown> pid = 1338705
KCrash: Arguments: 
[1]    1338697 IOT instruction  sudo /usr/lib/polkit-kde-authentication-agent-1

Çıktısı da bu şekilde.

Ek olarak, xcb paketleri yüklü ve egl-wayland paketi olarak da nvidia-egl-wayland-tkg yüklü ancak tkg değil normal egl-wayland paketi varken de aynı sorun vardı. Ayrıca eglexternalplatform paketi de kurulu. Başka eksik bir şey var mı?

İlginç…

NVIDIA kullanıyorsan aşağıdaki değişkenler tanımlı mı?

env = LIBVA_DRIVER_NAME,nvidia
env = XDG_SESSION_TYPE,wayland
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = WLR_NO_HARDWARE_CURSORS,1
qt5-wayland qt5ct libva libva-nvidia-driver-git

paketlerinin de yüklü olduğuna emin ol.

Bunlar da işe yaramazsa başka polkit agent kullanmayı deneyebilirsin.

https://wiki.archlinux.org/title/Polkit

Dediğiniz tüm paketler kurulu ayrıca da hyprland.conf dosyamda değişkenler de tanımlı ancak çok fazla değişken kullanıyorum belki çakışan bir şeyler veya yanlış bir şeyler vardır:

# Execute your favorite apps at launch
exec-once = sh ~/launch_waybar.sh & easyeffects --gapplication-service & sh ~/hyprslide.sh -i 60 -m HDMI-A-1 & sh ~/xhost.sh & hyprpaper & wl-paste --watch cliphist store & swaync & wl-clip-persist -c regular & nm-applet --indicator & sudo systemctl start zapret
exec-once = /usr/lib/polkit-kde-authentication-agent-1
exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = hyprctl setcursor Vimix-cursors 18
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf

# Slow app launch fix
exec-once = systemctl --user import-environment &
exec-once = hash dbus-update-activation-environment 2>/dev/null &
exec-once = dbus-update-activation-environment --systemd &

# Some default env vars.
env = GDK_SCALE,1 
env = XCURSOR_SIZE,18
env = LIBVA_DRIVER_NAME,nvidia
env = XDG_SESSION_TYPE,wayland
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = WLR_NO_HARDWARE_CURSORS,1
env = WLR_DRM_NO_ATOMIC,1

#env = WLR_RENDERER,vulkan
env = SDL_VIDEODRIVER,wayland
env = MOZ_DISABLE_RDD_SANDBOX,1
env = _JAVA_AWT_WM_NONREPARENTING=1
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
env = __NV_PRIME_RENDER_OFFLOAD,1
env = __VK_LAYER_NV_optimus,NVIDIA_only
env = PROTON_ENABLE_NGX_UPDATER,1
env = NVD_BACKEND,direct
env = __GL_GSYNC_ALLOWED,1
env = __GL_VRR_ALLOWED,1
env = WLR_USE_LIBINPUT,1
env = XWAYLAND_NO_GLAMOR,0 # with this you'll need to use gamescope for gaming
env = __GL_MaxFramesAllowed,1
env = WLR_RENDERER_ALLOW_SOFTWARE,1
env = GDK_BACKEND,wayland,x11
env = QT_QPA_PLATFORM,wayland;xcb
env = CLUTTER_BACKEND,wayland
env = QT_QPA_PLATFORMTHEME,qt5ct
env = MOZ_ENABLE_WAYLAND,1

Eğer ki bir sorun yoksa dediğiniz gibi başka polkit agent kullanmam gerekecek gibi. Bu arada bu değişkenlerin çoğunu XWayland pencerelerinde (oyunlar ve electron uygulamaları) flickering sorunları yaşadığım için NVidia’nın 535.129.03 sürümü sürücüleri ile beraber kullanıyorum. En stabil sonuçları böyle elde edebildim şu anlık.

https://wiki.archlinux.org/title/Wayland#Electron

Bu electronla ilgili olanları çözse de bazı oyunlar çok zor oynanır ve aşırı göz yorucu şekilde flickerlanıyordu yine de deneyeceğim, teşekkür ederim.

1 Like

sudo pacman -S polkit polkit-{qt5,qt6} bunu deneyin bi’ hocam.

Polkit paketimi sırasıyla önce xfce-polkit, polkit-dumb-agent-git ve polkit-kde-agent-git ile değiştirdim, dediğiniz paketleri kurduğum halde değişen bir şey yok. Üstüne Yusuf İpek’in attığı ArchWiki Polkit sayfasındaki madde 2.3’teki kuralları yazıp ilgili yere kaydettim. Ancak sorun hala devam ediyor. Arch’ı baştan kurarsam yüksek ihtimalle sorun çözülür ama gerek yok, sadece sorunun neyden kaynaklandığını ve neyin sorunu çözebileceğini merak ediyorum aslında.

hocam bi’ polkit-gnome deneyin. ona gore autostart seysini ayarlarsiniz.

Maalesef hocam polkit-gnome da çalışmadı. Ancak bilgisayar açılır açılmaz hiç vakit kaybetmeden sudo ile bir komut girersem düzelmiş gibi oldu, birkaç saniye sonra yeni bir komut girdiğmde aynı hatayı aldım. Bazı yerlerde $DISPLAY ile ilgili bir şeyler okudum ancak genel olarak sunulan çözüm de bahsettiğim xhost’lu komutu kullanmak. Root’u xhost’a eklemeye ve .Xauthority dosyasını /root’ta oluşturmaya çalışsam da birkaç komut sonra tekrar aynı hatayı alıyorum yani geçici olarak çalışıyor ne hikmetse kalıcı olmuyor.

Acaba hiç sudoers dosyasını değiştirmiş miydiniz?

sudo nano /etc/sudoers

bu dosyaya ulaşabiliyor musunuz?

Kde için:

kdesudo gsmartcontrol
sudo gsmartcontrol

önce bu kodu çalıştırıp tekrar deneyin olmazsa ilk yazdığım kodu deneyin.

Evet /etc/sudoers dosyasını terminalden sudo vim komutu ile açabiliyorum. GSMARTControl için zaten yukarıda hata verdiğini hata koduyla birlikte belirtmiştim, beklendiği gibi açılmadı.

Masaüstü ortamı olarak KDE değil Hyprland kullanıyorum.

pkexec gsmartcontrol

Yetkilendirme için bu kodu deneyin lütfen

Üst ekleme: Metin hocamın yazdığını görmemişim, evet sudoers dosyasını değiştirmiştim, kurulum esnasında zaten kendimi eklemiştim, kurulumdan sonra sadece visudo komutunu kullanırken Vi yerine Vim ile açılmasını istediğim için varsayılan editörü Vim ile değiştirmiştim. Bu durum, bu kadar büyük bir sorun yaratır mı ya? :sweat_smile:

Maalesef hocam, şifremi girdikten sonra aynı hata devam ediyor.

:slight_smile: :slight_smile: Kafam karıştı sağ ol. Sonuca ulaşmazsak olabilir gözüyle bakmamız gerekecek. :melting_face:
Son olarak aşağıdaki kodla yetkilendirmeyi deneyelim

gksudo gedit

Bu kodu denedim authorization hatası vermedi ama normal sudo ile girince aynı hatayı aldım.

gksudo gsmartcontrol

Yaptığımda da bu sefer sadece (gsmartcontrol:262011): Gtk-WARNING **: 20:16:15.293: cannot open display: :1 hatasını aldım. Authorization yok demiyor ancak açılmıyor da.