Так, я пытался создать флеш-карту для своей машины.
Я использовал Usb PAM, как описано во многих местах по Интернету (например, этот, который является в основном copypasted везде). Я понимаю то, что происходит там, и это круто.
Моя проблема - если я блокирую экран (с кнопкой, включая USB прочь или с gnome-screensaver-command -l
), затем gnome-screensaver-command -d
не возвратит меня моему рабочему столу, а скорее будит монитор. Я все еще должен обеспечить пароль - и я не хочу это, когда я включаю карту с интерфейсом USB.
Я не хочу выключать подсказку пароля в, разблокировали. Я хочу свой компьютер, свободно доступный в любой данный момент, когда карта с интерфейсом USB включается и доступна с паролем в другом случае.
Так, вопрос: как я разблокировал экранную заставку гнома с командной строкой?
PS. Забавная вещь: если я использую флеш-карту, то я не должен обеспечивать пароль при входе в систему. С другой стороны, на разблокировали его, необходим. Я понимаю, почему это происходит, но тем не менее, это выглядит странным.
== РЕДАКТИРОВАНИЕ ==
Я забыл: я использую плоскость (значение Основанного на единице) Ubuntu 15.04. Никакие связанные с экранной заставкой модификации не были сделаны.
Ubuntu 14.04 + больше не использует экранную заставку гнома, вот почему gnome-screensaver-command -d
может не работать (вероятно, я не уверен, но Ubuntu заменила старую экранную заставку гнома чем-то новым, и та команда в настоящее время не работает). Можно заблокировать и разблокировать использующий компьютеры dbus.
Блокировка:
dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock
Разблокируйте:
dbus-send --session --dest=org.gnome.ScreenSaver --type=method_call --print-reply --reply-timeout=20000 /org/gnome/ScreenSaver org.gnome.ScreenSaver.SetActive boolean:false
Это должно разблокировать, не прося пароль.
В 15,04 экран блокировки реализован в единице.
кажется, что libpam_usb явно не связан с libpam, поскольку это (ложно) ожидает, что программа с помощью него имеет libpam, уже загруженный. Дело обстоит так для большинства программ (т.е. sudo, lightdm и т.д.), но не для compiz. Изменение в make-файле libpam-usb и перекомпиляции требуется, чтобы фиксировать его.
, Хотя как обходное решение можно отредактировать /usr/share/applications/compiz.desktop
и замена
Exec=compiz
с
Exec=/bin/sh -c "LD_PRELOAD=libpam.so compiz"