Strona 1 z 2

Wyłączenie uwierzytelnienia dla programu

: 14 sty 2022, 14:13
autor: misha_lcf
Witam,
Zainstalowałem lm-sensors oraz Psensor. Jak wyłączyć żądanie uwierzytelnienia sensorów po każdym wyburzeniu z uśpienia?
Lubuntu 18.04.
Pozdrawiam

Re: Wyłączenie uwierzytelnienia dla programu

: 17 sty 2022, 16:14
autor: mario_7
Opisz dokładniej - co takiego chciałbyś zmienić?

Re: Wyłączenie uwierzytelnienia dla programu

: 19 sty 2022, 17:28
autor: misha_lcf
Po wyjściu z uśpienia/wygaszacza, Pojawia się żądanie uwierzytelnienia: "Wymagane jest uwierzytelnienie, aby zaktualizować dane SMART z urządzenia WDC.... (/dev/sda/)". Pojawia się wyłącznie po wyjściu z uśpienia/wygaszacza. Co ciekawe: i to nie zawsze. Oraz dotyczy wyłącznie sensora dysku twardego. Podczas uruchamiania systemu: nie pojawia się.

Re: Wyłączenie uwierzytelnienia dla programu

: 19 sty 2022, 18:30
autor: kobrawerde

Re: Wyłączenie uwierzytelnienia dla programu

: 20 sty 2022, 00:16
autor: misha_lcf
Po lekturze podanego linku https://askubuntu.com/questions/776977/ ... m-in-16-04 :
Problem prawdopodobnie na razie nierozwiązywalny. A właściwie tymczasowo rozwiązany lecz z niewiadomymi.
Oczywiście wyłączenie opcji "Enable support of udisks2" usuwa problem, ale jednocześnie odłącza sensory dysku, czyli wyłącza monitorowanie jego temperatury.
Pozostało drugie rozwiązanie. Na razie, zgodnie z sugestią, w:

Kod: Zaznacz cały

/usr/share/polkit-1/rules.d/00_user_xxxx.rules
dodałem skrypt:

Kod: Zaznacz cały

const CUSTOM_PERMISSIONS = {
    // fixes udisk2 issue with lm-sensor where it prompts for root password after suspend -> resume
    "org.freedesktop.udisks2.ata-smart-update": polkit.Result.YES
};

polkit.addRule(function (action, subject) {
    if (subject.user == "xxxx" && action.id in CUSTOM_PERMISSIONS) {
        return CUSTOM_PERMISSIONS[action.id];
    }

    return polkit.Result.NOT_HANDLED;
});
I będę obserwował. Bo podobno po pewnym czasie problem powraca.
Generalnie problem zdaje się wynikać z bałaganu, jaki robi udisks2 z systemami na których nie działa Gnome. Chodzi chyba o to, że środowiska graficzne np. Gnome, starają się zastąpić podstawowe narzędzia własnymi. Co generuje błędy, tak jak tutaj z polkit'ami. I jak zauważyłem, wywołuje dyskusję co do osłabienia bezpieczeństwa.
W każdym razie poczekam i sprawdzę, kiedy i przy jakiej okazji, problem może powrócić.

Re: Wyłączenie uwierzytelnienia dla programu

: 15 lut 2022, 15:17
autor: misha_lcf
Po kilku tygodniach obserwacji, zauważyłem, że problem czasami powraca. Zarówno na 18.04 jak i na 20.04. Niestety nie jestem w stanie określić z jakiego powodu.

Re: Wyłączenie uwierzytelnienia dla programu

: 16 lut 2022, 08:00
autor: mario_7
Może w logach coś widać - uruchom

Kod: Zaznacz cały

journalctl
i poszukaj tam logów z godziny gdy pojawiło się pytanie - powinno być widać co spowodowało pojawienie się zapytania o hasło.

Aby przeszukiwać journalctl możesz nacisnąć / i napisać słowo kluczowe, np. polkitd i enter
Potem klawisze n oraz N (Shift+n) przeszukują odpowiednio - następny, poprzedni wynik dla zadanego słowa kluczowego
Jeśli to PolicyKit domaga się hasła, to powinieneś znaleźć log który informuje co i w jakim celu chce to hasło, a wtedy będzie można dopisać brakującą regułę, aby już o to hasło nie pytało w przyszłości.

Re: Wyłączenie uwierzytelnienia dla programu

: 16 lut 2022, 14:45
autor: misha_lcf
"journalctl" pokazuje:

Kod: Zaznacz cały

