Como posso bloquear os usuários de alterar o papel de parede (em Unity no Ubuntu 12 e 14)?

0

Não consigo encontrar uma maneira de impedir que os usuários alterem meu papel de parede institucional.
Eu tenho alguns PCs rodando o Ubuntu 12.04 usando o Unity e outros rodando o Ubuntu 14.04 usando o Unity. Eu preciso de algum tipo de ajuste / comando / solução que bloqueie a opção de alterar o papel de parede de qualquer maneira possível.

Por favor, não me responda com soluções no GNOME. Estes dois não funcionam para mim:
 - Como restringir os usuários a mudar seus papéis de parede?
 - Tendo problemas para impedir que os usuários alterem o papel de parede / configurações

    
por Andrè Paul Benoit 22.09.2014 / 21:16

1 resposta

1

Embora a sugestão abaixo esteja longe de ser "à prova d'água", ela oferece pelo menos algumas precauções de "primeira linha" contra a mudança do papel de parede com muita facilidade.

Você pode fazer um pequeno script para ser executado em segundo plano que verifica cada x segundos se o papel de parede atual ainda for o papel de parede que você definiu.

  • O comando para ver ( obter ) qual é o papel de parede atual:

    gsettings get org.gnome.desktop.background picture-uri
    

    Se você executar isso em um terminal, você receberá uma saída parecida com:

    'file:///home/jacob/Thema/Bureaublad4/Frog.jpg'
    

Podemos fazer o script restaurar o papel de parede original, caso tenha mudado.

  • Para definir um papel de parede específico, o comando é:

    gsettings set org.gnome.desktop.background picture-uri 'file:///home/jacob/Thema/Bureaublad4/Frog.jpg'
    

Se usarmos esses dois em um script python, poderemos obter o seguinte (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)

A única diferença para 12.04 é o shebang: 12.04 não vem com python3 por padrão, então o shebang deve ser:

#!/usr/bin/env python

Como usar

  • copie o script em um arquivo vazio. Altere a linha de papel de parede (após set_wallpaper = ) para o caminho para a imagem do papel de parede (começando com file:// , como no exemplo). Salve como something.py .

  • execute-o pelo comando:

    python3 /path/to/something.py
    

    ou (12,04)

    python /path/to/something.py
    

Se tudo funcionar como você deseja, adicione-o aos seus aplicativos de inicialização: Dash > "Aplicativos de inicialização" > "Adicionar"

    
por Jacob Vlijm 23.09.2014 / 22:35