Como "bloquear" configurações de todo o sistema com 'dconf'

1

Eu quero "bloquear" uma combinação específica de chave / valor em dconf , para que apenas superusuários possam modificar essa configuração específica. Para conseguir isso, é necessário adicionar um "bloqueio" ao banco de dados do sistema, para que nenhuma chave / valor equivalente listado em um banco de dados de ordem superior (no perfil dconf ) possa ter precedência.

Para uma explicação detalhada do conceito de um perfil dconf e os 'arquivos chave' relacionados, consulte os Administradores do Sistema Gnome Wiki .

Do Wiki de administração do sistema:

Lockdown is supported by creating a 'locks' subdirectory in the key file directory (ie: /etc/dconf/db/local.d/locks). The files contained in this directory contain a list of keys to lock, one per line.

Meu diretório do arquivo-chave é exibido como "ibus.d", em oposição a "local.d" fornecido no exemplo:

:/etc/dconf/db/ibus.d$

Ao verificar o dconf profile /etc/dconf/profile/ibus , isso parece correto:

Conteúdo do arquivo 'ibus': user-db:user \ system-db:ibus

De acordo com o Wiki :

  1. Crie um arquivo de chave apropriado:

    ==> /etc/dconf/db/ibus.d/00-media-handling ==<

    [org/gnome/desktop/media-handling]

    automount=false

  2. Crie um subdiretório de "bloqueios" e adicione um arquivo apropriado:

    ==> /etc/dconf/db/ibus.d/locks/00_media-handling-lock ==<

    /org/gnome/desktop/media-handling/automount

No meu caso, configurei e bloqueei a automount key, para o org.gnome.desktop.media-handling schema, como 'false'.

Finalmente, execute sudo dconf update . Para uma boa medida, também reinicio a máquina.

O comportamento esperado, ao anexar uma unidade USB, seria o dispositivo não ser montado automaticamente. Isso, no entanto, não é o caso. Se eu conectar uma unidade USB e executar df :

/dev/sdb1 983344 192 983152 1% /media/user/xxxx-xxxx

Supondo que eu seja culpado; Eu comecei a partir do zero várias vezes, cada vez seguindo as instruções (idênticas) de fontes variadas, incluindo exemplos dados neste site; exemplo um e dois . Cada vez sem sucesso. Por favor, você poderia gentilmente esclarecer onde eu poderia estar dando errado? (Ubuntu 16.04)

    
por Andrew Hardiman 19.05.2018 / 21:23

1 resposta

0

O arquivo de perfil deve ser / etc / dconf / profile / user

Do man 7 dconf:

On startup, dconf consults the DCONF_PROFILE environment variable.
If set, dconf will attempt to open the named profile, aborting if that fails.
If the environment variable is not set, it will attempt to open the profile named "user"
and if that fails, it will fall back to an internal hard-wired configuration.

Eu adicionei esse arquivo:

cat /etc/dconf/profile/user
user-db:user
system-db:local

Então eu coloquei meu arquivo de bloqueio em /etc/dconf/db/local.d/lock

E finalmente eu corro o update do dconf

Eu tive que sair e fazer o login novamente enquanto eu estava usando a configuração com fio. Agora funciona.

    
por Eduardo Villanueva Che 28.06.2018 / 16:45