
因為 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 ""