Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Próbuje podmontować przykładowe .iso:
$ udisksctl loop-setup -r -f /home/jacek/dsl-4.11.rc2.iso Mapped file /home/jacek/dsl-4.11.rc2.iso as /dev/loop0.
W otwartym oknie menadżera plików pojawia się nowe niezamontowane urządzenie
i komunikat błędu: [b]Not authorized to perform operation[/b]
więc dalej:
$ udisksctl mount --block-device /dev/loop0 ==== AUTHENTICATING FOR org.freedesktop.udisks2.filesystem-mount-system === Wymagane jest uwierzytelnienie, aby zamontować urządzenie /dev/loop0 Authenticating as: root Password:
Po podaniu hasła oczywiście grzecznie się montuje:
==== AUTHENTICATION COMPLETE === Mounted /dev/loop0 at /media/jacek/KNOPPIX.
[b]ale czy to nie powinno działać bez roota?[/b]
mam w [b]/etc/polkit-1/rules.d/50-udisks2.rules[/b]:
polkit.addRule(function(action, subject) { var YES = polkit.Result.YES; var permission = { // only required for udisks1: "org.freedesktop.udisks.filesystem-mount": YES, "org.freedesktop.udisks.filesystem-mount-system-internal": YES, "org.freedesktop.udisks.luks-unlock": YES, "org.freedesktop.udisks.drive-eject": YES, "org.freedesktop.udisks.drive-detach": YES, // only required for udisks2: "org.freedesktop.udisks2.filesystem-mount": YES, "org.freedesktop.udisks2.filesystem-mount-system": YES, "org.freedesktop.udisks2.encrypted-unlock": YES, "org.freedesktop.udisks2.eject-media": YES, "org.freedesktop.udisks2.power-off-drive": YES, // required for udisks2 if using udiskie from another seat (e.g. systemd): "org.freedesktop.udisks2.filesystem-mount-other-seat": YES, "org.freedesktop.udisks2.encrypted-unlock-other-seat": YES, "org.freedesktop.udisks2.eject-media-other-seat": YES, "org.freedesktop.udisks2.power-off-drive-other-seat": YES }; if (subject.isInGroup("plugdev")) { return permission[action.id]; } });
użytkownik należny do grupy plugdev
Dlaczego wymaga roota?
Ostatnio edytowany przez jacekz (2018-04-08 11:34:34)
Offline
Na początek to ci mogę powiedzieć jedynie, że ta twoja reguła w ogóle nie jest przetwarzana. xD
Ten katalog /etc/polkit-1/rules.d/ to jest dopiero od wersji 0.106+ , a w debianie jest:
$ apt-cache policy policykit-1 policykit-1: Installed: 0.105-20 Candidate: 0.105-20 Version table: 0.113-6 130 130 https://deb.debian.org/debian experimental/main amd64 Packages *** 0.105-20 990 990 https://deb.debian.org/debian sid/main amd64 Packages 100 /var/lib/dpkg/status
No i nie da rady tej 0.113 zainstalować, bo:
# aptitude -t experimental install policykit-1 The following packages will be REMOVED: libpolkit-backend-1-0{u} The following packages will be upgraded: libpolkit-agent-1-0 libpolkit-gobject-1-0 policykit-1{b} 3 packages upgraded, 0 newly installed, 1 to remove and 181 not upgraded. Need to get 169 kB of archives. After unpacking 44.0 kB will be freed. The following packages have unmet dependencies: policykit-1 : Depends: libmozjs185-1.0 (>= 1.8.5-1.0.0+dfsg) which is a virtual package and is not provided by any available package
Także póki co to musisz ze starym mechanizmem pozostać, czyli tworzyć pliki .pkla w /etc/polkit-1/localauthority/ .
Offline
Mi się udało dograć tę nową wersję polkit'a i w sumie ogarnąłem sobie te obrazy i urządzenia loop w taki sposób.
# cat /etc/polkit-1/rules.d/20-udisks2.rules polkit.addRule(function(action, subject) { if (action.id.indexOf("org.freedesktop.udisks2.loop-") == 0 && subject.local && subject.active && subject.user == "morfik") { return polkit.Result.YES; } }); polkit.addRule(function(action, subject) { if (action.id.indexOf("org.freedesktop.udisks2.") == 0 && subject.local && subject.active && (action.lookup("device").match(/\/dev\/loop[a-z0-9]*/)) && subject.user == "morfik") { return polkit.Result.YES; } }); polkit.addRule(function(action) { if (action.id.indexOf("org.freedesktop.udisks2.") == 0) { return polkit.Result.NO; } });
Pierwsza reguła zezwala userowi morfik na skonfigurowanie urządzeń loop.
Druga reguła pozwala morfikowi na przeprowadzenie wszystkich akcji z rodziny org.freedesktop.udisks2.* (mount i inne takie) ale tylko gdy urządzenia pasują do /dev\/loop[a-z0-9]* , czyli min. /dev/loop1, /dev/loop2p10, itp.
Ostatnia reguła blokuje wszystkie wykonania akcji org.freedesktop.udisks2.* , tak by nikt nieuprawniony ich nie używał.
Nawet działa. xD
Offline
Nie prościej naskrobać skrypta do montowania, i w sudoers ustawić, żeby szedł przez sudo bez hasła?
Nie trzeba wtedy ani udiska ani policykit, a całość łatwiej przeżyje aktualizacje czy zmiany systemu.
Jeśli natomiast ktoś lubi kolorowe, automatyczne klikadła, to zawsze jest:
https://packages.debian.org/stretch/acetoneiso
Ostatnio edytowany przez Jacekalex (2018-04-09 05:21:01)
Offline
Skrypty by montować zasoby? Ja sobie póki co [url=https://gist.github.com/morfikov/081ffdb391c4193b73f576e76ecb39d8]taką politykę naskrobałem[/url]. To w dużej mierze przykłady by sprawdzić jak to działa. Oczywiście to tylko czubek góry lodowej, bo akcje nie ograniczają się tylko i wyłącznie do udisks2. Można np. sobie gparted odpalać jako zwykły user bez hasełka, to prawie jak sudo tylko bez sudo. xD
Offline
Dzięki,
[quote=morfik]Mi się udało dograć tę nową wersję polkit'a...[/quote]
to jakieś karkołomne było? - napisz co i jak.
@Jacekalex ... skrypty wydają się takie mało eleganckie...
a jesli mowa o rozwiązaniu sposobem windowsowskim to jest [b]furiusisomount[/b]
Działa i wydaje się lżejszy niż "aceton"
Ostatnio edytowany przez jacekz (2018-04-09 15:39:47)
Offline
No technicznie rzecz biorąc, to są jakieś dziwne problemy z zależnościami z libmozjs185-1.0 i przez niego nie można zainstalować tego policykit z experimental. Więc sobie go pobrałem ze stable, bo w sid i testing on nie występuje:
# apt-cache policy libmozjs185-1.0 libmozjs185-1.0: Installed: 1.8.5-1.0.0+dfsg-6 Candidate: 1.8.5-1.0.0+dfsg-6 Version table: *** 1.8.5-1.0.0+dfsg-6 300 300 https://deb.debian.org/debian stable/main amd64 Packages 100 /var/lib/dpkg/status # apt-cache policy policykit-1 policykit-1: Installed: 0.113-6 Candidate: 0.113-6 Version table: *** 0.113-6 995 130 https://deb.debian.org/debian experimental/main amd64 Packages 100 /var/lib/dpkg/status 0.105-20 990 500 https://deb.debian.org/debian testing/main amd64 Packages 990 https://deb.debian.org/debian sid/main amd64 Packages 0.105-18 300 300 https://deb.debian.org/debian stable/main amd64 Packages
Ostatnio edytowany przez morfik (2018-04-09 16:34:17)
Offline
Jak coś to był update policykit w experimental i poprawili ten błąd z zależnościami i teraz już wchodzi czysto.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863784
Offline
W zasadzie trzeba podnieść do wersji 0.114-1 z experimentala trzy paczki:
policykit-1
libpolkit-agent-1-0
libpolkit-gobject-1-0
i doinstalować (u mnie)
libmozjs-52-0
Działa.
...jedynym zgrzytem jest to że po odmontowaniu .iso
w menadżerze plików (pcmanfm) pozostaje ikona niezamontowanego zasobu,
dopiero wykonanie w konsoli
udisksctl loop-delete --block-device /dev/loop0
"wywala" zasób z menadżera.
Można coś z tym zrobić?
Offline
Strony: 1
Time (s) | Query |
---|---|
0.00009 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00107 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.145.85.74' WHERE u.id=1 |
0.00072 | UPDATE punbb_online SET logged=1732216788 WHERE ident='3.145.85.74' |
0.00044 | SELECT * FROM punbb_online WHERE logged<1732216488 |
0.00113 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=30405 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00197 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=30405 ORDER BY p.id LIMIT 0,25 |
0.00079 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=30405 |
Total query time: 0.0063 s |