Skip to content

Linux Attitude

Le libre est un état d'esprit

Archive

Archive for March, 2007

Niveau :      
Résumé : chown toto:

Aujourd'hui, un article sans prétention sur chown.

Dans les vieux manuels on rencontre encore des exemple d'appel avec chown avec un '.' :

 $ chown user.group fichier

Même si cette méthode est encore supportée, c'est avec un ':' qu'il devrait être utilisé puisqu'il est possible d'avoir des utilisateurs avec des '.'. Cette petite astuce permet de voir les gens qui ont appris avec de vieux manuels ;-)

D'autre part chown permet de faire quelque chose de bien sympathique

 $chown user: fichier

Cela permet de changer le user et le groupe en même temps tout en utilisant le groupe principal (celui défini dans /etc/passwd) de l'utilisateur donné. Donc un mot de moins à taper (et/ou à chercher).

Niveau :      
Résumé : telnet pop.mail.net 110

Connaître le protocole

Connaître un protocole peut toujours servir.

  1. Vous pourrez ainsi tester les services que vous mettez en place
  2. Vous pourrez diagnostiquer le problème quand un ami vous dira "Ça marche pas !"
  3. Si vous-même avez un problème vous pourrez probablement le résoudre à la main.

Hier je me suis retrouvé à devoir télécharger 32000 mails sur un serveur pop et mon pauvre client (hé oui fetchmail n'est pas le seul client) est un peu oublié du côté de la résistance aux crash et n'a pas supporté. Le problème c'est qu'il n'a pas effacé les 15000 premiers mails qu'il a réussi à télécharger. Merci la boulette, après 30mn on n'a pas trop envie de tout reprendre au début.

Connaître le protocole POP

Je ne vais vous parler que des bases. Pour la suite, lisez la RFC 1939 :)

Une session POP est relativement simple (ce que vous tapez est en capitale, sauf les +OK) :

$ telnet pop.mail.net 110
Trying 127.0.0.1...
Connected to pop.mail.net.
Escape character is '^]'.
+OK <23594.1175023984@pop.mail.net>
USER toto
+OK
PASS xxx
+OK
LIST
+OK
1 1235
.
RETR 1
[...]
+OK
DELE 1
+OK
QUIT
Connection closed by foreign host.

[...] étant remplacé par le contenu du mail. Pour le reste je pense que vous avez compris.

Maintenant automatisons la suppression des mails.


continue reading...

Niveau :      
Résumé : ssh moi@machine

Utilisation de la clé

Vous le savez sûrement, ssh permet de se connecter à une machine avec un mot de passe ou avec une clé. Tout d'abord un petit rappel :

$ ssh-keygen # on crée une clé ssh
$ ssh-copy-id moi@machine # on copie la partie publique sur la machine qui nous intéresse
$ ssh moi@machine # hop on peut se connecter avec la clé directement

ssh_agent1.png

Utilisation de l'agent

Oui c'est bien mais ... il faut se retaper la passphrase à chaque fois. Et il faut bien avouer que c'est lourd. Mais OpenSSH dans sa grande bonté nous offre un outil supplémentaire : l'agent ssh. Deuxième rappel :

$ ssh-add # on tape la passphrase une fois pour toutes

continue reading...

Niveau :      
Résumé : umount: /mnt: device is busy umount: /mnt: périphérique occupé umount -l /mnt

Démontage

Il arrive qu'un montage ne veuille pas se démonter. En général c'est dû à un utilisateur qui occupe encore un fichier dans le répertoire. Dans ce cas lsof est votre ami (lsof | grep /mnt).

Deux cas sont particulièrement gênants:

  • il se peut que vous n'ayez pas envie de tuer le processus qui occupe le fichier,
  • il se peut aussi que personne n'utilise de fichier, ce qui s'explique par un montage cassé (en général sur un serveur samba ou nfs).

