Category Archives: KDE

Google Chrome и KDEWallet

Привет, друзья!

Праздники отгремели, а я поставил себе Kubuntu 14.10 и уже пару дней играюсь с ней,
подстраивая под себя.

Почему Кубунту, не Дебиан? Хрен редьки не слаще. У Кубунты, точнее Юбунты (Ubuntu), есть ppa репозитории, что иногда бывает удобно для пользования какими-нибудь свежаками и новинками, ну не знаю, для деби тоже всё есть.

Зачем Линух, когда у меня моя новенькая купленная Windows 8.1 которую я вскоре буду обустраивать?

Мы арендуем VDS (виртуальный выделенный сервер) и мне в принципе надо тестить новые конфиги на локальной машине желательно, а у нас там nginx + php-fpm для быстрейшей обработки страниц, ведь nginx быстрее Apache‘а, да? Или нет? говорят, что статика гораздо быстрее, а PHP через новый FastCGI интерфейс тоже должен быть быстр.

Ладно, nginx есть и под виньду, но не смешите меня. Кроме того, я хочу поиграть с nodejs, а Линукс без извращений типа Cygwin‘а родная среда для него.

Итак, к теме. Поставил родной Google Chrome от самого Googla не из репозитария что-то типа chromium‘а, а настоящий супер Google ChromeAbout: Version 39.0.2171.95 (64-bit).

Итак, скачал deb пакет с Google, затем `dpkg -i` этот пакет, он запросил какую-то либу. Я её установил со второй попытки, `apt-get -f` потребовали от меня сначала, вроде либа (я не помню какая) поставилась, и потом `dpkg -i [скачанный deb-файл]` заработал.

Я испольузю Kubuntu 14.10 с Plasma 4 – сам пока в шоке от всего этого, что они сделали с рабочим столом? Он как табуретка получился.

ОК, я вынес Google Chrome ярлык на рабочий стол, запустил. И он спрашивает у меня время от времени пароль к KDE Wallet! supesifilous, так что ли по английски?

ОК, погуглив полчасика и не найдя быстрого решения проблемы – как привязать GoogleChrome к KDEWallet‘у так чтобы он не спрашивал каждый раз пароль, я нашел вроде верное решение:

Запускаем из-под себя KDE Wallet Manager:

$ kwalletmanager

Появляется окошко, там мы видим в списке Chrome Form Data, но ничего путного из этого не можем вывести. Рядом во вкладке Applications видим, что Google Chrome соединен с kwallet, и мы можем его отсоединить, после чего он при запуске опять спросит у нас пароль от KDE Wallet‘а.

Наша задача – наоборот, сделать так, чтобы он присоединялся автоматом, не спрашивая пароль. Мысля – найти конфиги текстовые где-то в недрах настроек KDE и подправить их, но по опыту знаю что копаться в настройках KDE можно часами, ничего путного не решив в итоге.

Итак, остаётся расчитывать на эту программу – помощник, хоть пока непонятно что делать.

Жмем Settings-Configure Wallet в верхнем меню, открывается ещё одно окошко.
В первой вкладке настройки оставляем по умолчанию – по идее там у нас не закрывается KDE Wallet, и хорошо – пусть работает, а вторая вкладка интересна – Access Control. Если попасть по маленькой галочке, в открывшемся списке по дефолту будет только одна программа – kwalletmanager с меткой Always Allow.

Ага, вот почему когда мы запустили kwalletmanager, она у нас пароль для доступа к кошельку не спросила. Теперь надо в этот список добавить Google Chrome! Но как? Щелчок правой кнопкой мыши ничего не даёт, никаких ссылок для добавления нового приложения сюда здесь нет! Что же делать? Искать текстовые конфиги и редактировать их? Времени мало. Жизнь так коротка.

И случайно я нашел выход – поставил галку напротив Prompt when an application accesses a wallet (хотя по идее мы не должны этого делать, зачем нам лишний раз утруждаться подтверждением?), нажать Apply, OK, закрыть KDE Wallet Manager.

Но! Мы правильно все сделали. Теперь при запуске Google Chrome KDE Wallet спросит у нас подтверждение по другому (не пароль!) – и надо выбрать кнопку Always Allow.

И после этого приложение Google Chrome попадает в Access ControlAlways Allow.

И больше,я надеюсь, не будет спрашивать у нас пароль для доступа к KDE Wallet (kwallet)!

ОК, всё, до связи, мне надо работать, а вам -пить чай с имбирем в сахаре и како с молоком.
Удачи!

