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

Я успешно использую apt-mirror для зеркалирования PPA.

http://manpg.es/apt-mirror

Просто добавьте такие строки, как:

deb http://ppa.launchpad.net/byobu/ppa/ubuntu precise main
deb-src http://ppa.launchpad.net/byobu/ppa/ubuntu precise main

И затем запустите sudo apt-mirror.

К /etc/apt/mirror.list.

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

1 ответ

Защита паролем смены обоев

В приведенном ниже скрипте предусмотрена мягкая защита паролем для изменения обоев в «домашних» ситуациях. Мягкий, потому что пароль хранится внутри скрипта в виде обычного текста. Тем не менее, это должно помешать обычным пользователям изменять обои.

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

Чтобы свести к минимуму риск, храните сценарий в неожиданном месте под неожиданным именем, и / или как скрытый файл.

Чтобы использовать его:

Скопируйте сценарий ниже в пустой файл, укажите пароль по своему выбору в разделе главы (я бы не стал выберите ваш пароль 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
ответ дан 24 May 2018 в 03:16
  • 1
    Почему бы не добавить скрипт, чтобы изменить владельца gsettings на root после загрузки и предоставить общий доступ к пользовательскому и корневому паролю. Ему не понадобится бесконечный цикл. – prakharsingh95 9 October 2014 в 00:06
  • 2
    @ prakharsingh95 Хотя я действительно пытался что-то вроде этого (но это не сработало), в общем, я предпочитаю сохранить существующую конфигурацию и разрешения нетронутыми. Я выбрал относительно простой скрипт, который можно было запустить и остановить на лету. Если вы можете сделать это, однако, это будет хороший дополнительный ответ на этот вопрос. – Jacob Vlijm 9 October 2014 в 00:20

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

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