polkitd(authority=local)[933]: Operator of unix-session:1 successfully authenticated as unix-user:user_name to gain ONE-SHOT authorization for action org.freedesktop.udi
Zastanawiam się nad niezbyt poprawnym rozwiązaniem. Przeglądam:

Kod: Zaznacz cały

/usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy
i zastanawiam się nad sekcją:

Kod: Zaznacz cały

   ...
<action id="org.freedesktop.udisks2.ata-smart-update">
    <description>Update SMART data</description>
   ...
   <defaults>
      <allow_any>auth_admin</allow_any>
      <allow_inactive>auth_admin</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
    ...
 
Możliwe, że należy dodać zezwolenie jeszcze w innych sekcjach, np:

Kod: Zaznacz cały

...
<action id="org.freedesktop.udisks2.ata-smart-selftest">
    <description>Run SMART self-test</description>
...
   <defaults>
      <allow_any>auth_admin</allow_any>
      <allow_inactive>auth_admin</allow_inactive>
      <allow_active>auth_admin_keep</allow_active>
    </defaults>
...
Na razie sprawdzam czy problem pojawi się przy pracy z LXDE.

Re: Wyłączenie uwierzytelnienia dla programu

: 16 lut 2022, 22:41
autor: mario_7
Log z joirnalctl jest ucięty, przewiń ekran strzałką w prawo aby zobaczyć całość.

Co do zmian plików polityk, to pewnie zadziała ale może to być nadpisane przy jakiejś aktualizacji.

Re: Wyłączenie uwierzytelnienia dla programu

: 17 lut 2022, 14:37
autor: misha_lcf
"journalctl" całość:

Kod: Zaznacz cały

polkitd(authority=local)[933]: Operator of unix-session:1 successfully authenticated as unix-user:user to gain ONE-SHOT authorization for action org.freedesktop.udisks2.ata-smart-update for system-bus-name::1.2583 [psensor] (owned by unix-user:user)

Re: Wyłączenie uwierzytelnienia dla programu

: 22 lut 2022, 08:34
autor: mario_7
Ten log wskazuje, że to co ustawiłeś w /usr/share/polkit-1/rules.d/00_user_xxxx.rules działa prawidłowo - uzyskano pozwolenie na akcję org.freedesktop.udisks2.ata-smart-update
Czy w logach nie ma może czegoś o braku pozwolenia na wykonanie jakiejś innej akcji?

Re: Wyłączenie uwierzytelnienia dla programu

: 22 lut 2022, 21:34
autor: misha_lcf
Wyłączyłem monitorowanie udisk2, wyczyściłem logi, włączyłem monitorowanie udisk2, zrestartowałem psensors. Po wybudzeniu - monit o hasło. W logach, nic więcej nie było, tylko to co powyżej.
Sprawdziłem ponownie

Kod: Zaznacz cały

hddtemp daemon
- ma poprawną konfigurację.
Sprawdziłem

Kod: Zaznacz cały

libatasmart
Poprawnie odczytuje dane.
Zaczynam podejrzewać, że problem może pojawiać się własnie przez bibliotekę libatasmart. O ile dobrze zrozumiałem, libatasmart pełną funkcjonalność eksportuje poprzez D-Bus, dzięki czemu nawet nieuprzywilejowane procesy mogą odczytywać dane o stanie dysku. A odbywa się to przy pomocy gnome-disk-health-service (napisany w Vali). Czyli ukierunkowanie na integrację z gnome.

Re: Wyłączenie uwierzytelnienia dla programu

: 25 lut 2022, 12:35
autor: mario_7
A ten monit o hasło to z policy kit pochodzi? czy jakiś inny?

Re: Wyłączenie uwierzytelnienia dla programu

: 16 mar 2022, 20:31
autor: misha_lcf
Znów wyczyściłem logi i sprawdziłem. Monit pochodzi z polkitu.
W najbliższym czasie sprawdzę jeszcze jak ta aplikacja zachowuje się na debianie.

Re: Wyłączenie uwierzytelnienia dla programu

: 16 mar 2022, 23:24
autor: jacekalex
Udisk2 sam potrafi sprawdzać temperatury dysków, nie trzeba do tego hddtemp zatrudniać.

Dowód rzeczowy:
Obrazek
Na zdjęciu Preferencje programu Mate-sensors-applet.

Re: Wyłączenie uwierzytelnienia dla programu

: 17 mar 2022, 11:15
autor: mario_7
Pokaż logi z polkitu - gdzieś tam powinno być, ze się o jakieś hasło domaga.

