Как я могу заблокировать пользователей от смены обоев (в Unity в Ubuntu 12 и 14)?
Я не могу найти способ заблокировать пользователей от смены моих установленных обоев.
У меня есть несколько компьютеров под управлением Ubuntu 12.04 с использованием Unity, а другие работают под управлением Ubuntu 14.04 с использованием Unity.
Мне нужен какой-то твик / команда / решение, которое блокирует возможность смены обоев любым возможным способом.
Пожалуйста, не отвечайте мне с решениями под GNOME. Эти два не работают для меня:
- Как ограничить пользователей при смене обоев?
- Проблемы с тем, чтобы пользователи не могли менять обои / настройки
1 ответ
Хотя приведенное ниже предложение далеко не "водонепроницаемо", оно предлагает по крайней мере некоторые меры предосторожности "первой линии" против слишком простой смены обоев.
Вы можете сделать небольшой скрипт для запуска в фоновом режиме, который проверяет каждые x секунд, являются ли текущие обои все еще теми, которые вы установили в первую очередь.
Команда, чтобы увидеть (получить), что является текущими обоями:
gsettings get org.gnome.desktop.background picture-uri
Если вы запустите это в терминале, вы получите вывод, похожий на:
'file:///home/jacob/Thema/Bureaublad4/Frog.jpg'
Мы можем заставить скрипт восстановить исходные обои, если они изменились.
Чтобы установить конкретные обои, команда:
gsettings set org.gnome.desktop.background picture-uri 'file:///home/jacob/Thema/Bureaublad4/Frog.jpg'
Если мы используем эти два в скрипте Python, мы можем получить следующее (python3, 14.04):
#!/usr/bin/env python3
import time
import subprocess
set_wallpaper = "file:///home/jacob/Thema/Bureaublad4/Frog.jpg"
cmd2 = "gsettings set org.gnome.desktop.background picture-uri "+set_wallpaper
cmd1 = "gsettings get org.gnome.desktop.background picture-uri"
def check_wall():
curr_wallpaper = subprocess.check_output(["/bin/bash", "-c", cmd1]).decode("utf-8").strip()
if curr_wallpaper == "'"+set_wallpaper+"'":
pass
else:
subprocess.Popen(["/bin/bash", "-c", cmd2])
while True:
check_wall()
time.sleep(10)
Единственное отличие для 12.04 - это shebang: 12.04 не поставляется с python3 по умолчанию, поэтому shebang должен быть:
#!/usr/bin/env python
Как пользоваться
скопируйте скрипт в пустой файл. Поменяйте линию обоев (после
set_wallpaper =
) в путь к изображению ваших обоев (начиная сfile://
как в примере). Сохранить какsomething.py
,запустите его командой:
python3 /path/to/something.py
или (12.04)
python /path/to/something.py
Если все работает, как вы хотите, добавьте его в свои приложения запуска: Dash > "Автозагрузка приложений" > "Добавить"