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/.
Sprawa dokładnie jest opisana tutaj pod tym linkiem: http://enotty.pipebreaker.pl/2012/05/23/linux-automatic-user-acl-management/ i generalnie rzecz biorąc można się z niego dowiedzieć, że prawa dostępu do części sprzętu są dynamicznie nadawane użytkownikom w zależności od tego czy ich sesja jest aktywna. I tak jak na tym filmiku w powyższym linku można zaobserwować, jeśli przełączymy się na inne TTY albo zmienimy usera na jakiegoś innego, to nasza sesja staje się nieaktywna i np. dźwięk zamiera. Może i to chroni tam przed szeregiem podsłuchów ale to ma jedną wadę -- jeśli chcę sobie wygasić monitor i zwyczajnie go zablokować, to wtedy moja sesja staje się nieaktywna i nagle nie mogę słuchać muzyki. xD Tam w linku gość gada by demony dodawać do odpowiednich grup i to załatwi sprawę, a co w przypadku amaroka? Jak go odpalić by miał dostęp do dźwięku cały czas? Da się w ogóle tak?
Ostatnio edytowany przez morfik (2015-05-19 10:55:06)
Offline
1931
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:17:42)
Offline
No właśnie to robi logind -- nadaje uprawnienia do sprzętu aktywnej sesji użytkownika. Gdy ten się zmienia i jego sesja staje się nieaktywna, to odbiera te uprawnienia czego efektem jest brak dźwięku. Przykład:
$ loginctl list-seats SEAT seat0 1 seats listed. $ loginctl list-sessions SESSION UID USER SEAT c6 108 lightdm seat0 6 1000 morfik seat0 2 sessions listed. $ loginctl show-session 6 Id=6 Name=morfik Timestamp=Thu 2015-05-07 13:52:55 CEST TimestampMonotonic=2498471184 VTNr=7 Display=:0 Remote=no Service=lightdm Desktop=openbox Scope=session-6.scope Leader=19711 Audit=6 Type=x11 Class=user Active=yes State=active IdleHint=no IdleSinceHint=0 IdleSinceHintMonotonic=0
Można się dodać do grupy audio by mieć cały czas dźwięk ale mi generalnie by zależało aby tylko niektóre procesy miały dostęp na stałe do określonych urządzeń, np. amarok do dźwięku, smplayer/mpv/vlc do dźwięku i video, itp.
Offline
Grupa Audio to dla pacjenta, a per-program to raczej Apparmor, Tomoyo albo SELinux na standardowym jaju, i jest jeszcze Grsecurity-RBAC - ale do tego trzeba łatać jajko i kompilować.
Offline
Na dobrą sprawę to nie mam zielonego pojęcia o czym ty do mnie rozmawiasz — przydałby się jakiś przykład. xD Póki co wrzuciłem ogłoszenie na [url=http://unix.stackexchange.com/questions/202059/is-there-a-way-to-set-permissions-so-a-process-could-use-a-specific-device]stack exchange[/url] — warte 150 expa. xD
Offline
Udało mi się rozwiązać ten problem i wcale nie trzeba było się posługiwać jakimś nieznanym mi bliżej jeżykiem. xD
W katalogu ~/.config/autostart/ jest plik pulseaudio.desktop i to on startuje pulseaudio wraz z sesją użytkownika. Tam w nim jest linijka z exec i przepisałem ją do tej postaci poniżej:
Exec=/usr/bin/sg audio -c "pulseaudio -D"
Teraz pulseaudio jest odpalany z takimi prawami:
$ ps -eo user,group,args | grep pulse morfik audio pulseaudio -D morfik audio /usr/lib/pulseaudio/pulse/gconf-helper
I już dźwięk nie gaśnie przy blokowaniu sesji. Przy czym warto zaznaczyć, że nie trzeba przeprowadzać tak nierozważnych działań jak dodawanie użytkowników do grupy audio czy też odpalanie pulseaudio w system mode, czy innych jeszcze bardziej godzących w bezpieczeństwo czynności. xD
Offline
Time (s) | Query |
---|---|
0.00010 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00124 | 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.142.54.136' WHERE u.id=1 |
0.00059 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.142.54.136', 1732529896) |
0.00049 | SELECT * FROM punbb_online WHERE logged<1732529596 |
0.00052 | SELECT topic_id FROM punbb_posts WHERE id=286937 |
0.00004 | SELECT id FROM punbb_posts WHERE topic_id=27370 ORDER BY posted |
0.00045 | 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=27370 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00117 | 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=27370 ORDER BY p.id LIMIT 0,25 |
0.00070 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=27370 |
Total query time: 0.00539 s |