Archive | admin

Tags: ,

Kixtart: un langage de script pour vos ouvertures de session Windows

Posted on 20 May 2010 by Thomas Ginestet

Kixtart ( à ne pas confondre avec Kickstart de RedHat ) est un langage de script utilisé principalement pour effectuer les ouvertures de sessions sous Windows. Il est gratos ( et pourtant développé par un mec de chez Krosoft, c’est dire ! ) et super simple à utiliser. Il parait qu’il permet aussi une exécution plus rapide de l’ouverture de session que ne le ferait un vbscript…

Pour ma part, je l’ai intégré dans un contrôleur de domaine Samba à la place du bon vieux logon.bat en place.

Le principe est donc sensiblement le même, à savoir un script ( lancé avec les droits de l’utilisateur courant ) qui va parser vos droits et groupe(s) d’appartenance et mapper votre ou vos lecteurs réseaux en fonction de cela.

Je vous invite à vous rendre sur le helpdesk Kixtart http://helpdesk.kixtart.org avant de parcourir mon script afin de voir à quoi correspondent les macros et fonctions utilisées.
Votre script devra porter l’extension .kix et en fonction de votre parc clients (98 ?!, XP, Vista), vous aurez à placer ou non dans votre répertoire de logon ( genre //pdc/netlogon ;-) ) des .dll et .exe requis par Kixtart. Encore une fois, RTFM sur http://www.kixtart.org ou sur le helpdesk.

Notez le truc con, l’exécution de votre script se fera par l’intermédiaire d’un batch.

Voici dans les grandes lignes à quoi peut ressembler un script de connexion:

DEBUG OFF  ; DEBUG ON active le mode debug qui est  vraiment pratique en cas de soucis
; Initialise les variables pour les serveurs / partages  windows
$serveur5 = \\v5
$serveur2 = \\v2
;  ******************** Let's rock ***************************
;  ****************
; *******
; Place un raccourci  applicatif sur le bureau de l'
utilisateur
IF NOT EXIST ("c:\Documents and Settings\@USERID\Bureau\mon raccourci.url")
COPY @LDRIVE+"mon raccourci.url" "c:\Documents and  Settings\@USERID\Bureau" /r/c/h
ENDIF
? " copie de mon raccourci.url"
IF @ERROR <>  0
? @ERROR
ENDIF
; Synchronisation avec le serveur de temps du réseau
SETTIME @LSERVER
IF @ERROR <> 0
? @ERROR
ENDIF
;  On supprime les connexions persistantes potentielles
USE * /Delete /Persistent
; Affiche un message de bienvenue
?  "--------------------------------------------------"
? "Bienvenue sur le domaine "+@LDOMAIN+" "+@FULLNAME
? "Vous utilisez le poste de travail @WKSTA"
?  "--------------------------------------------------"
? ""
; Notifie si le mot de passe est hors d'âge
IF @PWAGE > 79
MESSAGEBOX ("Votre mot de passe a "+@PWAGE+" jours. Pour des raisons de securite, merci de le changer.","CHANGEMENT DU MDP",0)
ENDIF
; Mapping des lecteurs réseaux
?  "Connexion aux lecteurs du reseau..."
?  "..................................................."
;;;;;;;;;;;;;
;  on va commencer par les disques perso des utilisateurs
;;;;;;;;;;;;;
IF  @USERID = "administrateur" GOTO Exit ENDIF ; pas besoin de monter de lecteur pour l'
admin
USE U: /delete
USE U: @LSERVER+"\"+@USERID
IF @ERROR <> 0
? "
Error mapping drive U !"
ENDIF
;;;;;;;;;;;;;
;  maintenant on va mapper les lecteurs réseaux des utilisateurs avec droits spécifiques
;;;;;;;;;;;;;
SELECT</p>
CASE @USERID = "
utilisateur1"
USE P: /delete
USE P: @LSERVER+"
\privee"
IF @ERROR <> 0
? "
Error mapping drive privee !"
ENDIF
USE Q: /delete
USE Q: $serveur5+"
\partage"
IF @ERROR <> 0
? "
Error mapping drive partage !"
ENDIF
CASE @USERID = "
utilisateur2"
USE R: /delete
USE R: @LSERVER+"
\documents"
IF @ERROR <> 0
? "
Error mapping drive documents !"
ENDIF
ENDSELECT
;;;;;;;;;;;;;;
; On va mapper ensuite les lecteurs réseaux communs en fonction des groupes d'appartenance
;;;;;;;;;;;;;;
IF EXIST ("
@LSERVER\@PRIMARYGROUP") = 1
USE O: /delete
USE O: "
@LSERVER\@PRIMARYGROUP"
IF @ERROR <> 0
? "
Error mapping drive @PRIMARYGROUP !"
ENDIF
ENDIF
;;;;;;;;;;;;;;
; On va mapper les lecteurs réseaux communs spécifique à certains groupes d'appartenance
;;;;;;;;;;;;;;
IF @PRIMARYGROUP = "
ungroupe"
USE P: /delete
USE P: $serveur2+"
\d$"
IF @ERROR <> 0
? "
Error mapping drive d$ !"
ENDIF
ENDIF
Exit

Vous voyez, c’est vraiment pas sorcier. Ca m’a aussi permis de réduire de moitié la taille de mon script de connexion par rapport à mon ancien logon.bat.

Je vous ai présenté une utilisation assez basique de Kixtart, cependant il ne faut pas le réduire à une simple fonction de mappage réseau. Vous pouvez vous en servir pour effectuer des opération bien plus puissantes telles que des installations et mises à jour d’applicatifs (ex: antivirus), des interactions avec des fichiers Words ou Excel, des interfaces graphiques, etc.

Comments (0)

Tags: , ,

Optimiser le filtre antispam de Zimbra avec les RBL

Posted on 20 May 2010 by Thomas Ginestet

Lors de l’installation de Zimbra, la configuration de SpamAssassin se résume au minimum.

Pour optimiser le filtrage des spams, vous pouvez configurer et activer des RBL (Realtime Blackhole List). Ces fameuses RBL vont permettre de lister les serveurs connus pour être de gros spammeurs et de catégoriser en spam les mails reçus de ces serveurs. On pourrait donc résumer ça à une grosse liste noire.

Attention cependant à ne pas utiliser n’importe quelle RBL, certaines étant plus ou moins efficaces… Je vous conseille donc d’utiliser uniquement celles répertoriées sur le site officiel de Zimbra.

Voici comment configurer et activer l’utilisation des RBL avec Zimbra:

- Connectons-nous en tant qu’utilisateur zimbra:

thomas@cryonux:~$ su zimbra

- Listons tout d’abord les RBL actuellement utilisées par SpamAssassin:

zimbra@cryonux:~$ zmprov gacf | grep zimbraMtaRestriction

qui me donne:

zimbraMtaRestriction: reject_invalid_hostname
zimbraMtaRestriction: reject_non_fqdn_hostname
zimbraMtaRestriction: reject_non_fqdn_sender
zimbraMtaRestriction: reject_unknown_client
zimbraMtaRestriction: reject_unknown_hostname
zimbraMtaRestriction: reject_unknown_sender_domain

- Récupérons les RBL en cours et ajoutons à celles-ci les RBL listées sur le site de Zimbra dans la commande suivante:

zimbra@cryonux:~$ zmprov mcf zimbraMtaRestriction reject_invalid_hostname zimbraMtaRestriction reject_non_fqdn_hostname zimbraMtaRestriction reject_non_fqdn_sender zimbraMtaRestriction reject_unknown_client zimbraMtaRestriction reject_unknown_hostname zimbraMtaRestriction reject_unknown_sender_domain zimbraMtaRestriction "reject_rbl_client dnsbl.njabl.org" zimbraMtaRestriction "reject_rbl_client cbl.abuseat.org" zimbraMtaRestriction "reject_rbl_client bl.spamcop.net" zimbraMtaRestriction "reject_rbl_client dnsbl.sorbs.net" zimbraMtaRestriction "reject_rbl_client sbl.spamhaus.org" zimbraMtaRestriction "reject_rbl_client relays.mail-abuse.org"

Voilà, ça devrait être déjà mieux !

Comments (1)

Tags: , , ,

Restaurer une sauvegarde Amanda avec Amrestore

Posted on 20 May 2010 by Thomas Ginestet

L’utilitaire Amrestore permet tout comme Amrecover de restaurer les fichiers sauvegardés par Amanda, mais de manière moins “fine”. En effet, si les données à sauvegarder sont trop volumineuses, Amanda effectue la sauvegarde en découpant en plusieurs morceaux les disques déclarés dans votre fichier disklist. Cela permet d’effectuer la sauvegarde plus rapidement.

Amrestore se base sur ces morceaux (chunks) pour établir une restauration. Il ne peut restaurer qu’au minimum un morceau. Pour restaurer un seul fichier, vous êtes obligé de restaurer l’intégralité du morceau dans lequel il se trouve.

Quel est alors l’intérêt d’utiliser un outil “moins puissant” ? C’est simple, contrairement à Amrecover, Amrestore n’a pas besoin des fichiers d’index pour effectuer une restauration. Si vos index sont perdus, vous pouvez donc quand même effectuer une restauration de vos fichiers.

Voici la méthode

Rembobiner la bande:

thomas@cryonux:~$ mt -f /dev/nst0 rewind

Lancer la commande pour lister le contenu de la bande:

thomas@cryonux:~$ amrestore -p /dev/nst0 no-such-host > /dev/null

Voici un exemple de listing qu’amrestore va vous générer:

CMD  N° DE CHUNK   ACTION  SERVEUR._DISQUE.DATE
amrestore: 1: skipping pdc._home.20080917.3.01
amrestore: 2: skipping pdc._home.20080917.3.02
amrestore: 3: skipping pdc._home.20080917.3.03
amrestore: 4: skipping pdc._etc.20080917.3.1
amrestore: 5: skipping pdc._var_lib.20080917.3.2
amrestore: 6: skipping sgbd._opt.20080917.3.3
amrestore: 7: reached end of tape: date 20080918

Puis rembobiner la bande à nouveau:

thomas@cryonux:~$ mt -f /dev/nst0 rewind

Pour restaurer l’ensemble des données du serveur “pdc” présentes sur la bande nous allons faire:

thomas@cryonux:~$ amrestore /dev/nst0 pdc | tar xvf -

Pour ne restaurer par exemple que le disque “etc” du serveur “pdc” nous allons faire:

thomas@cryonux:~$ amrestore /dev/nst0 pdc etc | tar xvf -
amrestore: 1: skipping pdc._home.20080917.3.01
amrestore: 2: skipping pdc._home.20080917.3.02
amrestore: 3: skipping pdc._home.20080917.3.03
amrestore: 4: restoring pdc._etc.20080917.3.1
amrestore: 5: skipping pdc._var_lib.20080917.3.2
amrestore: 6: skipping sgbd._opt.20080917.3.3
amrestore: 7: reached end of tape: date 20080918

Il y a un petit truc pour aller plus rapidement, si au préalable vous aviez lancé le listing de la bande (cf commande correspondante). Amrestore lance la recherche de l’emplacement des données sur la bande avant d’effectuer la restauration et ce processus peut prendre énormément de temps si vous avez beaucoup de données sauvegardées. Le truc consiste alors à se placer directement à l’endroit des données à restaurer, pour cela il suffit d’avoir le numéro du morceau correspondant à cet emplacement sur la bande (n° de chunk).

Exemple avec mon disque “etc” du serveur “pdc”:

thomas@cryonux:~$ mt -f /dev/nst0 fsf 4

4 correspondant donc au morceau où se trouve “etc”

amrestore: 4: restoring pdc._etc.20080917.3.1
amrestore: 5: skipping pdc._var_lib.20080917.3.2
amrestore: 6: skipping sgbd._opt.20080917.3.3
amrestore: 7: reached end of tape: date 20080918

Il ne reste alors plus qu’à décompresser l’archive restaurée pdc._etc.20080917.3.1 avec tar -xzvf

A noter, Amanda n’utilise pas de format propriétaire pour la sauvegarde de vos fichiers. Si votre serveur de sauvegarde est en rade et que vous devez faire une restauration en urgence, vous pouvez tout simplement utiliser les outils Linux pour restaurer vos bandes. Certes, ça va être du “tout ou rien” mais ce n’est pas le moment de chipoter !

En utilisant dd on va pouvoir restaurer tout une bande en un seul coup:

thomas@cryonux:~$ dd  if=/dev/nst0 bs=32k count=1
thomas@cryonux:~$ dd if=/dev/nst0 bs=32k skip=1 | gunzip | tar xvf

Comments (0)

Tags: , ,

Activer automatiquement le verrouillage numérique sous GDM (Ubuntu)

Posted on 20 May 2010 by Thomas Ginestet

Je n’ai jamais compris pourquoi cette option n’était pas activée par défaut, m’enfin voici comment l’activer dès l’invit de connexion de GDM:

Dans le fichier /etc/gdm/Init/Default, placer les lignes suivantes:

if [ -x /usr/bin/numlockx ] ; then
/usr/bin/numlockx on
fi

It works !

Comments (0)

Tags: , , ,

Tester les performances de son disque dur

Posted on 20 May 2010 by Thomas Ginestet

Sous Linux, il existe plusieurs outils afin de tester les performances de votre disque dur voire même de les améliorer:

- HDPARM: J’ai pu lire un peu partout que hdparm ne fonctionne qu’avec les disques IDE. Pourtant le man est formel: “hdparm provides a command line interface to various hard disk ioctls supported by the Linux SATA/PATA/SAS “libata” subsystem and the older IDE driver subsystem.

En gros ça fonctionne aussi avec les disques SATA (sauf condition citée plus bas…) et il suffit de tester pour s’en convaincre ! La preuve avec une tripotée d’informations sur mon disque SATA:

thomas@saturne:~$ sudo hdparm -I /dev/sdb2
/dev/sdb2:
ATA device, with  non-removable media
Model Number:       WDC WD2500AAJS-75VWA0
Serial Number:      WD-WCARZ0203751
Firmware Revision:  12.01B02
Transport:           Serial, SATA 1.0a, SATA II Extensions, SATA Rev 2.5
Standards:
Supported: 8 7 6 5
Likely used: 8
Configuration:
Logical         max     current
cylinders       16383    16383
heads           16      16
sectors/track    63      63
--
CHS current addressable sectors:    16514064
LBA    user addressable sectors:  268435455
LBA48  user addressable sectors:  488281250
device size  with M = 1024*1024:      238418 MBytes
device size with M =  1000*1000:      250000 MBytes (250 GB)
Capabilities:
LBA,  IORDY(can be disabled)
Queue depth: 32
Standby  timer values: spec'd by Standard, with device specific minimum
R/W multiple sector transfer: Max = 16  Current = 8
Recommended acoustic management value: 128, current value: 128
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6
Cycle time: min=120ns recommended=120ns
PIO:  pio0 pio1 pio2 pio3 pio4
Cycle time: no flow  control=120ns  IORDY flow control=120ns
Commands/features:
Enabled Supported:
*    SMART feature set
Security Mode feature set
*    Power Management  feature set
*    Write cache
*    Look-ahead
*    Host Protected Area feature set
*     WRITE_BUFFER command
*    READ_BUFFER command
*    NOP cmd
*    DOWNLOAD_MICROCODE
Power-Up In Standby feature set
*    SET_FEATURES required  to spinup after power up
SET_MAX security extension
*    Automatic Acoustic Management feature set
*     48-bit Address feature set
*    Device Configuration  Overlay feature set
*    Mandatory FLUSH_CACHE
*    FLUSH_CACHE_EXT
*    SMART error logging
*    SMART self-test
*    General Purpose Logging  feature set
*    WRITE_{DMA|MULTIPLE}_FUA_EXT
*    64-bit World wide name
*    Segmented  DOWNLOAD_MICROCODE
*    SATA-I signaling speed (1.5Gb/s)
*    SATA-II signaling speed (3.0Gb/s)
*     Native Command Queueing (NCQ)
*    Phy event counters
DMA Setup Auto-Activate optimization
*     Software settings preservation
*    SMART Command  Transport (SCT) feature set
*    SCT Long Sector Access  (AC1)
*    SCT LBA Segment Access (AC2)
*     SCT Error Recovery Control (AC3)
*    SCT Features  Control (AC4)
*    SCT Data Tables (AC5)
unknown 206[12]
unknown 206[13]
Security:
Master password revision code = 65534
supported
not     enabled
not     locked
frozen
not     expired: security count
supported: enhanced erase
66min for SECURITY ERASE UNIT.  66min for ENHANCED SECURITY ERASE UNIT.
Checksum: correct

Effectuons maintenant un test de rapidité en lecture sur ce disque (-t) ainsi que sur son cache (-T):

thomas@saturne:~$ sudo hdparm -tT /dev/sdb2
/dev/sdb2:
Timing cached reads:    6818 MB in  2.00 seconds = 3411.63 MB/sec
Timing buffered disk  reads:  228 MB in  3.02 seconds =  75.37 MB/sec

hdparm vous permet aussi d’effectuer des modifications de configuration de votre disque dur, dont certaines plus ou moins risquées. Vous pouvez par exemple:

- Activer , modifier ou désactiver le DMA (Direct Memory Access) avec -d.

- Modifier le paramètrage de l’AAM (Automatic Acoustic Management) avec -M afin d’améliorer les temps d’accès disque ou à l’inverse d’avoir un disque plus silencieux mais des temps d’accès plus important.

- Démonter un disque à chaud avec -Y.

- Réinitialiser un disque avec -w (à bien réfléchir avant).

- Modifier l’APM (Advanced Power Management) avec -B.

Il est également possible de modifier la vitesse de votre lecteur CD avec l’option -E bien que je ne vois pas réellement l’intérêt d’une telle option…après tout les lecteurs sont censés gérer automatiquement cela.

NB: pour rendre vos modifications définitives, vous devrez les paramétrer dans le fichier /etc/hdparm.conf

A noter que si vous disposez d’un disque SATA et qu’il n’apparaît pas en tant que disque IDE, l’utilisation de sdparm plutôt que de hdparm va plus ou moins s’imposer. Le problème c’est que cet utilitaire pour disque SCSl est moins complet que l’autre, essayez donc de déterminer la vitesse de votre disque…

- BONNIE++: Un programme centré sur le benchmark de vos disques. Il n’est pas possible comme avec hdparm de modifier quoi que ce soit dans la configuration de votre disque.

Bonnie++ fonctionne sur tous les types de disques durs et fourni des résultats plus poussés, mais vraiment barbare à décoder !

Voyez par vous même les résultats par défaut de lecture / écriture sur le même disque SATA que précédemment:

Version  1.03        ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine         Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
saturne          4G 42024  69 44121   9 22591   5 51857  80 55822   6 139.7   0
------Sequential Create------ --------Random  Create--------
-Create-- --Read--- -Delete--  -Create-- --Read--- -Delete--
files  /sec %CP  /sec %CP   /sec %CP  /sec %CP  /sec %CP  /sec %CP
16 +++++  +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++
saturne,4G,42024,69,44121,9,22591,5,51857,80,55822,6,139.7,0,16,+++++,+++,+++++,
+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++

Quelques petites explications sur cette sortie, le benchmark étant décomposé en plusieurs parties:

- sequential output et sequential input: débit en lecture / écriture octet par octet ou bloc par bloc d’un fichier de 4Go. Affichage de la consommation CPU.

- random seek: temps d’accès et charge CPU.

- sequential create: écriture séquentielle de n fichiers et charge CPU.

- random create: écriture aléatoire de n fichiers et charge CPU.

Il est bien évidemment possible d’affiner votre benchmark en modifiant par exemple la taille du fichier généré pour le test avec -s, la taille de la RAM à utiliser avec -r ou encore la désactivation du buffer avec -b.

Pour mettre en forme vos résultats, vous pouvez utilisez deux scripts perl fournis avec bonnie++: bon_csv2html afin d’exporter les résultats en html et bon_csv2txt afin d’exporter les résultats en …

Voici comment l’utiliser:

thomas@saturne:~$ echo saturne,4G,42024,69,44121,9,22591,5,51857,80,55822,6,139.7,0,16,+++++,+++,+++++,
+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++ |  bon_csv2html >> bonnie_results.html

Il ne reste plus qu’à ouvrir bonnie_results.html dans un navigateur pour voir s’afficher les résultats de vos différents benchmarks dans un “joli” tableau.

Comments (0)

Tags: , , , ,

Sauvegarder et restaurer sa base OpenLDAP

Posted on 19 May 2010 by Thomas Ginestet

Sauvegarder sa base openLDAP ? Rien de plus simple si l’on prend un minimum de précautions.

Bien que vous puissiez faire cela à chaud, il est quand même conseillé de couper le service avant d’effectuer la sauvegarde. Si vous ne pouvez vous le permettre, vous pouvez également passer le démon slapd en lecture seule afin de ne pas corrompre la base sur une mauvaise manip.
Pour cela il suffit de rajouter dans le fichier de configuration slapd.conf la directive “readonly on” et de relancer le démon slapd.

Sauvegarde de la base:
- Couper le démon slapd (et vérifier qu’il se soit bien arrêté…).

- Ouvrir le fichier de configuration slapd.conf et noter le chemin indiqué par la directive “directory“: c’est le chemin d’accès à votre base LDAP.

- Dans ce répertoire, sauvegarder la totalité des fichiers .bdb qui vous permettront en cas de mauvaise manipulation de retrouver votre base dans son ancien état (il suffira alors de replacer ces fichiers dans le répertoire et de relancer le démon slapd).

- Lancer la commande:

thomas@cryonux:~$ slapcat -n 1 -c /oùvousvoulez/backup.ldif

-n spécifie le nombre de base LDAP dont vous disposez (correspond au nombre de directives “directory” de votre slapd.conf) et -c faisant abstraction des erreurs potentiellement rencontrées.

- Relancer le démon slapd et vérifier que tout fonctionne correctement.

Importation de la sauvegarde:

- Couper le démon slapd (et vérifier qu’il se soit bien arrêté…).

- Dans le répertoire indiqué par “directory“, sauvegarder les fichiers .bdb puis supprimer la totalité des fichiers contenu dans ce répertoire.

- Lancer la commande:

thomas@cryonux:~$ slapadd -n 1 -l /oùvousavezsauvegardé/backup.ldif

- Vérifier que les fichiers .bdb aient bien été reconstruits dans le répertoire indiqué par “directory” et qu’ils aient les bons droits d’accès (lecture et écriture seulement pour le propriétaire de la base).

- Relancer le démon slapd et vérifier que tout fonctionne correctement.

Comments (0)

Tags: , , , ,

Tuner l’utilisation de la RAM avec la variable swappiness

Posted on 19 May 2010 by Thomas Ginestet

Il est erroné de penser que sous Linux, une machine va utiliser toute la RAM disponible avant de commencer à swapper.

La variable swappiness permet de faire varier l’utilisation de la mémoire vive par rapport à la swap. Par défaut, cette variable est fixée à 60 sur une échelle qui va de 0 à 100.

Plus cette valeur est élevée plus le système va avoir tendance à swapper au détriment de l’utilisation de la mémoire vive.

Réduire cette valeur peut améliorer considérablement les performances du système, je vous laisse le soin de tester cela avec les commandes suivantes:

thomas@cryonux:~$ cat /proc/sys/vm/swappiness

ou:

thomas@cryonux:~$ sysctl vm.swappiness

vous permettra de voir quelle est la valeur en cours de swappiness.

thomas@cryonux:~$ sysctl -w vm.swappiness=10

va par exemple fixer la valeur de 10 à swappiness.

Si vous voulez que cette modification soit conservée même après un redémarrage de la machine, il vous faudra la renseigner dans le fichier /etc/sysctl.conf en y insérant la directive suivante:

thomas@cryonux:~$ vm.swappiness = 10

photo: jscreationzs/FreeDigitalPhotos.net

Comments (0)

Tags: , , ,

Modifier le message de bienvenue lors d’une connexion distante

Posted on 18 May 2010 by Thomas Ginestet

Afin de modifier le message de bienvenue qui apparaît lorsque par exemple vous vous connectez en ssh sur une machine Linux, il ne suffit pas de modifier le fichier /etc/motd.

En effet, celui-ci n’est qu’un lien symbolique vers /var/run/motd. Il faut en fait modifier /etc/motd.tail puis ensuite se reconnecter ou lancer la commande suivante pour que la modification soit immédiatement prise en compte:

thomas@cryonux:~$ /etc/init.d/bootmisc.sh start

Comments (0)

Tags: , , , ,

Créer ou supprimer les liens vers les scripts d’initialisation (Ubuntu)

Posted on 16 May 2010 by Thomas Ginestet

Il existe un moyen de gérer efficacement les scripts d’initialisation placés dans /etc/init.d/ .
update-rc.d vous permet de créer ou supprimer les liens vers les différents runlevels des scripts placés au préalable dans /etc/init.d/
- Pour créer un lien vers tous les runlevels on pourra utiliser la commande suivante:

thomas@cryonux:~$ update-rc.d monscript defaults

Ce qui va avoir pour conséquence la création d’un lien de monscript dans les runlevels 2,3,4,5 pour le lancer et 0,1,6 pour le stopper. La priorité par défaut est de 20.
- Pour supprimer un lien dans tous les runlevels on pourra utiliser la commande suivante:

thomas@cryonux:~$ update-rc.d monscript remove

Ce qui va avoir pour conséquence de supprimer tous les liens d’initialisation du script dans les différents runlevels si et seulement si le script monscript n’existe plus dans /etc/init.d/. Si l’on souhaite supprimer les liens tout en conservant le script dans /etc/init.d/ il suffit alors de rajouter l’argument -f comme cela:

thomas@cryonux:~$ update-rc.d -f monscript remove

Il est bien sûr possible d’être beaucoup plus fin selon les besoins. Vous pouvez par exemple choisir de ne créer les liens de votre script que vers certains runlevels et avec une priorité bien précise:

thomas@cryonux:~$ update-rc.d monscript start 30 5 . stop 30 0 1 6 .

Dans ce cas là, monscript sera uniquement lancé dans le runlevel 5 et avec une priorité de 30. Il sera stoppé dans les runlevels 0,1,6 avec une priorité de 30 également.
Si vous n’êtes pas bien certain de ce que vous faîtes, vous pouvez toujours lancer une simulation afin d’éviter la bourde… Pour cela, il est possible d’utiliser l’argument -n à votre commande qui affichera ce qu’aurait fait update-rc.d. Imaginons que l’on souhaite simuler la suppression des liens du script /etc/init.d/apache2:

thomas@cryonux:~$ update-rc.d -n -f apache2 remove
Removing any system startup links for /etc/init.d/apache2 ...
/etc/rc0.d/K09apache2
/etc/rc1.d/K09apache2
/etc/rc2.d/S91apache2
/etc/rc3.d/S91apache2
/etc/rc4.d/S91apache2
/etc/rc5.d/S91apache2
/etc/rc6.d/K09apache2

Allez maintenant vérifier dans les différents répertoires /etc/rcX.d/ et vous pourrez constater que les liens vers apache2 sont toujours présents.

Comments (0)

Tags: , , , , , , , , , , ,

Les options de fstab

Posted on 15 May 2010 by Thomas Ginestet

Le 4ème champs de fstab permet de définir les options associées à chaque système de fichiers déclaré.

Il y a les options communes à l’ensemble des systèmes de fichiers et d’autres propres à certains types bien spécifiques comme par exemple le fat ou encore l’iso 9660 pour le montage d’un lecteur cd/dvd.

Les options communes à tous les systèmes de fichiers se résument à cela:

ro / rw: monte le système de fichiers en lecture seule / en lecture écriture.

auto / noauto: monte automatiquement le système de fichiers au démarrage / ne le monte pas automatiquement au démarrage.

sync / async: les entrées/sorties sur le système de fichiers se feront en mode synchrone / se feront en mode asynchrone.

user / nouser: n’importe quel utilisateur pourra monter le système de fichiers / seul l’utilisateur root pourra monter le système de fichiers.

suid / nosuid: permet l’utilisation des bits setuid et setgid sur le système de fichiers / ne permet pas de les utiliser sur le système de fichiers.

exec / noexec: permet l’exécution de fichiers binaires sur le système de fichiers / ne permet pas de les exécuter sur le système de fichiers.

dev / nodev: permet l’interprétation des périphériques en mode caractères et en mode blocs spéciaux sur le système de fichiers / ne permet pas de les interpréter sur le système de fichiers.

defaults: cette option regroupe en fait les options rw,auto,async,nouser,suid,exec,dev. C’est un peu un faux ami à mon goût puisqu’on peut être tenté de croire que c’est l’option idéale si on ne sait pas trop comment configurer son fstab. En fait, c’est un peu comme d’habitude, tout dépend du système de fichiers à monter. Par exemple pour monter une clef usb, on pourrait très bien le faire plutôt en mode synchrone afin d’éviter les erreurs d’écritures pour ceux qui comme moi la retire à l’arrache.

D’autres options intéressantes existent, notamment celles capables de nous faire gagner un peu de perf:

noatime: permet de ne pas modifier la date d’un fichier quand celui-ci est uniquement lu.

nodiratime: même principe que pour noatime, mais cette fois sur un répertoire.

relatime: met à jour uniquement la date d’accès si elle est plus vieille que la date de modification ou de changement.

Le revers de la médaille c’est que du coup vous avez moins de traces sur les manipulations de vos fichiers et répertoires, ce qui peut être problématique en entreprise.

Pour les admins système, d’autres options sont également intéressantes au niveau de la gestion des utilisateurs (nécessitent que le support soit activé dans le noyau):

acl: activation des acl sur le système de fichiers.

usrquota: activation des quotas utilisateurs sur le système de fichiers.

grpquota: activation des quotas de groupes sur le système de fichiers.

Comments (0)