저는 debian sid를 사용하고 있는데 업그레이드 중 하나로 인해 USB 드라이브(sdcard)를 제대로 마운트할 수 없습니다.
돌핀에서는 "작업을 수행할 권한이 없습니다"라는 메시지가 표시됩니다.
그래서 약간 읽은 후에는 백그라운드에서 수행 중인 것 같습니다.
udisksctl mount -b /dev/sdj1
이것은 "==== AUTHENTICATING FOR org.freedesktop.udisks2.filesystem-mount ==="로 끝나고 루트 비밀번호를 묻습니다.
읽은 후에 이것이 정책 키트일 수 있다는 것을 알았으므로 /etc/polkit-1/localauthority/50-local.d/emil-can-mount-usb.pkla를 추가했습니다.
[mounting without password]
Identity=unix-user:emil
Action=org.freedesktop.udisks2.filesystem-mount
ResultAny=no
ResultInactive=no
ResultActive=yes
추가한 뒤에는 아무것도 바뀌지 않았습니다. Dolphin을 마운트할 수 없습니다. CLI가 비밀번호를 요청합니다. 그래서 polkit 서비스를 중지하여 디버깅을 시도하고 수동으로 시작했습니다.
/usr/libexec/polkitd > /tmp/polkitd.log 2>&1
그런 다음 로그에서 다음을 볼 수 있습니다.
** (polkitd:27925): DEBUG: 17:39:58.602: system-bus-name::1.37 is inquiring whether system-bus-name::1.1748 is authorized for org.freedesktop.udisks2.filesystem-mount
** (polkitd:27925): DEBUG: 17:39:58.603: user of caller is unix-user:root
** (polkitd:27925): DEBUG: 17:39:58.603: user of subject is unix-user:emil
** (polkitd:27925): DEBUG: 17:39:58.603: checking whether system-bus-name::1.1748 is authorized for org.freedesktop.udisks2.filesystem-mount
** (polkitd:27925): DEBUG: 17:39:58.603: 0x7f97ac00c4a0
** (polkitd:27925): DEBUG: 17:39:58.604: Checking whether session 1 is active.
** (polkitd:27925): DEBUG: 17:39:58.604: Session 1 has UID 1000.
** (polkitd:27925): DEBUG: 17:39:58.604: UID 1000 has state online.
** (polkitd:27925): DEBUG: 17:39:58.604: subject is in session 1 (local=1 active=0)
** (polkitd:27925): DEBUG: 17:39:58.604: challenge (implicit_authorization = auth_admin)
** (polkitd:27925): DEBUG: 17:39:58.604:
** (polkitd:27925): DEBUG: 17:39:58.609: Added authentication agent for unix-process:31011:409192549 at name :1.1748 [udisksctl mount -b /dev/sdj1], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale pl_PL.UTF-8
** (polkitd:27925): DEBUG: 17:39:58.611: system-bus-name::1.37 is inquiring whether system-bus-name::1.1748 is authorized for org.freedesktop.udisks2.filesystem-mount
** (polkitd:27925): DEBUG: 17:39:58.611: user of caller is unix-user:root
** (polkitd:27925): DEBUG: 17:39:58.612: user of subject is unix-user:emil
** (polkitd:27925): DEBUG: 17:39:58.612: checking whether system-bus-name::1.1748 is authorized for org.freedesktop.udisks2.filesystem-mount
** (polkitd:27925): DEBUG: 17:39:58.613: 0x7f97ac00a530
** (polkitd:27925): DEBUG: 17:39:58.613: Checking whether session 1 is active.
** (polkitd:27925): DEBUG: 17:39:58.613: Session 1 has UID 1000.
** (polkitd:27925): DEBUG: 17:39:58.613: UID 1000 has state online.
** (polkitd:27925): DEBUG: 17:39:58.613: subject is in session 1 (local=1 active=0)
** (polkitd:27925): DEBUG: 17:39:58.614: challenge (implicit_authorization = auth_admin)
** (polkitd:27925): DEBUG: 17:39:58.614:
** (polkitd:27925): DEBUG: 17:39:58.614: using authentication agent for challenge
(polkitd:27925): GLib-DEBUG: 17:39:58.614: setenv()/putenv() are not thread-safe and should not be used after threads are created
(polkitd:27925): GLib-DEBUG: 17:39:58.614: setenv()/putenv() are not thread-safe and should not be used after threads are created
1000은 내 사용자 "emil"의 UID이지만 "system-bus-name::1.37이 system-bus-name::1.1748이 org.freedesktop.udisks2.filesystem-mount에 대해 승인되었는지 묻고 있습니다"라는 의미는 무엇입니까? 사용자를 확인하는 것이 아니라 프로세스 ID를 확인합니다.
어쨌든 제 질문은 이 문제를 어떻게 해결할 수 있느냐는 것입니다(비밀번호가 필요하지 않으며 파일 관리자가 열기만 하면 됩니다).