Пароль защищает изменяющиеся обои

Для предотвращения кого-то (кроме меня) от изменения моего образования, как я могу сделать обои, изменяющие действие, требующее пароля?

1
задан 8 October 2014 в 01:21

2 ответа

Это оказалось хорошей проблемой. Попробуйте,

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

, Когда gedit подходит на второй инструкции, добавьте:

#!/bin/bash
if [ "$1" == "set" ] && [ "$2" == "org.gnome.desktop.background" ] && [ "$3" == "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 $4
    else
        zenity --notification --text="Wrong password. Come again another day"
    fi
else
    $(gsettings2 $@)
fi

Для отмены

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

можно перейти к этому md5 генератор , поместить строку и замену a799d7cf3d9ca647f1320fc6bfaf7408 с тем, что Вы любите. Испытайте открытие для себя, что это соответствует. Вы поймете, насколько безопасный это.

, Даже если кто-то просматривает этот файл без Вашего пароля, они не могут изменить его (Это подобно тому, как Linux хранит Ваши пароли: P).

1
ответ дан 10 November 2019 в 09:22

Пароль защищает изменяющиеся обои

, сценарий ниже обеспечивает умеренную защиту паролем для изменения обоев в "домашних" ситуациях. Умеренный, потому что пароль хранится в сценарии в простом тексте. Тем не менее, это должно препятствовать тому, чтобы средние пользователи изменили обои.

то, Что это делает, - то, что, когда пользователь изменяет обои, это сразу возвращается, и пользователю предлагают пароль. Если пароль корректен, изменения обоев в недавно набор один, иначе ничего не происходит.

enter image description here

Для уменьшения риска сохраните сценарий в неожиданном месте под неожиданным именем и / или как скрытый файл.

Для использования его:

Копия сценарий ниже в пустой файл, набор пароль по Вашему выбору в главном разделе (я не выбрал бы Ваш sudo пароль из соображений безопасности, так как это находится в простом тексте!) и сохраняют его как name.py, выполняют его командой:

python3 /path/to/name.py

сценарий:

#!/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)
<час>

отправленный на gist.gisthub

2
ответ дан 10 November 2019 в 09:22

Другие вопросы по тегам:

Похожие вопросы: