2009-12-10 00:23

Quand vous avez configuré la connexion automatique (autologin) sous Gnome/Ubuntu, rien de plus agaçant que la fenêtre demandant de déverrouiller le trousseau au démarrage, pour que network-manager puisse utiliser les clés Wifi !

Si votre mot de passe de trousseau est le même que celui du login, le trousseau est déverrouillé automatiquement lorsque vous tapez le mot de passe à la connexion, ce qui n’est pas possible en autologin.

Une solution est de mettre un mot de passe de trousseau vide, mais c’est mauvais pour la sécurité de tous vos mots de passe.

La meilleure solution serait de stocker les clés wifi dans le trousseau par défaut, et de stocker tous les autres mots de passe dans un autre trousseau. J’ai peut-être mal cherché mais à ce que j’ai vu la plupart des applications utilisent uniquement le trousseau par défaut.

Solution intermédiaire : mettre un mot de passe “bidon” au trousseau par défaut, déverrouillé au démarrage de Gnome par un script, ce qui est quand même mieux qu’un mot de passe vide.

Voici donc ma solution :

On change le mot de passe du trousseau par défaut :

  1. Aller dans Applications > Accessoires > Mots de passe et clés de chiffrement (inutile comme moi de chercher dans Système > Préférences pendant 2 heures, là où il devrait être)
  2. Clique droit sur le trousseau par défaut > Changer le mot de passe

On crée ensuite le script python contenant le code suivant :

vi ~/.lordiam.py
#!/usr/bin/python
import gnomekeyring
#gnomekeyring.lock_sync(None);
gnomekeyring.unlock_sync(None, 'monmotdepasse');

On empêche aux autres utilisateurs de lire le fichier :

chmod 700 ~/.lordiam.py

On teste. On doit obtenir 0 comme code de retour (le warning est normal) :

~/.lordiam.py
echo $?

Maintenant, on ajoute le script au démarrage dans Système > Préférences > Applications au démarrage :

Commande : /home/UTILISATEUR/.lordiam.py

Enfin, on redémarre son PC pour tester le tout.

Notes :

  • C’est un “coup de chance” que le script soit appelé avant le lancement de network-manager. Je n’ai pas trouvé comment le placer prioritaire dans la liste des programmes au démarrage de Gnome.
  • À quoi sert le trousseau ‘login’ ? À ce que j’ai compris, il sert à stocker les mots de passes qui seront oubliés à la fin de la session.
  • Pour le script, on choisira un nom moins remarquable que unlock_keyring.py. De même, on met le script en fichier caché. C’est toujours mieux que rien.

Références :

  • apt-get source libpam-gnome-keyring
  • apt-get source python-gnomekeyring
2009-12-10 00:23 · Tags: , , ,
2009-12-03 22:42

Certains Thinkpads, dont le T43, ont plusieurs problèmes de chaleur et de ventilation.

Sur une installation Linux par défaut, le processeur de mon T43 fait 46°C en moyenne, et le GPU 49°C pour une température extérieure de 19°C.

L’algorithme de gestion du ventilateur par le BIOS est très mauvais, si bien qu’après un démarrage à froid, le ventilateur se met à tourner sans arrêt après quelques minutes d’utilisation.

Fort heureusement, il est possible d’utiliser des programmes pour prendre le contrôle du ventilateur à la place du BIOS.

Pour commencer, le module thinkpad_acpi doit nous autoriser à changer la vitesse du ventilo :

# vi /etc/modprobe.d/thinkpad.conf
options thinkpad_acpi fan_control=1 experimental=1

Au choix, vous pouvez recharger le module, ou relancer votre système.

# rmmod thinkpad_acpi
# modprobe thinkpad_acpi

Vous pouvez désormais prendre le contrôle de votre ventilo :

# cat /proc/acpi/ibm/fan
# echo level 0 > /proc/acpi/ibm/fan
# echo level 7 > /proc/acpi/ibm/fan # pleine puissance !!
# echo level auto > /proc/acpi/ibm/fan # retour à la normale, on laisse le BIOS prendre la main

Maintenant, rendez-vous ici et copiez le contenu du script dans /usr/local/bin/tp-fancontrol.

# mv index.php /usr/local/bin/tp-fancontrol
# chmod a+x /usr/local/bin/tp-fancontrol

Ensuite, pour tester le script :

# tp-fancontrol
# tp-fancontrol -s 5 # pour un ventilo qui démarre plus tard

Afin de lancer le script au démarrage, on récupère aussi, sur la même page, le script tp-fancontrol.init.debian. On l’ajoute au démarrage du système.

# mv index.php /etc/init.d/tp-fancontrol
# chmod a+x /etc/init.d/tp-fancontrol
# vi /etc/init.d/tp-fancontrol
DAEMON=/usr/sbin/fancontrol
# /etc/init.d/tp-fancontrol start
# /etc/init.d/tp-fancontrol stop
# update-rc.d tp-fancontrol defaults # note : on peux aussi n'ajouter que les liens "start"

