J'utilise volontiers blueproximity dans 13.10, mais depuis la mise à niveau à 14.04, il ne se verrouille que lorsque mon téléphone est hors de portée (avec gnome-screensaver-command -l
), mais il ne se déverrouille pas avec gnome-screensaver-command -d
.
Maintenant, la raison pour laquelle gnome-screensaver-command -d
ne fonctionne pas est due à un bug .
Cependant, dans ce rapport de bogue, il est mentionné que le gnome-screensaver n'est plus utilisé dans trusty et que le gnome-screensaver-command
devrait donc être supprimé, ce qui pourrait également expliquer la raison pour laquelle la commande ne fonctionne pas.
Ma question est donc la suivante: si l’économiseur d’écran gnome est remplacé, quelle sera la nouvelle commande permettant de déverrouiller l’écran sans s’appuyer sur gnome-screensaver-command
?
Cela a fonctionné pour moi:
Sur la ligne de commande:
gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true
Le clavier à l'écran apparaît lorsque vous vous connectez pour la première fois, mais vous pouvez le fermer.
Après cela gnome-screensaver-command -d
fonctionne.
Tiré de benshayden le https://bugs.launchpad.net/ubuntu/+source/gnome-screensaver/+bug/130716
Il n'y a aucun moyen de le faire malheureusement :(
Mise à jour - J'ai trouvé un moyen. Regarde mes nouvelle réponse
Ceci est ma solution précédente - Il est déconseillé de l'utiliser, il n'est pas déverrouillable si vous perdez votre téléphone; vous devez redémarrer pour le déverrouiller
J'ai finalement trouvé une solution: ne la verrouillez pas en premier lieu. Cela peut sembler étrange - ours avec.
Au lieu de le verrouiller, j'ai désactivé la souris et le clavier, masqué toutes les icônes du bureau, puis basculé sur le bureau. Vous pouvez éventuellement cacher plus de choses (comme le lanceur) mais je l'ai caché quand même.
Cette commande nécessite un peu de configuration.
Installer: xdotool - Sudo apt-get install xdotool
Entrez: xinput --list
et notez vos identifiants de souris et de clavier.
Je suggère de modifier ces commandes dans gedit
Celui-ci fait office de casier.
xinput set-prop <Keyboard ID> 'Device Enabled' 0 && xinput set-prop <Mouse ID> 'Device Enabled' 0 && gsettings set org.gnome.desktop.background show-desktop-icons false && wmctrl -k on
Cela agit comme le déverrouillage.
xinput set-prop <Keyboard ID> 'Device Enabled' 1 && xinput set-prop <Mouse ID> 'Device Enabled' 1 && gsettings set org.gnome.desktop.background show-desktop-icons true && wmctrl -k off
Changez les et en leurs numéros respectifs, dans les deux commandes.
Pour cela:
Une chose importante à garder à l'esprit - cela ne peut pas être annulé sans votre appareil Bluetooth. Si pour une raison quelconque il échoue, vous devez redémarrer. Pour cette raison, il peut être conseillé de laisser le clavier activé et de configurer la commande de déverrouillage sur le raccourci choisi.
Donc, je me suis dit que le "meilleur" moyen de faire cela (apocryphe, étant donné que nous stockons toujours un mot de passe et simulant de le taper dans une chose) serait, comme je l'ai dit plus haut, de chiffrer le mot de passe to la clé USB d'entrée. C'est un peu le désordre d'un script, alors je vais vous expliquer ce qui se passe.
Les périphériques de l'utilisateur actuel sont énumérés en consultant le fichier /etc/pamusb.conf avec xpath; chacun d'eux est ensuite associé à son UUID à l'aide de xpath et l'UUID est mappé à un périphérique à l'aide de blkid.
Vous avez le choix de verrouiller, de déverrouiller ou de configurer votre clé. Lorsque vous exécutez le programme d’installation, il créera ~/.ssh/pamusb_rsa s’il n’existe pas. Il vous sera ensuite demandé de choisir un périphérique (ou non, s'il n'y en a qu'un) et de saisir votre mot de passe. Votre PW sera stocké et crypté dans {device} /. Pamusb/.auth.
Lorsque vous exécutez unlock, les périphériques sont à nouveau énumérés et vérifiés un par un pour un fichier /.pamusb/.auth. Une fois repéré, le décryptage sera tenté et, en cas de succès, il sera utilisé pour taper votre mot de passe dans le texte acceptant le texte en ce moment. Cela va seulement permettre l'exécution lorsque la session est verrouillée, donc j'espère que cela ne vous exposera pas trop mal.
J'ai nommé ceci ~/.bin/Unity-lock-control (~/.bin est sur mon chemin), et j'ai "Unity-lock-control lock" et "Unity-lock-control unlock" comme mes agents dans pam.conf. .
#!/bin/bash
PAM_KEY=${HOME}/.ssh/pamusb_rsa
devices() {
local NAMES NAME UUID DEV
NAMES=$(xmllint /etc/pamusb.conf --xpath '//user[@id="'$USER'"]/device')
NAMES=${NAMES//"<device>"/""}
NAMES=${NAMES//'</device>'/' '}
for NAME in $NAMES; do
UUID=$(xmllint /etc/pamusb.conf --xpath '//device[@id="'$NAME'"]/volume_uuid/text()')
DEV=$(blkid -U $UUID)
if [[ -n $DEV ]]; then
echo ${NAME}:${UUID}:${DEV}
fi
done
}
locked() {
LS=$(ps -A -o cmd | grep 'unity-panel-service --lockscreen-mode' | grep -v grep)
if [[ -z $LS ]]; then
return -1
else
return 0
fi
}
mounted() {
MOUNTED=$(grep $1 /proc/mounts)
if [[ -z $MOUNTED ]]; then
return -1
fi
return 0
}
mount_point() {
cat /proc/mounts | grep $1 | cut -d \ -f 2
}
case "$1" in
devices)
devices
exit 0
;;
lock)
setsid paplay /usr/share/sounds/ubuntu/stereo/service-logout.ogg &
setsid gnome-screensaver-command -l &
sleep 1
exit
;;
unlock)
if ! locked; then
echo "Screen is not locked" >&2
exit 1
fi
if [[ ! -f $PAM_KEY ]]; then
echo "${PAM_KEY} does not exist; please run $0 setup." >&2
exit 1
fi
DEVICES=$(devices)
for device in $DEVICES; do
NAME=$(echo $device | cut -d : -f 1)
UUID=$(echo $device | cut -d : -f 2)
DEV=$(echo $device | cut -d : -f 3)
mounted $DEV
MOUNTED=$?
if [[ $MOUNTED -ne 0 ]]; then
udisksctl mount -b $DEV
fi
AUTH_FILE=$(mount_point $DEV)/.pamusb/.auth
if [[ -f $AUTH_FILE ]]; then
PASS=$(openssl rsautl -decrypt -inkey $PAM_KEY -in $AUTH_FILE)
fi
if [[ $MOUNTED -ne 0 ]]; then
udisksctl unmount -b $DEV
fi
if [[ -n $PASS ]]; then
xdotool type --delay 0 "${PASS}"
xdotool key Return
sleep 1
if locked; then
setsid paplay /usr/share/sounds/ubuntu/stereo/service-login.ogg &
else
setsid paplay /usr/share/sounds/ubuntu/stereo/dialog-warning.ogg &
fi
exit 0
fi
done
echo "Did not find unlock key" >&2
exit 1
;;
setup)
echo "This will set up an OpenSSL key, and encrypt your password to be stored"
echo "on a pamusb authenticator."
echo "-----"
if [[ ! -d ${HOME}/.ecryptfs || ! -d ${HOME}/.Private ]]; then
echo "Warning: Home folder is NOT encrypted" >&2
read -p "Continue (y/N):" conf
if [[ -z $conf ]]; then exit 1; fi
if [[ $conf == "n" || $conf == "N" ]]; then exit 1; fi
fi
mkdir -p $(dirname $PAM_KEY)
if [[ ! -f $PAM_KEY ]]; then
openssl genrsa -out $PAM_KEY 1024
fi
DEVICES=$(devices)
if [[ "${#DEVICES[@]}" -eq 1 ]]; then
device="${DEVICES[0]}"
else
echo "Please select the device you would like to contain your encrypted password"
for i in "${!DEVICES[@]}"; do
echo "$i: ${DEVICES[$i]}"
done
read selection
device="${DEVICES[$selection]}"
fi
NAME=$(echo $device | cut -d : -f 1)
UUID=$(echo $device | cut -d : -f 2)
DEV=$(echo $device | cut -d : -f 3)
mounted $DEV
MOUNTED=$?
if [[ $MOUNTED -ne 0 ]]; then
echo "${NAME} is not mounted; attempting mount"
udisksctl mount -b $DEV
fi
AUTH_FILE=$(mount_point $DEV)/.pamusb/.auth
if [[ -f $AUTH_FILE ]]; then
echo "Storing encrypted password to ${DEVICES[0]}"
read -sp "Please enter your UNIX password:" PASS
echo ""
echo $PASS | openssl rsautl -encrypt -inkey $PAM_KEY -out $AUTH_FILE
fi
if [[ $MOUNTED -ne 0 ]]; then
echo "${NAME} was not mounted; unmounting"
udisksctl unmount -b $DEV
fi
exit 0
;;
*)
echo "Control for lock screen"
echo $0 '{start|stop|devices|setup}'
exit 1
;;
esac
Mettre à jour! Il existe un moyen d'utiliser l'écran de verrouillage normal! Yay!
Je ne sais pas dans quelle mesure il est sécurisé (stockage de votre mot de passe en texte clair), mais je pense que c'est le meilleur possible.
Voici la commande de verrouillage: gnome-screensaver -d
Il y a 2 commandes de déverrouillage:
No1:
C'est la 1ère commande de déverrouillage:
gnome-screensaver -d && xdotool type mypassword12 && xdotool key Return
Le déclic est de le réveiller (il faut cliquer à l'intérieur de la zone de connexion, à cause du déplacement de la souris) et afficher le nouvel écran de verrouillage Nice, au lieu de l'écran noir "en sommeil".
Ensuite, il saisit mypassword123!
avec une entrée pour l'envoyer dans la zone de texte.
Important. Pour une raison quelconque - probablement à cause de l'utilisation de xdotool (raccourcis clavier) - vous ne pouvez pas entrer de lettres doubles. Pour résoudre ce problème, divisez-le en 2 commandes à chaque lettre double (comme ci-dessus). De plus, les nombres doivent avoir leur propre commande, distincte des lettres (également ci-dessus). Enfin, les modificateurs (tels que shift) nécessitent un filtre séparé, tout comme la touche Retour.
No2:
Ceci est le deuxième. C'est un peu mieux et moins hackish, mais nécessite beaucoup de mise en place.
Première installation actionaz:
Sudo apt-get install actionaz
Ouvrez un nouveau script et faites glisser les éléments appropriés dans votre flux. (vous pouvez télécharger celui qui est complété ici . Si vous avez choisi de le télécharger, ouvrez-le, double-cliquez sur Écrire le texte - Mot de passe ici, puis entrez votre mot de passe).
165:555
dans la zone Position. (En fonction du côté de l'écran, cela peut être différent. Assurez-vous que vous cliquez dans la zone de mot de passe, sinon cela ne fonctionnera pas).Enregistrez-le dans votre dossier personnel sous unlock.ascr (ou n’importe quel nom - je ne voulais tout simplement pas annoncer qu’il contenait mon mot de passe)
Configurez votre commande de proximité comme suit:
xdotool mousemove 0 0 && actionaz unlock.ascr -ex
Le mouvement de la souris le réveille et les options lui indiquent d’exécuter le script, puis de quitter à la fin.
Si vous perdez votre appareil, vous pouvez toujours taper votre mot de passe pour qu'il soit réversible.