P.S.
Хо-ох, и напоследок тема о конфигах KDE Wallet. Есть такой файлик, находится в ~/.kde/share/config/kwalletrc.

Ниже приведен листинг этого файла в моей текущей конфигурации. Думаю, там всё и так понятно.

atzar@beo-kubuntu:~$ cat ~/.kde/share/config/kwalletrc
[$Version]
update_info=kwallet-4.13.upd:kde4.13
 
[Auto Allow]
kdewallet=kwalletmanager,KDE Wallet Manager,KDE Daemon,Google Chrome
 
[Auto Deny]
kdewallet=
 
[Wallet]
Launch Manager=false
Prompt on Open=true
atzar@beo-kubuntu:~$

Спасибо челу с ссылки http://danielsmedegaardbuus.dk/2012-08-10/how-to-disable-kwallet-integration-in-google-chrome/, только он там почему-то засунул бедный Google Chrome в Auto Deny секцию. Зачем? Пусть пользуется KWallet‘ом, в этом случае даже при переустановке Chrome данные останутся в нашем секретном хранилище и смогут быть использованы вновь. Наверное. Я так думаю. Это же логично, разве нет?

До связи!

P.P.S или Уууууупс

Сегодня проснулся, запустил Кубунту и Хром – опять спросил пароль к KWallet‘у. Что за! Оказывается, мой KWallet не запущен со старта системы, а как его запустить написано здесь – https://www.dennogumi.org/2014/04/unlocking-kwallet-with-pam/
и для ArchLinux здесь – https://wiki.archlinux.org/index.php/KDE_Wallet#Unlock_KDE_Wallet_automatically_on_login

Но у меня не получалось, хотя я много времени убил на правку конфигов и перезапуска KDE.
В итоге вышло вот что:

KWallet autologin через PAM

Идея автозапуска KDEWallet через pam в том, чтобы подключить 2 строчки в нужный файлик в каталоге /etc/pam.d.

auth    optional        pam_kwallet.so
session optional        pam_kwallet.so auto_start

(должен быть установлен пакет pam-kwallet).

В KDE 4.14.1 для lightdm 1.12.1 возможно в трех файлах – lightdm, lightdm-autologin, lightdm-greeter, для kdm 4.11.12 – kdm, kdm-np.

Оказалась проблема в том, что при автологине KDE что в lightdm, что в kdm выдается такая ошибка в логе (/var/log/auth.log) –
KDM:

Jan 14 09:07:39 beo-kubuntu kdm: :0[1654]: pam_kwallet(kdm-np:auth): pam_sm_authenticate
Jan 14 09:07:39 beo-kubuntu kdm: :0[1654]: pam_kwallet(kdm-np:auth): pam_kwallet: Couldn't get password (it is empty)

LIGHTDM:

Jan 14 07:55:37 beo-kubuntu lightdm: pam_kwallet(lightdm-autologin:auth): pam_sm_authenticate
Jan 14 07:55:37 beo-kubuntu lightdm: pam_kwallet(lightdm-autologin:auth): pam_kwallet: Couldn't get password (it is empty)
Jan 14 07:55:37 beo-kubuntu lightdm: pam_kwallet(lightdm-autologin:auth): pam_kwallet: Prompt for password failed Conversation error

А если мы не используем автологин в KDE, то kwallet стартует нормально и не требует более пароль для проверенных приложений –
KDM:

Jan 14 08:34:16 beo-kubuntu kdm: :0[1843]: pam_kwallet(kdm:auth): pam_sm_authenticate
Jan 14 08:34:16 beo-kubuntu kdm: :0[1843]: pam_kwallet(kdm:setcred): pam_sm_setcred
Jan 14 08:34:16 beo-kubuntu kdm: :0[1843]: pam_kwallet(kdm:session): pam_sm_open_session
Jan 14 08:34:16 beo-kubuntu kdm: :0[1843]: pam_kwallet(kdm:session): pam-kwallet: final socket path: /tmp//atzar.socket

LIGHTDM:

Jan 14 09:13:33 beo-kubuntu lightdm: pam_kwallet(lightdm:setcred): pam_sm_setcred
Jan 14 09:13:33 beo-kubuntu lightdm: pam_kwallet(lightdm:session): pam_sm_open_session
Jan 14 09:13:33 beo-kubuntu lightdm: pam_kwallet(lightdm:session): pam-kwallet: final socket path: /tmp//atzar.socket

До свидания!