Newsgroup: it.comp.os.linux.ubuntu
Titolo: sudo e gconftool-2 che sudata! - Utilizzare gconftool-2 per configurare un utente diverso.

Problema (con soluzione inclusa. Se a qualcuno interessa vedere ultime 
righe del post)
IL PROBLEMA:
	Utilizzare gconftool-2 per configurare un utente diverso.
	Dato uno script che parte con utente root
	" sudo ./mioscript.sh " si vuole modificare la disposizione
	dei pulsanti "minimizza" , "ingrandisci" e "chiudi"
	delle finestre per l'utente "MIOUTENTE".
Sembra facile 1 minuto su google e trovate il comando:
gconftool-2 --set /apps/metacity/general/button_layout --type=string 
:minimize,maximize,close
Peccato che questo comando funzioni per l'utente da cui viene lanciato.
All'interno di uno script lanciato in "sudo" cambierà un ipotetico 
desktop dell'utente root e non di "MIOUTENTE"
Peccato anche, che se esiste un modo --verbose=9 di lanciarlo, io non lo 
abbia trovato.
Per simulare il problema da un terminale scrivete
sudo bash  ---> e mettete la password
Il terminale entrera in root e qua potete sperimentare che i comandi non 
agiscono più sull'utente MIOUTENTE.
Infatti digitando alternativamente i comandi
gconftool-2 --set /apps/metacity/general/button_layout --type=string 
:minimize,maximize,close
gconftool-2 --set /apps/metacity/general/button_layout --type=string 
:close,maximize,minimize
Non vedrete più i pulsanti spostarsi
TENTATIVI DI RISOLUZIONE.
La mia prima idea è stata di lanciare il comando gconftool-2 con "sudo"
non ci sono riuscito subito... ma dopo diversi tentativi o trovato 
qualcosa che sembra funzionare, purtroppo in sola lettura.
su MIOUTENTE -c 'gconftool-2 --get /apps/metacity/general/button_layout'
è in grado di leggere la configurazione che scrivo da un altro 
terminale. Infatti se con un terminale "MIOUTENTE" cambio la 
disposizione dei pulsanti il comando precedente la legge.
Purtroppo LEGGE ma non SCRIVE!!! il comando per cambiarli:
su MIOUTENTE -c 'gconftool-2 --set /apps/metacity/general/button_layout 
--type=string :close,maximize,minimize'
(con varie disposizioni dei bottoni) non viene considerato.
E soprattutto << inserire qua sfilza di bestemmie >> non restituisce 
nessun messaggio di errore che faccia capire il problema!!!!!
Dopo aver letto il man di gconftool-2 individuo una parolina magica
--config-source=SOURCE
bene penso ecco la soluzione.
Primo tentativo:
sudo -u MIOUTENTE gconftool-2 --config-source "/home/MIOUTENTE/.gconf" 
--set /apps/metacity/general/button_layout --type=string :maximize
Riporta il seguente messaggio di errore:
Accesso alla sorgente (o sorgenti) di configurazione non riuscito: 
Impossibile risolvere l'indirizzo della sorgente di configurazione: 
Impossibile risolvere l'indirizzo della sorgente di configurazione: 
Indirizzo "/home/MIOUTENTE/.gconf" errato
??? Cosa vuole come SOURCE. San Google aiutami tu!!!
Secondo tentativo:
sudo -u MIOUTENTE gconftool-2 --config-source 
"xml::/home/MIOUTENTE/.gconf" --set /apps/metacity/general/button_layout 
--type=string :minimize,maximize,close
Bello nessun errore ma non mi considera... Una rapida verifica mi 
dimostra che anche questo funziona in sola lettura con l'opzione --get 
funziona correttamente.
infatti:
sudo -u MIOUTENTE gconftool-2 --config-source 
"xml::/home/MIOUTENTE/.gconf" --get /apps/metacity/general/button_layout
mi legge le impostazioni che modifico dal terminale con utente 
"MIOUTENTE" ma ancora non riesco a modificarle.
SOLUZIONE:
Finalmente in una pagina sperduta di google trovo la soluzione!!!!
nella parolina chiave "readwrite". Detta cosi sembra facile ma se 
SOURCE non è documentato nel man non è più poi così semplice e intuitiva.
Comunque, rullo di tamburi, la soluzione è:
sudo -u MIOUTENTE gconftool-2 --config-source 
"xml:readwrite:/home/MIOUTENTE/.gconf" --set 
/apps/metacity/general/button_layout --type=string :minimize,close,maximize
In questo modo si riesce ad utilizzarlo in uno script lanciato con sudo 
che cambi le impostazioni per tutti gli utenti

sudo bash  ---> e mettete la password
È più semplice fare 'sudo -i'

 È più semplice fare 'sudo -i'
Io intendo usarlo su uno scrip con permessi di root
ho simulato la situazione dello script lanciando
digitando in un terminale sudo bash (da li in poi vicino al prompt ho 
scritto root)
Sudo -i o -c per cercare di preservare gli enviroment li avevo fatti ma 
non ho trovato la combinazione giusta... e comunque
Il tuo suggerimento nel caso particolare non funziona
su --login MIOUTENTE --command "gconftool-2 --set 
/apps/metacity/general/button_layout --type=string :close,minimize,minimize"
Deve certamente essere un problema di enviroment, da qualche parte non 
si riporta il settaggio che abilita la scrittura
Per verificare che non ci sia un errore di fondo Provo l'equivalente in 
lettura
su --login bc --command "gconftool-2 --get 
/apps/metacity/general/button_layout"
Funziona riportandomi correttamente il settaggio dei pulsanti!
Nota: Il mio problema è risolto, però se hai un suggerimento funzionante 
che non necessiti di --config-source=SOURCE
sono curioso di provarlo.

sono curioso di provarlo.
No, mi spiace :(