杀死 Xorg 后的授权问题

杀死 Xorg 后的授权问题

因为 Xorg 挂起或者因为一些奇怪的内存泄漏它使用了 4GB 内存,所以我杀死了它并且它正常重新启动。我只需要通过 Slim 再次登录,但此后直到下次重新启动为止,我遇到了几个授权问题,例如:

  • 当尝试通过 Thunar 或 Nemo 安装 USB 拇指驱动器时,只需单击位置列表中的设备,我会得到

    无法安装“Transcend” 无权执行操作。

  • 当尝试挂起、关闭等时,例如使用xfce4-session-logout --suspend它只会锁定屏幕而不是挂起,但sudo pm-suspend确实有效。这就是为什么我猜测这也是一个授权问题。

为什么会发生这种情况?难道是我登录了两次,因为杀死 Xorg 没有正确注销我?某处有锁吗?如何才能像重新启动时那样再次进行安装和暂停工作?

根据 JdeBP 的建议,一些附加信息:我正在使用

  • Linux 4.5.0-1-amd64 #1 SMP Debian 4.5.1-1 (2016-04-14) x86_64 GNU/Linux
  • 主要是 Debian sid 和 XFCE 4.12
  • systemd 如下所示ps -p 1

  • loginctl显示:

    SESSION        UID USER   SEAT
         1       1000 mxm    seat0
    1 sessions listed.
    
  • 我确实有 polkitd 正在运行。dpkg -l '*policy*'节目policykit-1 0.105-17

  • 至于桌面总线的类型,我尝试过dpkg -l '*bus*'(仅显示那些看起来重要的)

    ii  dbus                     1.10.12-1  amd64  simple interprocess messaging system (daemon and util
    ii  dbus-x11                 1.10.12-1  amd64  simple interprocess messaging system (X11 deps)
    ii  libdbus-1-3:amd64        1.10.12-1  amd64  simple interprocess messaging system (library)
    ii  libdbus-1-3:i386         1.10.12-1  i386   simple interprocess messaging system (library)
    ii  libdbus-glib-1-2:amd64   0.108-1    amd64  simple interprocess messaging system (GLib-based shar
    ii  libdbus-glib-1-dev       0.108-1    amd64  simple interprocess messaging system (GLib interface)
    ii  libdbusmenu-glib4:amd64  12.10.2-1  amd64  library for passing menus over DBus
    ii  libdbusmenu-gtk3-4:amd64 12.10.2-1  amd64  library for passing menus over DBus - GTK+ version
    ii  qdbus                    4:4.8.7+dfsg-9  amd64  Qt 4 D-Bus tool
    

xfce4-session-logout --suspend当它不起作用时,会产生以下日志行:

  • /var/log/{kern.log,syslog,messags}

    12 月 18 日 01:52:06 pc xfce4-notifyd[22273]:无法连接到辅助总线:无法连接到套接字 /tmp/dbus-awJrGEr9me:连接被拒绝

    似乎这不是实际的问题,只是显示通知的问题,但也许它暗示了另一个问题?notify-send "test" "test"不过,工作没有问题。

  • /var/log/secure我读到的针对PolicyKit的内容是空的。

在 Nemo 中安装失败后,我找不到任何日志消息。我检查了所有内容/var/log/ dmesg并且还~/.xsession-errors

首先我尝试了dbus-monitor非工作xfce4-session-logout --suspend命令。它给出的不多,它显示xfce4-session-logout将 DBus 消息发送到 xfce-session manager,而 xfce-session manager 反过来,查看源代码,将 DBus 消息发送到 systemd,这没有用 来显示dbus-monitor,所以我用选项尝试了它--system,这似乎显示使用 polkit 与 systemd(?) 进行通信:

method call time=1482033095.691432 sender=:1.1956 -> destination=org.freedesktop.login1 serial=19 path=/org/freedesktop/login1; interface=org.freedesktop.login1.Manager; member=Suspend
   boolean true
method call time=1482033095.691713 sender=:1.0 -> destination=org.freedesktop.DBus serial=214 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetConnectionUnixUser
   string ":1.1956"
method return time=1482033095.691733 sender=org.freedesktop.DBus -> destination=:1.0 serial=57 reply_serial=214
   uint32 1000
method call time=1482033095.691913 sender=:1.0 -> destination=org.freedesktop.DBus serial=215 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetConnectionUnixUser
   string ":1.1956"
method return time=1482033095.691929 sender=org.freedesktop.DBus -> destination=:1.0 serial=58 reply_serial=215
   uint32 1000
method call time=1482033095.692129 sender=:1.0 -> destination=org.freedesktop.PolicyKit1 serial=216 path=/org/freedesktop/PolicyKit1/Authority; interface=org.freedesktop.PolicyKit1.Authority; member=CheckAuthorization
   struct {
      string "system-bus-name"
      array [
         dict entry(
            string "name"
            variant                string ":1.1956"
         )
      ]
   }
   string "org.freedesktop.login1.suspend"
   array [
   ]
   uint32 1
   string ""
method call time=1482033095.692546 sender=:1.12 -> destination=org.freedesktop.DBus serial=410 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetConnectionUnixUser
   string ":1.0"
method return time=1482033095.692564 sender=org.freedesktop.DBus -> destination=:1.12 serial=272 reply_serial=410
   uint32 0
method call time=1482033095.692919 sender=:1.12 -> destination=org.freedesktop.DBus serial=411 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetConnectionUnixUser
   string ":1.1956"
method return time=1482033095.692936 sender=org.freedesktop.DBus -> destination=:1.12 serial=273 reply_serial=411
   uint32 1000
method call time=1482033095.693205 sender=:1.12 -> destination=org.freedesktop.DBus serial=412 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetConnectionUnixUser
   string ":1.1956"
method return time=1482033095.693231 sender=org.freedesktop.DBus -> destination=:1.12 serial=274 reply_serial=412
   uint32 1000
method call time=1482033095.693404 sender=:1.12 -> destination=org.freedesktop.DBus serial=413 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetConnectionUnixProcessID
   string ":1.1956"
method return time=1482033095.693420 sender=org.freedesktop.DBus -> destination=:1.12 serial=275 reply_serial=413
   uint32 10534
method call time=1482033095.693977 sender=:1.12 -> destination=org.freedesktop.DBus serial=414 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetConnectionUnixProcessID
   string ":1.1956"
method return time=1482033095.693994 sender=org.freedesktop.DBus -> destination=:1.12 serial=276 reply_serial=414
   uint32 10534
method call time=1482033095.694460 sender=:1.12 -> destination=org.freedesktop.DBus serial=415 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetConnectionUnixUser
   string ":1.1956"
method return time=1482033095.694478 sender=org.freedesktop.DBus -> destination=:1.12 serial=277 reply_serial=415
   uint32 1000
method call time=1482033095.694663 sender=:1.12 -> destination=org.freedesktop.DBus serial=416 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetConnectionUnixProcessID
   string ":1.1956"
method return time=1482033095.694677 sender=org.freedesktop.DBus -> destination=:1.12 serial=278 reply_serial=416
   uint32 10534
method call time=1482033095.695290 sender=:1.12 -> destination=org.freedesktop.DBus serial=417 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetConnectionUnixProcessID
   string ":1.1956"
method return time=1482033095.695307 sender=org.freedesktop.DBus -> destination=:1.12 serial=279 reply_serial=417
   uint32 10534
method call time=1482033095.695791 sender=:1.12 -> destination=org.freedesktop.DBus serial=418 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetConnectionUnixUser
   string ":1.1956"
method return time=1482033095.695808 sender=org.freedesktop.DBus -> destination=:1.12 serial=280 reply_serial=418
   uint32 1000
method call time=1482033095.696095 sender=:1.12 -> destination=org.freedesktop.DBus serial=419 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetConnectionUnixProcessID
   string ":1.1956"
method return time=1482033095.696112 sender=org.freedesktop.DBus -> destination=:1.12 serial=281 reply_serial=419
   uint32 10534
method call time=1482033095.696641 sender=:1.12 -> destination=org.freedesktop.DBus serial=420 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetConnectionUnixProcessID
   string ":1.1956"
method return time=1482033095.696658 sender=org.freedesktop.DBus -> destination=:1.12 serial=282 reply_serial=420
   uint32 10534
method call time=1482033095.697047 sender=:1.12 -> destination=org.freedesktop.DBus serial=421 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetConnectionUnixProcessID
   string ":1.1956"
method return time=1482033095.697063 sender=org.freedesktop.DBus -> destination=:1.12 serial=283 reply_serial=421
   uint32 10534
method call time=1482033095.697365 sender=:1.12 -> destination=org.freedesktop.DBus serial=422 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetConnectionUnixProcessID
   string ":1.1956"
method return time=1482033095.697381 sender=org.freedesktop.DBus -> destination=:1.12 serial=284 reply_serial=422
   uint32 10534
method return time=1482033095.697637 sender=:1.12 -> destination=:1.0 serial=423 reply_serial=216
   struct {
      boolean false
      boolean true
      array [
         dict entry(
            string "polkit.retains_authorization_after_challenge"
            string "1"
         )
      ]
   }
method call time=1482033095.697882 sender=:1.0 -> destination=org.freedesktop.DBus serial=217 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetConnectionUnixUser
   string ":1.1956"
method return time=1482033095.697901 sender=org.freedesktop.DBus -> destination=:1.0 serial=59 reply_serial=217
   uint32 1000
error time=1482033095.697991 sender=:1.0 -> destination=:1.1956 error_name=org.freedesktop.DBus.Error.InteractiveAuthorizationRequired reply_serial=19
   string "Interactive authentication required."
method call time=1482033097.707153 sender=:1.2260 -> destination=org.freedesktop.DBus serial=1 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=Hello
method return time=1482033097.707178 sender=org.freedesktop.DBus -> destination=:1.2260 serial=1 reply_serial=1
   string ":1.2260"
signal time=1482033097.707194 sender=org.freedesktop.DBus -> destination=(null destination) serial=433 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
   string ":1.2260"
   string ""
   string ":1.2260"
signal time=1482033097.707212 sender=org.freedesktop.DBus -> destination=:1.2260 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
   string ":1.2260"
method call time=1482033097.707800 sender=:1.2260 -> destination=org.freedesktop.DBus serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "type='signal',sender='org.freedesktop.PolicyKit1',interface='org.freedesktop.DBus.Properties',member='PropertiesChanged',path='/org/freedesktop/PolicyKit1/Authority',arg0='org.freedesktop.PolicyKit1.Authority'"
method return time=1482033097.707832 sender=org.freedesktop.DBus -> destination=:1.2260 serial=3 reply_serial=2
method call time=1482033097.707900 sender=:1.2260 -> destination=org.freedesktop.DBus serial=3 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "type='signal',sender='org.freedesktop.PolicyKit1',interface='org.freedesktop.PolicyKit1.Authority',path='/org/freedesktop/PolicyKit1/Authority'"
method return time=1482033097.707920 sender=org.freedesktop.DBus -> destination=:1.2260 serial=4 reply_serial=3
method call time=1482033097.708001 sender=:1.2260 -> destination=org.freedesktop.DBus serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "type='signal',sender='org.freedesktop.DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',path='/org/freedesktop/DBus',arg0='org.freedesktop.PolicyKit1'"
method return time=1482033097.708020 sender=org.freedesktop.DBus -> destination=:1.2260 serial=5 reply_serial=4
method call time=1482033097.708137 sender=:1.2260 -> destination=org.freedesktop.DBus serial=5 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=StartServiceByName
   string "org.freedesktop.PolicyKit1"
   uint32 0
method return time=1482033097.708163 sender=org.freedesktop.DBus -> destination=:1.2260 serial=6 reply_serial=5
   uint32 2
method call time=1482033097.708484 sender=:1.2260 -> destination=org.freedesktop.DBus serial=6 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetNameOwner
   string "org.freedesktop.PolicyKit1"
method return time=1482033097.708504 sender=org.freedesktop.DBus -> destination=:1.2260 serial=7 reply_serial=6
   string ":1.12"
method call time=1482033097.708797 sender=:1.2260 -> destination=:1.12 serial=7 path=/org/freedesktop/PolicyKit1/Authority; interface=org.freedesktop.DBus.Properties; member=GetAll
   string "org.freedesktop.PolicyKit1.Authority"
method return time=1482033097.709126 sender=:1.12 -> destination=:1.2260 serial=424 reply_serial=7
   array [
      dict entry(
         string "BackendName"
         variant             string "local"
      )
      dict entry(
         string "BackendVersion"
         variant             string "0.105"
      )
      dict entry(
         string "BackendFeatures"
         variant             uint32 1
      )
   ]
method call time=1482033097.709509 sender=:1.2260 -> destination=:1.12 serial=8 path=/org/freedesktop/PolicyKit1/Authority; interface=org.freedesktop.PolicyKit1.Authority; member=EnumerateActions
   string ""
method return time=1482033097.712396 sender=:1.12 -> destination=:1.2260 serial=425 reply_serial=8
   array [
      [ ... 1800 lines of structs with policyKit actions ... ]
   ]
method call time=1482033097.720322 sender=:1.2260 -> destination=:1.12 serial=9 path=/org/freedesktop/PolicyKit1/Authority; interface=org.freedesktop.PolicyKit1.Authority; member=CheckAuthorization
   struct {
      string "unix-process"
      array [
         dict entry(
            string "pid"
            variant                uint32 10534
         )
         dict entry(
            string "start-time"
            variant                uint64 71999741
         )
         dict entry(
            string "uid"
            variant                int32 1000
         )
      ]
   }
   string "org.xfce.session.xfsm-shutdown-helper"
   array [
      dict entry(
         string "user"
         string "root (root)"
      )
      dict entry(
         string "command_line"
         string "/usr/lib/x86_64-linux-gnu/xfce4/session/xfsm-shutdown-helper --suspend"
      )
      dict entry(
         string "program"
         string "/usr/lib/x86_64-linux-gnu/xfce4/session/xfsm-shutdown-helper"
      )
      dict entry(
         string "polkit.gettext_domain"
         string "polkit-1"
      )
   ]
   uint32 1
   string ""
method call time=1482033097.720691 sender=:1.12 -> destination=org.freedesktop.DBus serial=426 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetConnectionUnixUser
   string ":1.2260"
method return time=1482033097.720713 sender=org.freedesktop.DBus -> destination=:1.12 serial=285 reply_serial=426
   uint32 0
method return time=1482033097.720734 sender=:1.12 -> destination=:1.2260 serial=427 reply_serial=9
   struct {
      boolean false
      boolean true
      array [
      ]
   }
signal time=1482033097.720788 sender=org.freedesktop.DBus -> destination=:1.2260 serial=5 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost
   string ":1.2260"
signal time=1482033097.720811 sender=org.freedesktop.DBus -> destination=(null destination) serial=434 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
   string ":1.2260"
   string ":1.2260"
   string ""

相关内容