Re: Wyłączenie uwierzytelnienia dla programu

: 20 mar 2022, 20:39
autor: misha_lcf
jacekalex:
Problem dotyczy własnie udisk2. Po jego włączeniu, przy każdym wybudzaniu systemu, następuje monit o hasło:
Obrazek

Postawiłem od nowa system. 20.04, ze środowiskiem LXQt. I bardzo dokładnie przejrzałem wszystkie logi. Nie pokazują żadnych błędów. Sytuacja za każdym razem jest niezmienna. Gdy włączam udisk2 w celu monitorowania temperatury dysków - zawsze po wybudzeniu, pojawia się monit o hasło. Bez względu na dodanie wyjątku do reguł polkitu.

Kod: Zaznacz cały

auth.log ()
Mar 20 08:18:00 784710lb polkitd(authority=local): Registered Authentication Agent for unix-session:1 (system bus name :1.40 [/usr/bin/lxqt-policykit-agent], object path /org/lxqt/PolicyKit1/AuthenticationAgent, locale pl_PL.UTF-8)

auth.log (wybudzenie 18:44)
Mar 20 18:47:32 784710lb systemd-logind[808]: Operation 'sleep' finished.
Mar 20 18:47:44 784710lb polkitd(authority=local): Operator of unix-session:1 successfully authenticated as unix-user:vax99es to gain ONE-SHOT authorization for action org.freedesktop.udisks2.ata-smart-update for system-bus-name::1.340 [/usr/bin/psensor] (owned by unix-user:vax99es)

sys.log (wybudzenie 18:44)
Mar 20 18:47:36 784710lb systemd[1]: systemd-rfkill.service: Succeeded.
Mar 20 18:47:44 784710lb systemd[1]: NetworkManager-dispatcher.service: Succeeded.
Mar 20 18:48:03 784710lb CRON[50944]: (root) CMD ([ -x /etc/init.d/anacron ] && if [ ! -d /run/systemd/system ]; then /usr/sbin/invoke-rc.d anacron start >/dev/null; fi)
O ile wcześniej, mogło być to spowodowane różnymi zależnościami, to teraz jest to czysty system, bezpośrednio po instalacji. Jestem już prawie całkowicie przekonany, że problem leży wewnątrz udisk2 i jego integracji ze środowiskami graficznymi.

Re: Wyłączenie uwierzytelnienia dla programu

: 20 mar 2022, 21:01
autor: jacekalex
Może grupa nie dodana?

Pokaz wyniki z konta użytkownika:

Kod: Zaznacz cały

ls -l /dev/sd{a,b,c}

Kod: Zaznacz cały

groups | grep disk

Re: Wyłączenie uwierzytelnienia dla programu

: 21 mar 2022, 13:56
autor: misha_lcf
Komputer 1 20.04/LXQt

Kod: Zaznacz cały

784710lb@x1ft990zx:~$ ls -l /dev/sd{a,b}
brw-rw---- 1 root disk 8,  0 mar 21 09:52 /dev/sda
brw-rw---- 1 root disk 8, 16 mar 21 09:52 /dev/sdb
784710lb@x1ft990zx:~$ groups | grep disk
784710lb@x1ft990zx:~$ 
Komputer 2 20.04/GNOME (bez błędu)

Kod: Zaznacz cały

784710lb@x2gl702vt:~$ ls -l /dev/sda
brw-rw---- 1 root disk 8, 0 mar 21 13:33 /dev/sda
784710lb@x2gl702vt:~$ ls -l /dev/nvme0n1
brw-rw---- 1 root disk 259, 0 mar 21 13:33 /dev/nvme0n1
784710lb@x2gl702vt:~$ groups | grep disk
784710lb@x2gl702vt:~$ 
Problem występuje wyłącznie dla LXDE/LXQt (te sprawdzałem). Przy GNOME wszystko działa poprawnie. Zrobię jeszcze jedno doświadczenie. Na "czystym" 20.04/GNOME, doinstaluję LXQt i sprawdzę czy problem się pojawi. Do tej pory sprawdzałem na LXDE/LXQt bez zainstalowanego GNOME.

Re: Wyłączenie uwierzytelnienia dla programu

: 21 mar 2022, 14:53
autor: jacekalex

Kod: Zaznacz cały

sudo  gpasswd -a $USER disk
powinno pomóc na problemy z uprawnieniami udisk2.
Zadziała dopiero po ponownym zalogowaniu na konto użyszkodnika, którego dodałeś do grupy.
Czyli restart albo dokładne wylogowanie.