Et là l'option -l arrive à la rescousse. umount -l permet de démonter le point de montage aux yeux de tous les nouveaux utilisateurs (processus en réalité), mais il reste monté pour ceux qui le gardaient bloqué. Il sera démonté automatiquement à partir du moment où aucun blocage ne subsiste. Ainsi plus de souci de commande de démontage qui gèle.

Niveau :      
Résumé : chmod +s file

Vous connaissez sûrement le bit suid pour les fichiers exécutables. Il permet de faire en sorte de lancer un programme en tant que l'utilisateur qui possède le fichier et non en tant que celui qui lance le fichier. Ceci fonctionne de la même façon pour le propriétaire et pour le groupe.

Or les répertoires disposent aussi d'un bit exécutable. Il sert à autoriser quelqu'un à rentrer dans le répertoire (avec la commande cd). Hé bien le bit suid sert aussi. Il permet de faire en sorte que tout fichier créé dans ce répertoire n'appartienne pas à celui qui crée le fichier, mais à celui qui possède le répertoire parent.

Exemple en image :

$ mkdir repertoire
$ stat repertoire
> Access: (0755/drwxr-xr-x)  Uid: ( 1000/peck)   Gid: ( 1000/peck)
$ chgrp group repertoire
$ chmod g+s test
$ stat repertoire
> Access: (2755/drwxr-sr-x)  Uid: ( 1000/peck)   Gid: ( 1001/group)
$ touch repertoire/fichier
$ stat repertoire/fichier
> Access: (0644/-rw-r--r--)  Uid: ( 1000/peck)   Gid: ( 1001/group)

Ceci est très pratique pour permettre à plusieurs personnes de travailler dans la même arborescence. Par exemple vous créez un groupe dans lequel vous mettez les utilisateurs concernés, puis vous mettez le bit sgid (bit de groupe) sur le répertoire de travail. Ainsi tous les fichiers créés sous ce répertoire appartiendront au même groupe et pourront dont être lu et/ou modifié (pensez à regarder votre umask) par tout le groupe. Notez que si c'est un sous répertoire qui est créé, il obtiendra lui aussi le bit suid.

Bien sûr, cela ne vaut pas les ACL.

Sshfs

Mar 23

Niveau :      
Résumé : apt-get install sshfs && sshfs user@machine:/rep /mnt

Sshfs ou comment vous faciliter la vie.

N'avez-vous pas déjà pesté sur le fait de devoir travailler à distance ? Ouvrir un shell et utiliser les moyens du bord vi / emacs (ne lançons pas de troll, personnellement, je préfère ed), ou pire lancer une interface graphique pour éditer vos fichier et constater que tout cela est bien lent. Une autre alternative est de copier les fichiers en local chez vous et de travailler dessus (ouf enfin des outils sympa !), mais ensuite c'est la galère, il faut penser à renvoyer les fichier et après quelques aller-retours, on ne sait plus quel est le dernier fichier modifié et dans quel sens transmettre. rsync (over ssh svp) est la pour vous aider, mais ça manque de convivialité.

Aperçu

sshfs.png

Il existe "Ô miracle" un outil fait pour vous, taillé à votre image : sshfs. Grâce à lui vous pourrez enfin vous sentir chez vous tout en manipulant des fichiers distants. Mais laissons parler la ligne de commande :

$ ssh loin.tresloin.com "ls -a ~/devel/"
> . .. README projetv1 projetv2
$ mkdir ~/loin-devel
$ ls -a loin-devel
> . ..
$ sshfs loin.tresloin.com:~/devel loin-devel
$ ls -a loin-devel
> . .. README projetv1 projetv2

Et voilà ! Faites comme chez vous.


continue reading...

Bon, je me doute bien que personne ne me regarde, mais il faut bien un début à tout. Comme vous ne l'aurez pas deviné ce blog concerne les linuxiens. Il s'agit de prendre en main ce merveilleux outil.

Je distillerai régulièrement quelques "astuces", "bidouilles", et autres "outils" connus ou inconnus qui vous faciliteront la vie au jour le jour, voire vous aideront à imaginer un monde meilleur où tout est possible.

Bonne visite.