Senha protege a mudança do papel de parede

1

Para impedir que alguém (além de mim) mude meu histórico, como posso fazer o papel de parede alterando uma ação que exige uma senha?

    
por rajlego 30.09.2014 / 03:17

2 respostas

1

Isso acabou sendo um bom desafio. Experimente,

$ sudo mv /usr/bin/gsettings /usr/bin/gsettings2
$ sudo gedit /usr/bin/gsettings
$ sudo chmod +x /usr/bin/gsettings

Quando o gedit aparece na segunda instrução, adicione:

#!/bin/bash
if [ "" == "set" ] && [ "" == "org.gnome.desktop.background" ] && [ "" == "picture-uri" ]; then
    a=$(zenity --entry="Password")
    h1=$(/bin/echo $a | /usr/bin/md5sum | /bin/cut -f1 -d" ")
    h2='a799d7cf3d9ca647f1320fc6bfaf7408' #Password hash
    if [ "$h1" == "$h2" ]; then
    gsettings2 set org.gnome.desktop.background picture-uri 
    else
        zenity --notification --text="Wrong password. Come again another day"
    fi
else
    $(gsettings2 $@)
fi

Para desfazer

$ sudo rm /usr/bin/gsettings
$ sudo mv /usr/bin/gsettings2 /usr/bin/gsettings

Você pode ir para este gerador md5 , colocar sua string e substituir a799d7cf3d9ca647f1320fc6bfaf7408 com o que quiser. Tente descobrir por si mesmo o que isso corresponde. Você vai perceber o quão seguro isso é.

Mesmo se alguém visualizar este arquivo, sem sua senha, ele não poderá alterá-lo (isso é semelhante a como o Linux armazena suas senhas: P).

    
por ps95 08.10.2014 / 21:42
2

Proteger com senha o papel de parede em mudança

O script abaixo fornece uma proteção moderada por senha para alterar o papel de parede em situações "domésticas". Suave porque a senha é armazenada dentro do script em texto simples. No entanto, deve impedir que os usuários médios alterem o papel de parede.

O que acontece é que, quando um usuário altera o papel de parede, ele volta imediatamente, e o usuário é solicitado a fornecer uma senha. Se a senha estiver correta, o papel de parede mudará para o recém-definido, caso contrário, nada acontecerá.

Para minimizar o risco, armazene o script em um local inesperado com um nome inesperado e / ou como um arquivo oculto.

Para usá-lo:

Copie o script abaixo em um arquivo vazio, defina uma senha de sua escolha na seção head (eu não escolheria sua senha sudo por razões de segurança, já que ela está em texto simples!) e salve-a como name.py , execute-o pelo comando:

python3 /path/to/name.py

O script:

#!/usr/bin/env python3

import time
import subprocess

set_password = "monkey"

key = "org.gnome.desktop.background picture-uri "
read = "gsettings get "+key; change = "gsettings set "+key
set_wallpaper = subprocess.check_output(["/bin/bash", "-c", read]).decode("utf-8").strip()
pass_window ='zenity --entry --entry-text="Enter password" --text="Enter password" --title="password" --hide-text'

def check_wall():
    global set_wallpaper
    curr_wallpaper = subprocess.check_output(["/bin/bash", "-c", read]).decode("utf-8").strip()
    if curr_wallpaper != set_wallpaper:
        subprocess.Popen(["/bin/bash", "-c", change+set_wallpaper])
        try:
            entered_password = subprocess.check_output(
                ["/bin/bash", "-c", pass_window]).decode("utf-8").strip()
        except Exception:
            entered_password = None
        if entered_password == set_password:
            subprocess.Popen(["/bin/bash", "-c", change+curr_wallpaper])
            set_wallpaper = curr_wallpaper
    else:
        pass

while True:
    check_wall()
    time.sleep(3)

publicado em gist.gisthub

    
por Jacob Vlijm 08.10.2014 / 10:08