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: , , ,
2009-10-07 10:03

Dans un billet précédent, je détaillais comme mettre en place une redirection mobile basée sur l’en-tête HTTP User-Agent, avec Squid. Exemple : quand un mobile se rend sur www.monsite.com, il est redirigé vers mobile.monsite.com.

Maintenant, nous désirons ajouter un lien sur mobile.monsite.com qui permette d’accéder au site en mode normal (www.monsite.com).

Problème : la redirection est en place, et dès que le mobile retournera sur www.monsite.com, il sera redirigé de nouveau.

Solution : en se basant sur l’en-tête HTTP Referer, on ne redirige pas les mobiles quand l’utilisateur vient du domaine *.monsite.com

Réalisé de la manière suivante dans la configuration Squid :

###################################
# on redirige les telephones vers mobile.monsite.com
url_rewrite_program /etc/squid/redirect_mobile.sh

acl symbian browser Symbian
acl iphone browser iP(hone|od)
acl android browser Android
acl mobile_url dstdomain mobile.monsite.com
acl from_monsite referer_regex ^http\://[^/]+\.monsite\.com   # on teste si l'utilisateur vient de *.monsite.com

url_rewrite_access deny mobile_url
url_rewrite_access deny from_monsite   # on ne redirige pas quand c'est le cas
url_rewrite_access allow symbian
url_rewrite_access allow iphone
url_rewrite_access allow android
url_rewrite_access deny all

De cette manière, si le mobile vient de l’extérieur (d’un moteur de recherche ou autre site, ou qu’il tape directement l’URL dans la barre d’adresse), il sera redirigé. En revanche, s’il a cliqué sur un lien « www.monsite.com en mode normal » depuis mobile.monsite.com, il ne sera pas redirigé.

Note :
Cette solution est aisément transposable en règles de réécriture apache.

2009-10-07 10:03 · Tags: , ,
2009-08-20 12:21

Pour savoir avec quelle adresse IP on sort sur Internet, on peux aller voir un site du genre http://www.whatismyip.com

En mode texte sans navigateur Web, c’est un peu plus compliqué. On pourra donc utiliser la commande suivante :

wget --user-agent="Mozilla/5.0" -O - http://www.whatismyip.com 2>/dev/null | grep -o "Your IP Address Is: [0-9.]*"

Il faut se faire passer pour un vrai navigateur sinon le site nous refuse.

MAJ 14/01/2010

Pour trouver son adresse IP externe, une méthode encore plus élégante :

dig +short myip.opendns.com @resolver1.opendns.com

MAJ 19/03/2010

D’ailleurs ça marche même plus ma méthode. Préférez donc :

http://dev.petitchevalroux.net/linux/connaitre-son-adresse-externe-linux.305.html

MAJ 06/05/2010

Ou encore mieux !

curl icanhazip.com

http://www.commandlinefu.com/commands/view/2966/return-external-ip

2009-08-20 12:21 · Tags: ,