La touche finale est de modifier le script afin de changer les seuils minimum de déclenchement du ventilateur, de manière à ce qu’il se déclenche plus tard quand le système commence à chauffer :

# vi /usr/local/bin/tp-fancontrol
MIN_THRESH_SHIFT=5
INTERVAL=10 # on peut aussi augmenter l'intervalle de mise à jour de la vitesse

Une augmentation de 5 secondes permet au ventilateur de redevenir silencieux quand l’ordinateur ne fait plus rien.

Références :

2009-12-03 22:42 · Tags: , ,
2009-12-02 21:53

Userspace Software Suspend est une alternative à la méthode d’hibernation par défaut du noyau Linux. Elle ajoute plusieurs fonctionnalités intéressantes telles que la compression, le chiffrement… La compression permet d’hiberner avec une partition Swap plus petite, et accélère le temps de réveil de votre système !

Voici comment installer USwSusp sous Ubuntu Karmic. Doit aussi fonctionner sous une Debian récente.

Installer le paquet uswsusp :

aptitude install uswsusp

Désormais, vous pouvez hiberner en tapant la commande s2disk en root.

Pour hiberner depuis le menu Ubuntu ou les raccourcis clavier, modifiez la ligne suivante dans le fichier /etc/pm/config.d/00sleep_module :

SLEEP_MODULE=uswsusp

Puis testez votre hibernation !!

Liens :

2009-12-02 21:53 · Tags: , , ,
2009-11-18 23:40

Si vous obtenez les erreurs suivantes en lançant screen en tant qu’utilisateur :

No more PTYs.
Sorry, could not find a PTY.
[screen is terminating]

Il faut changer les droits du fichier /dev/ptmx :

# ls -l /dev/ptmx 
crw-r--r-- 1 root root 5, 2 nov 18 23:28 /dev/ptmx
# chmod a+w /dev/ptmx
# ls -l /dev/ptmx 
crw-rw-rw- 1 root root 5, 2 nov 18 23:34 /dev/ptmx

Sous Ubuntu, le problème était absent, les droits étant déjà positionnés :

$ ls -l /dev/ptmx 
crw-rw-rw- 1 root tty 5, 2 2009-11-18 23:37 /dev/ptmx

Références :

  • man ptmx
  • ubuntu$ ls -l /dev/ptmx
2009-11-18 23:40 · Tags: ,
2009-10-23 14:32

Voici comment j’ai configuré mon double écran sous ma Debian unstable.

Xrandr

Par défaut, la carte graphique affiche la même chose sur les deux écrans.

On lance d’abord la commande xrandr pour afficher les différentes sorties vidéo.

Ensuite, on lance la commande magique :

xrandr --output DVI-1 --left-of DVI-0

Notes :

  • Si xrandr affiche une erreur, ajouter le paramètre Virtual au fichier /etc/X11/xorg.conf et relancer X (voir ci-dessous).
  • Essayez --right-of si c’est inversé !

Paramétrage Xorg

Et pour que les modifications soient permanentes, on modifie /etc/X11/xorg.conf :

Section "Device"
        Identifier      "ATI Technologies Inc RV380 [Radeon X600 (PCIE)]"
        Driver          "ati"
 
        Option          "Monitor-DVI-0" "Screen 1"
        Option          "Monitor-DVI-1" "Screen 2"
EndSection

Section "Monitor"
        Identifier      "Screen 1"
EndSection
Section "Monitor"
        Identifier      "Screen 2"
        Option          "RightOf" "Screen 1"
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Device          "ATI Technologies Inc RV380 [Radeon X600 (PCIE)]"
        Monitor         "DELL 1704FPT"
        DefaultDepth    24
        SubSection "Display"
                Depth           24
                Modes           "1280x1024" "1152x864" "1024x768" "800x600" "720x400" "640x480"
                Virtual         2560 1280
        EndSubSection
EndSection
  • Dans la section “Device”, on liste les différents écrans au format “Moniteur-NomDeSortie”.
  • On place ensuite une section par écran, en positionnant le deuxième écran par rapport au premier.
  • La sous-section “Screen > Display” doit contenir le paramètre “Virtual” avec une surface en pixels assez grande pour accueillir les deux résolutions.

Note : vous pouvez aussi essayer le programme graphique grandr.

Panneaux Gnome

Sous Gnome, vous avez maintenant deux écrans : un principal et un secondaire.

Si vous voulez que vos panneaux soient sur l’autre écran, il vous suffit de les déplacer (clique droit sur le panneau > Propriétés, décocher Étendre, déplacer le panneau, puis remettre Étendre).

Je vous conseille aussi d’ajouter une nouvelle barre avec une nouvelle liste de fenêtres sur votre écran secondaire.

Références :

2009-10-23 14:32 · Tags: , , ,
2009-10-21 11:26

J’ai cherché un moyen de modifier le format des courriels envoyés par la crontab.
J’aurais espéré une syntaxe similaire à MAILTO=

Réponse : C’est impossible.

Avec le programme cron par défaut sous Debian, c’est codé en dûr dans le code de cron :

