27 may 2014

Establecer ajustes predeterminados y bloquear ajustes en GNOME3

En Debian Squeeze teníamos GNOME2 y utilizábamos gconf para definir ajustes predeterminados para todos los usuarios y bloquear aquellos que no queríamos que el usuario pudiera modificar.

Debian Wheezy trae instalado GNOME3 y éste utiliza dconf para estos fines.

Y como cambiamos de sistema, del mismo modo, cambiamos de herramientas. Por ejemplo:
  • Si en GNOME2 utilizábamos gconftool-2 para realizar ajustes desde el terminal, en GNOME3 utilizamos una nueva herramienta: gsettings.
  • Del mismo modo, si en GNOME2 usábamos gconf-editor para realizar ajustes desde el entorno gráfico, en GNOME3 usamos la herramienta: dconf-editor.
Como lo que me interesa en este caso es establecer ajustes para todos los usuarios de forma predeterminada a nivel de máquina, nos vamos a centrar en dos cosas:
  • Cómo establecer ajustes predeterminados.
  • Cómo bloquear determinados ajustes.
Primero.- Creamos un directorio /etc/dconf/ donde guardaremos los ajustes:
# mkdir /etc/dconf
Dentro de este directorio crearemos otros dos:
# mkdir /etc/dconf/profile
# mkdir /etc/dconf/db
Dentro del directorio /etc/dconf/profile, crearemos un fichero de perfil: user
# nano /etc/dconf/profile/user
user-db:user
system-db:local
Cada línea del fichero de perfil /etc/dconf/profile/user especifica una base de datos dconf. La primera línea indica la base de datos usada para guardar los cambios y el resto de líneas indican bases de datos de sólo lectura.

Una línea "system-db" especifica una base de datos de sistema. Estas bases de datos se encuentran almacenadas en /etc/dconf/db. Como a la base de datos de sistema la hemos llamado local, dentro del directorio /etc/dconf/db crearemos un nuevo directorio al que llamaremos local.d:
# mkdir /etc/dconf/db/local.d
Bien, pues con ésto, ya tenemos preparada la infraestructura.

Segundo.- Una vez creada la estructura de carpetas, establecer ajustes predeterminados es muy sencillo porque tan sólo tendremos que crear ficheros con ajustes dentro del directorio /etc/dconf/db/local.d/. Veamos un ejemplo que he usado en la realidad:

Supongamos que los portátiles se suspenden al cerrar la tapa, tanto cuando están conectados a la corriente como cuando están alimentados sólo con la batería y quiero cambiar este comportamiento para que no se suspendan en ningún caso.

Sé que existe una clave para controlar el comportamiento cuando se cierra la pantalla y el portátil está conectado a la corriente: lid-close-ac-action. Y otra para controlar el comportamiento cuando se cierra la pantalla y el portátil no está conectado a la corriente: lid-close-battery-action.

Podéis comprobar que ambas claves tienen 'suspend' como valor por defecto con gsettings:
# gsettings get org.gnome.settings-daemon.plugins.power lid-close-ac-action
'suspend'
# gsettings get org.gnome.settings-daemon.plugins.power lid-close-battery-action
'suspend'
Para conseguir que los portátiles no se suspendan al cerrar la tapa, cambiaremos el valor 'suspend' por 'blank'.  Esto lo lograremos creando un fichero al que llamaré 00-power dentro del directorio /etc/dconf/db/local.d/ con el siguiente contenido:
[org/gnome/settings-daemon/plugins/power]
lid-close-ac-action='blank'
lid-close-battery-action='blank'
Una vez creado el fichero /etc/dconf/db/local.d/00-power, ejecutamos en un terminal:
# dconf update
Y ya tendremos configurados los ajustes por defecto para todos los usuarios.

Tercero.- Ahora que ya tenemos definidos los ajustes por defecto, vamos a bloquear ambos ajustes para que el usuario no pueda cambiarlos. Para ello, creo un directorio locks dentro del directorio /etc/dconf/db/local.d/:
# mkdir /etc/dconf/db/local.d/locks
Dentro de él crearemos archivos con diferentes ajustes de bloqueo. Siguiendo con el ejemplo anterior, voy a bloquear los ajustes lid-close-ac-action y lid-close-battery-action para que el usuario no pueda cambiarlos. Creo un archivo power dentro del directorio /etc/dconf/local.d/locks:
# nano /etc/dconf/db/local.d/locks/power
/org/gnome/settings-daemon/plugins/power/lid-close-ac-action
/org/gnome/settings-daemon/plugins/power/lid-close-battery-action
Una vez creado el fichero /etc/dconf/db/local.d/locks/power, ejecutamos en un terminal:
# dconf update
Y con ésto, ambos ajustes quedarán bloqueados, de manera que el usuario no podrá modificarlos. Publicado por primera vez en http://enavas.blogspot.com.es

Script addFNMTfirefox: Añadir el certificado de la FNMT a los perfiles de Firefox de alumnos y profesores

En mi cuenta de GitHub he dejado un script para añadir el certificado de la FNMT a los perfiles de Firefox de alumnos y profesores. Aquí tenéis el código, por si queréis echarle un vistazo:


Y el enlace de descarga directa:
https://raw.githubusercontent.com/algodelinux/addFNMTfirefox/master/addFNMTfirefox.sh

También he añadido el archivo con el certificado actual de la FNMT, por si lo queréis utilizar.
Publicado por primera vez en http://enavas.blogspot.com.es

El shell de linux: Obtener la lista de particiones de un dispositivo de almacenamiento

Ésta es la combinación de comandos que uso habitualmente cuando estoy haciendo algún script en el que necesito detectar las particiones de un dispositivo de almacenamiento conectado al ordenador, ya sea un disco duro o dispositivo USB:
# fdisk -l /dev/sdX | grep -v -e 'Disk' -e 'Disco' | grep '/dev/sd' | awk '{print $1}'
Publicado por primera vez en http://enavas.blogspot.com.es

El shell de linux: Obtener la lista de dispositivos de almacenamiento detectados

Ésta es la combinación de comandos que uso habitualmente cuando estoy haciendo algú script en el que necesito detectar los dispositivos de almacenamiento conectados al ordenador, ya sean discos duros o dispositivos USB:
# fdisk -l 2>/dev/null | grep -i -e "Disk \/" -e "Disco \/" | grep -v "\/dev\/dm" | awk '{print $2}' | sed -e 's/://g'
Publicado por primera vez en http://enavas.blogspot.com.es