Page suivante Page précédente Table des matières
1. Trucs et astuces
1.1 Problèmes avec le système de fichiers vfat
J'ai toujours des problèmes avec les permissions d'écriture pour les utilisateurs lors du montage de systèmes de fichiers vfat/dos sur ma machine Linux. J'utilise la Red Hat 5.1 avec un noyau 2.0.34. Quelqu'un sait-il ce qui ne va pas ?
Première solution :
Voici la ligne que j'ai mise dans
/etc/fstab
:
/dev/hda1 /mnt/win95 vfat umask=000,auto 1 1L'astuce est dans le positionnement d'
umask
.
Deuxième solution :
J'avais le même problème. Voici ce que j'ai mis dans mon
/etc/fstab
:
/dev/hda1 /dos vfat user,noauto 0 0Je ne souhaite pas monter systématiquement ma partition
/dos
car je ne veux pas que ses fichiers soient pris en compte dans la base de données utilisée parlocate
. Mettreuser
pour cette partition fait que tout le monde peux la monter.
Troisième solution :
Mon fichier
/etc/fstab
contient cette ligne :
/dev/hda4 /f: vfat defaults,umask=007,gid=101 1 1Cela monte mon répertoire dos comme
/f:
(pour que cela corresponde à ce que j'ai sous NT).root
, ou tout utilisateur du groupe 101 peuvent le lire ou y écrire.Pour donner les permissions à tout le monde, changez la ligne et mettez :
defaults,umask=000
1.2 Monter des partitions DOS sous Linux
Afin d'octroyer des permissions à vos partitions DOS de façon sûre, faites ce qui suit.
Remarque : dans les exemples qui suivent, l'user id (63) et le group id (63)
dos
ont été choisis afin de ne pas être identiques à d'autres user id et group id présents dans/etc/passwd
ou/etc/group
.Cette solution fonctionne avec Red Hat 5.1, vous devrez peut-être la modifier un peu si vous utilisez une autre distribution.
- Créez un utilisateur
dos
, non autorisé à se logger, en ajoutant la ligne suivante dans/etc/passwd
:
dos:*:63:63:MSDOS Accessor:/dos:- Créez le groupe
dos
et ajoutez des utilisateurs à ce groupe. Dans l'exemple suivant,root
etejy
appartiennent au groupedos
. Pour ce faire, ajoutez une ligne comme celle-ci dans/etc/group
:
dos::63:root,ejy- Ajoutez la ligne suivante (adaptée à votre système) à
/etc/fstab
:Bien sûr, vous devez d'abord localiser vos partitions DOS. Vous pouvez le faire sous le compte
/dev/hda1 /C vfat uid=63,gid=63,umask=007 0 0root
à l'aide des commandes suivantes :La commande
/sbin/fdisk -l df cat /etc/fstabfdisk -l
énumère tous les disques disponibles.df
montre quels sont ceux qui sont montés et leurs occupations respectives.cat /etc/fstab
affiche tous les périphériques montables. Les partitions restantes sont les partitions étendues, une sorte d'enveloppe de partitions, et les partitions allouées à d'autres systèmes d'exploitation que vous ne souhaitez pas monter.
- Créez un point de montage pour votre disque DOS à l'aide de la commande effectuée sous le compte
root
:De cette façon, le disque
mkdir /C chown dos:dos /CC:
est monté sur/C
au démarrage. Seulsroot
etejy
peuvent le lire et y écrire. Notez que vous pouvez aussi mettrevfat
à la place demsdos
dans/etc/fstab
afin de gérer les partitionsvfat16
(etvfat32
pour le noyau 2.0.34 et supérieurs).
1.3 Signatures aléatoires
Pour avoir une signature différente à chaque fois que vous envoyez un courrier :
Créez un sous-répertoire
~/.signatures
et copiez-y votre fichier.signature
sous un nom visible. Supprimez le fichier~/.signature
et remplacez-le par un tube à l'aide de la commande :
mkfifo ~/.signatureCréez un script qui effectue un simple
cat
de chacun des fichiers du répertoire~/.signatures
dans le tube~/.signature
:
#!/bin/sh while true do for SIGNATURE in ${HOME}/.signatures/* do # Cat each file out to the .signature and throw away any errors. cat ${SIGNATURE} > ${HOME}/.signature 2> /dev/null # This sleep seems to be required for Netscape to work properly # I think buffering on the filesystem can cause multiple signatures # to be read otherwise. I think the sleep allows Netscape to see # the End Of File. sleep 1 done doneFaites en sorte de lancer ce script en arrière-plan à chaque fois que vous vous connectez au système (pour cela, lancez-le de votre fichier
profile
ouxsession
). Ajoutez d'autres entrées à votre répertoire~/.signatures
et elles seront automatiquement utilisées dans vos courriers.Problèmes éventuels :
Une signature peut bloquer le tube. S'il n'y a aucun processus qui alimente le tube en signatures, tous les programmes ouvrant le tube peuvent se retrouver bloqués jusqu'à ce que quelque chose soit écrit.
1.4 Création du programme bzgrep
Si vous avez déjà utilisé
zgrep
avec des fichiers textes compressés pargzip
, vous vous êtes sûrement rendu compte qu'il est très pratique.zgrep
vous permet de faire des recherches d'expressions rationnelles dans un fichier texte, qu'il soit ou non compressé pargzip
. Par exemple, un répertoire peut correspondre à ce qui suit :
testing > ls -al total 2086 drwxrwxr-x 2 ksiew ksiew 1024 Oct 18 11:07 . drwxr-xr-x 24 ksiew ksiew 2048 Oct 18 11:00 .. -rwxrwxr-x 1 ksiew ksiew 1363115 Oct 18 11:01 cortes.txt -rwxrwxr-x 1 ksiew ksiew 172860 Oct 18 11:01 lost_world_10.txt.gz -rwxrwxr-x 1 ksiew ksiew 582867 Oct 18 11:00 moon10a.txtEt, si vous recherchez le mot "lune", faire :
testing > zgrep -l lune * cortes.txt lost_world_10.txt.gz moon10a.txtCelà vous informe que "lune" se trouve dans ces trois fichiers.
Maintenant, si vous compressez un fichier texte à l'aide de
bzip2
, vous aurez un problème :
testing > bzip2 cortes.txt testing > ls -al total 1098 drwxrwxr-x 2 ksiew ksiew 1024 Oct 18 11:12 . drwxr-xr-x 24 ksiew ksiew 2048 Oct 18 11:12 .. -rwxrwxr-x 1 ksiew ksiew 355431 Oct 18 11:01 cortes.txt.bz2 -rwxrwxr-x 1 ksiew ksiew 172860 Oct 18 11:01 lost_world_10.txt.gz -rwxrwxr-x 1 ksiew ksiew 582867 Oct 18 11:00 moon10a.txt testing > zgrep -l lune * lost_world_10.txt.gz moon10a.txt
zgrep
ne reconnaît plus le fichiercortes.txt.bz2
comme étant un fichier compressé.Nous avons donc besoin d'un nouveau programme
bzgrep
qui puisse reconnaître les fichiers textes compressés avecbzip2
.La meilleure façon de créer ce fichier consiste à modifier le fichier
zgrep
existant.
testing > locate zgrep /usr/bin/zgrep /usr/man/man1/zgrep.1 testing > su password: opensesame # cp /usr/bin/zgrep /usr/local/bin/bzgrepLe fichier
bzgrep
est une copie du fichierzgrep
qui contient ces lignes :Nous ne pouvons pas changer les dernières lignes en ce qui suit :
res=0 for i do if test $list -eq 1; then bzip2 -cdf "$i" | $grep $opt "$pat" > /dev/null && echo $i r=$? elif test $# -eq 1 -o $silent -eq 1; then bzip2 -cdf "$i" | $grep $opt "$pat" r=$? else bzip2 -cdf "$i" | $grep $opt "$pat" | sed "s|^|${i}:|" r=$? fi test "$r" -ne 0 && res="$r" done exit $rescar
bzgrep
serait alors un programme pouvant gérer les fichiers textes compressés avecbzip2
, MAIS il y aurait un problème.
bzgrep
NE reconnaîtrait PAS les fichiers textes ordinaires ou compressés avecgzip
. C'est un gros problème ! Il faudrait alors compresser tous les fichiers textes avecbzip2
pour utiliserbzgrep
.Heureusement, il y a toujours une solution sous Linux. Tout ce qu'il nous reste à faire est de le modifier pour qu'il sache quel est le programme de décompression à utiliser et pour qu'il puisse lancer soit
gzip -cdfq
soitbzip2 -cdf
.Changeons donc les dernières lignes pour qu'elles ressemblent à ça :
res=0 for i do case "$i" in *.bz2 ) if test $list -eq 1; then bzip2 -cdf "$i" | $grep $opt "$pat" > /dev/null && echo $i r=$? elif test $# -eq 1 -o $silent -eq 1; then bzip2 -cdf "$i" | $grep $opt "$pat" r=$? else bzip2 -cdf "$i" | $grep $opt "$pat" | sed "s|^|${i}:|" r=$? fi ;; * ) if test $list -eq 1; then gzip -cdfq "$i" | $grep $opt "$pat" > /dev/null && echo $i r=$? elif test $# -eq 1 -o $silent -eq 1; then gzip -cdfq "$i" | $grep $opt "$pat" r=$? else gzip -cdfq "$i" | $grep $opt "$pat" | sed "s|^|${i}:|" r=$? fi ;; esac test "$r" -ne 0 && res="$r" done exit $resEt nous avons enfin un programme bzgrep qui fonctionne.
Adaptation française: Eric Jacoboni
Page suivante Page précédente Table des matières