Ouh la je le sens mal. A vu de nez (je n'ai pas mieux) je dirais un problème d'abi.
Ce qui veut dire qu'il faudrait, plutot que de récupérer une libstdc++ et de l'installer telle quelle, en récupérer les sources et la recompiler.
Pam c'est le système d'authentification utilisé par tous les trucs qui en ont besoin (gdm, kdm, login, ssh ...).
Il se configure dans /etc/pam.d
Il existe un paquet pam-umask avec le module pam kivabien permettant de forcer l'umask de toute personne qui se connecte.
En effet, iptables est stateful (autant que possible), mais il ne fait pas ce qu'on ne lui dit pas de faire.
Le paquets recu par le firewall seront bien retransformé dans l'autre sens lors du retour. Sauf que là il n'y a pas de retour puisqu'on ne lui a pas dit de modifier l'adresse de retour pour qu'elle passe par lui.
Le problème est en quelque sorte sur la machine de destination. Un autre solution serait de changer la table de routage de la machine de destination A pour qu'elle passe par B à chaque fois. Mais ca pourrait être genant pour les autres connexions.
Deux choses
- le [OR] doit apparaitre entre 2 conditions (décaler les OR vers le haut)
- tu as une erreur de logique tes conditions sont négatives, donc tu ne veux pas un ou mais un et : si c'est pas A ET si c'est pas B alors il n'est pas autorisé
Je ne connais pas bien ce soft, mais je dirais bien que ton MAILDIR est évalué pendant la lecture de la config et pas pendant l'exécution. un MAILDIRPATH à ./Maildir ou quelque chose du genre doit fonctionner un peu mieux.
C'est là ou ça ne marche plus. Le recvmsg ne termine pas !
OK, j'avais mal lu.
Oui, c'est le but.
Non, tu ne protège pas l'accès à ta socket dans ton cas, je ne connais pas assez bien le noyau pour savoir si c'est sensé fonctionner comme tu veux.
Car recvmsg est un appel bloquant, donc pour l'annuler, un close sur la socket me semblait un bonne idée.
Tu ne peux pas arrêter un appel bloquant avec un close. Il te faut un signal pour ça (et encore pour recvmsg je ne sais pas).
En fait tu est sensé faire un select dans ton while avant d'appeler recvmsg pour détecter les conditions d'arrêt.
Commençons par les threads : tu ferme la socket pendant sont utilisation par un autre thread. Il te faudrait un mutex dessus pour faire propre.
je pense que ton problème est l'utilisation de shutdown. C'est une fonction servant à fermer une connexion, or les socket raw sont des socket non connectées.
Ce que tu peux faire c'est de la fermer avec un close, auquel cas recvmsg te retournera une erreur, ce qui est normal.
Pour ce qui est de l'avenir, c'est probablement union mount qui sera intégré au noyau. En effet, celui-ci fonctionne au au niveau du VFS et non pas au dessus des FS.
Ca a certains avantages, mais nécessite un patch supplémentaire pour que les fs supportent la suppression d'un fichier qu'ils ne contiennent pas.
Donc ce n'est pas pour tout de suite, mais c'est au programme.
Oui je parle d'espace disque. Comme dit NeoX ca s'estime.
A une différence près, ARCHIVE permettant la compression, je te conseille de faire quelques tests pour estimer en plus le ratio de compression.
Aussi n'oublie pas de penser ta base pour la rotation, genre une table par jour.
Une contrainte de taille de ta base oui :) il faut prévoir assez d'espace pour accueillir les logs.
Ensuite, il y a une contrainte de vitesse, surtout s'il y a des pics. Il faut faire en sorte que la machine qui héberge la base de données et le réseau soient suffisamment rapides pour gérer le nombre de requêtes.
[^] # Re: changer la libstdc
Posté par peck (site web personnel) . En réponse au message question de libstdc++. Évalué à 2.
Ce qui veut dire qu'il faudrait, plutot que de récupérer une libstdc++ et de l'installer telle quelle, en récupérer les sources et la recompiler.
[^] # Re: changer la libstdc
Posté par peck (site web personnel) . En réponse au message question de libstdc++. Évalué à 2.
ldd /usr/bin/vbox
Cela te dira ce que cherche le binaire comme bibliothèque pour fonctionner.
Sinon pour spécifier une bibliothèque avant le chargement, il existe la variable LD_PRELOAD.
# Bizarre
Posté par peck (site web personnel) . En réponse au message question de libstdc++. Évalué à 3.
Tu ne peux pas faire un lien vers la 5, c'est garanti que ca ne marchera pas, les numéro de version majeur sont là à cause de ca.
Si tu peux trouver une version 6, tu peux la mettre a coté de la 5 dans /usr/lib ca ne posera pas de problème.
[^] # Re: chmod
Posté par peck (site web personnel) . En réponse au message UMASK et droits pour un groupe d'utilisateur par NFS?. Évalué à 3.
[^] # Re: Autres solutions
Posté par peck (site web personnel) . En réponse au message UMASK et droits pour un groupe d'utilisateur par NFS?. Évalué à 2.
Il se configure dans /etc/pam.d
Il existe un paquet pam-umask avec le module pam kivabien permettant de forcer l'umask de toute personne qui se connecte.
[^] # Re: Autres solutions
Posté par peck (site web personnel) . En réponse au message UMASK et droits pour un groupe d'utilisateur par NFS?. Évalué à 2.
Attention toutefois, rien n'empêche un utilisateur de changer son umask.
# Autres solutions
Posté par peck (site web personnel) . En réponse au message UMASK et droits pour un groupe d'utilisateur par NFS?. Évalué à 2.
ou
- Demander à chaque utilisateur de faire un chmod à chaque nouveau fichier
ou
- utiliser les acl
[^] # Re: Normal
Posté par peck (site web personnel) . En réponse au message iptables port forwarding. Évalué à 3.
Le paquets recu par le firewall seront bien retransformé dans l'autre sens lors du retour. Sauf que là il n'y a pas de retour puisqu'on ne lui a pas dit de modifier l'adresse de retour pour qu'elle passe par lui.
Le problème est en quelque sorte sur la machine de destination. Un autre solution serait de changer la table de routage de la machine de destination A pour qu'elle passe par B à chaque fois. Mais ca pourrait être genant pour les autres connexions.
# Normal
Posté par peck (site web personnel) . En réponse au message iptables port forwarding. Évalué à 2.
A voir le paquet, traite le demande, puis renvoit le paquet à la machine d'origine.
La machine d'origine ne connait pas A et ignore le paquet.
Il faut donc que tu fasse croire à A que le paquet vient de B -> du SNAT en plus en sortie, mais attention.
# Mod_rewrite
Posté par peck (site web personnel) . En réponse au message Redirection Apache2 par ip. Évalué à 2.
- le [OR] doit apparaitre entre 2 conditions (décaler les OR vers le haut)
- tu as une erreur de logique tes conditions sont négatives, donc tu ne veux pas un ou mais un et : si c'est pas A ET si c'est pas B alors il n'est pas autorisé
# Greedy
Posté par peck (site web personnel) . En réponse au message Question sed. Évalué à 6.
# pEnsant
Posté par peck (site web personnel) . En réponse au message postfix + courier-imap + courier-pop. Évalué à 2.
# Chémoicamarche
Posté par peck (site web personnel) . En réponse au message question regex. Évalué à 1.
# Fs dédié
Posté par peck (site web personnel) . En réponse au message Call back sur un dossier du fs /proc. Évalué à 2.
# Et la bonne réponse est ...
Posté par peck (site web personnel) . En réponse au message Se mettre en attente sur le changement de contenu d'un répertoire. Évalué à 3.
Il existe des commandes inotifywait, un cron inotify et une api système pour l'appeler.
[^] # Re: Threads
Posté par peck (site web personnel) . En réponse au message Raw socket (BUG). Évalué à 1.
OK, j'avais mal lu.
Oui, c'est le but.
Non, tu ne protège pas l'accès à ta socket dans ton cas, je ne connais pas assez bien le noyau pour savoir si c'est sensé fonctionner comme tu veux.
Car recvmsg est un appel bloquant, donc pour l'annuler, un close sur la socket me semblait un bonne idée.
Tu ne peux pas arrêter un appel bloquant avec un close. Il te faut un signal pour ça (et encore pour recvmsg je ne sais pas).
En fait tu est sensé faire un select dans ton while avant d'appeler recvmsg pour détecter les conditions d'arrêt.
# LARTC
Posté par peck (site web personnel) . En réponse au message Deux accès internet. Évalué à 4.
# Threads
Posté par peck (site web personnel) . En réponse au message Raw socket (BUG). Évalué à 3.
je pense que ton problème est l'utilisation de shutdown. C'est une fonction servant à fermer une connexion, or les socket raw sont des socket non connectées.
Ce que tu peux faire c'est de la fermer avec un close, auquel cas recvmsg te retournera une erreur, ce qui est normal.
[^] # Re: Union Mount
Posté par peck (site web personnel) . En réponse au message status du projet unionfs. Évalué à 2.
# Union Mount
Posté par peck (site web personnel) . En réponse au message status du projet unionfs. Évalué à 2.
Pour ce qui est de l'avenir, c'est probablement union mount qui sera intégré au noyau. En effet, celui-ci fonctionne au au niveau du VFS et non pas au dessus des FS.
Ca a certains avantages, mais nécessite un patch supplémentaire pour que les fs supportent la suppression d'un fichier qu'ils ne contiennent pas.
Donc ce n'est pas pour tout de suite, mais c'est au programme.
# Screen
Posté par peck (site web personnel) . En réponse au message dual head. Évalué à 2.
Il manque une ligne Screen 1.
[^] # Re: No problemo
Posté par peck (site web personnel) . En réponse au message Redirection de logs sous MySql via Syslog-ng. Évalué à 0.
Acquiring target ...
[^] # Re: Logs
Posté par peck (site web personnel) . En réponse au message Redirection de logs sous MySql via Syslog-ng. Évalué à 1.
[^] # Re: Logs
Posté par peck (site web personnel) . En réponse au message Redirection de logs sous MySql via Syslog-ng. Évalué à 2.
A une différence près, ARCHIVE permettant la compression, je te conseille de faire quelques tests pour estimer en plus le ratio de compression.
Aussi n'oublie pas de penser ta base pour la rotation, genre une table par jour.
# Logs
Posté par peck (site web personnel) . En réponse au message Redirection de logs sous MySql via Syslog-ng. Évalué à 2.
Ensuite, il y a une contrainte de vitesse, surtout s'il y a des pics. Il faut faire en sorte que la machine qui héberge la base de données et le réseau soient suffisamment rapides pour gérer le nombre de requêtes.
Pour stocker des logs (qui ne seront donc pas modifiés) le moteur de base de données archive ( http://dev.mysql.com/doc/refman/5.0/fr/archive-storage-engin(...) ) de mysql est adapté. Il compresse les données mais les laisse en lecture seule.
Pour ton projet tu n'as pas besoin de apache ou php, LAMP c'est lesystème de base d'un serveur web. Ce qui n'est pas ton cas.