Dans le fichier source do_command.c :

fprintf(mail, "From: root (Cron Daemon)\n");
fprintf(mail, "To: %s\n", mailto);
fprintf(mail, "Subject: Cron <%s@%s> %s\n",
  usernm, first_word(hostname, "."),
  e->cmd);
2009-10-21 11:26 · Tags: , , ,
2009-10-19 14:01

Pour ajouter les sujets de courriels dans la log Exim4 (/var/log/exim4/mainlog), il suffit simplement de modifier le fichier /etc/exim4/exim4.conf.template comme suit en ajoutant +subject au log_selector :

.ifdef MAIN_LOG_SELECTOR
log_selector = MAIN_LOG_SELECTOR +subject
.endif

Puis relancer Exim :

/etc/init.d/exim4 restart
2009-10-19 14:01 · Tags: ,
2009-10-11 19:57

J’ai utilisé le patch suivant sur mon Dotclear pour éviter que mes URLs soient systématiquement tronquées à 35 caractères dans mes billets :

--- /tmp/class.wiki2xhtml.php   2009-10-11 19:47:34.000000000 +0200
+++ text.wiki2xhtml/class.wiki2xhtml.php        2009-10-11 19:48:34.000000000 +0200
@@ -802,7 +802,7 @@
                if (count($data) == 1)
                {
                        $url = trim($str);
-                       $content = strlen($url) > 35 ? substr($url,0,35).'...' : $url;
+                       $content = $url;
                        $lang = '';
                        $title = $url;
                }

J’ai aussi soumis mon patch sur le Trac de Dotclear :

MAJ 2009-12-13 : Sans ce patch, on peut aussi déclarer les URL en syntaxe wiki :

[URL|URL]

Mais ça n’est pas très “sexy”.

http://dev.dotclear.org/2.0/ticket/809

2009-10-11 19:57 · Tags:
2009-10-11 18:31

Voici les extensions Firefox que j’utilise au quotidien :

Ergonomie

Adblock Plus

Pour un Web sans pub !

ChromaTabs Plus

Des onglets en couleurs pour mieux s’y retrouver.

Flashblock

Non à cette technologie propriétaire, antiopérable et qui fait tout ramer. On pourra tout de même cliquer sur les éléments bloqués pour les visualiser, pour s’autoriser de temps en temps une vidéo sur YouPorn YouTube.

Hide Menubar

Cache la barre de menu qui prend de la place, et que l’on utilise rarement. La touche Alt permet de l’afficher.

Développement Web

Live HTTP Headers

Permet de surveiller toute communication de votre navigateur vers l’extérieur.

Firebug

L’incontournable du développement Web.

Web Developper

Une barre d’outils très utile, qui vient compléter Firebug, comme la désactivation du Javascript.

YSlow

Extension de Yahoo qui vous permet d’optimiser votre site.

Page Speed

La réponse de Google à l’extension YSlow ?
Extension de Google qui vous permet d’optimiser votre site. Nécessite Firebug.

2009-10-11 18:31 · Tags: ,
2009-10-09 17:12

On le trouve partout. Voici comment créer des partages sftp en chroot.

Dans le fichier /etc/ssh/sshd_config :

# on utilise le sftp interne d'openssh
# car la commande /usr/lib/openssh/sftp-server ne sera pas disponible dans le chroot
Subsystem sftp internal-sftp

Match group sftp
        ChrootDirectory %h
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp

MAJ 17/06/2010 : Attention à la syntaxe ! Les commentaires doivent commencer en début de ligne uniquement, et il ne doit pas y avoir d’espace en fin de la ligne ForceCommand internal-sftp.

Il suffit ensuite de créer des utilisateurs appartenant au groupe sftp, et le tour est joué.
On teste par :

sftp user@myserver.com

Problème si on veut utiliser la commande rsync pour transférer des fichiers, car la commande rsync n’est pas disponible dans le chroot.

En premier lieu, on autorise d’autres commandes que “internal-sftp” en commentant la ligne :

#ForceCommand internal-sftp

Ensuite, on crée l’arborescence suivante dans le dossier chroot :

bin/
bin/bash
bin/rsync
lib/
lib/libncurses.so.5
lib/ld-linux.so.2
lib/libacl.so.1
lib/libpopt.so.0
lib/libattr.so.1
lib/i686
lib/i686/cmov
lib/i686/cmov/libdl.so.2
lib/i686/cmov/libc.so.6

Il s’agit des commandes bash et rsync, ainsi que toutes leurs librairies (que l’on peut obtenir à l’aide de la commande ldd)

Note : l’utilisateur doit avoir /bin/bash comme shell par défaut.

Note 2 : le dossier du chroot doit appartenir à root, bien que ça soit le dossier de l’utilisateur. Pour permettre à l’utilisateur d’écrire dedans, il faut créer un sous dossier où il a les droit. C’est une contrainte importante, mais nécessaire à la sécurité d’un chroot, vous dirons les programmeurs d’OpenSSH.

Références :

2009-10-09 17:12 · Tags: , , ,