Catégorie : linux

Linux vsftp : mémo ajout d'un utilisateur

Voilà, je perds toujours un temps fou à rechercher comment ajouter un utilisateur pour qu’il se connecte sur le serveur ftp.

Si vous n’y arrivez pas, lisez le fichier de configuration :
/etc/vsftpd.conf
Dedans il y aura beaucoup d’informations utiles.

Voilà le résumé pour ajouter un utilisateur sur le serveur vsftp :

  1. Créer l’utilisateur. Par exemple :
    noeunoeu
  2. Changer son mot de passe :
    passwd noeunoeu
  3. L’ajouter à la fin des fichiers suivants :
    • /etc/vsftpd/chroot_list
    • /etc/vsftpd/user_list

Et voilà tout devrait fonctionner !

Linux : mount permanent avec mot de passe (mémo simple)

mount donne la possibilité de faire croire qu’un répertoire de Linux existe bel et bien alors que ce n’est qu’un lien vers un autre répertoire.

Si vous voulez faire :

  • un montage qui reste, même après redémarrage de l’ordinateur ;
  • un lien vers un répertoire partagé Windows ;
  • préciser dès le début le nom d’utilisateur et le mot de passe Windows.

Voici la solution (je mets plusieurs couleurs pour bien différencier les paramètres) :
mount -t smbfs //192.168.0.85/www /root/test -o auto,username=macaille,password=bienrotie
Traduction simplifiée de l’ordre qui suit : « lorsque quelqu’un voudra accéder au répertoire /root/test, c’est en réalité le répertoire partagé www de l’ordinateur 192.168.0.85. Si on demande un utilisateur/mot de passe c’est macaille/bienrotie (quelle subtilité !) (options username/password)). Enfin, s’il redémarre, refaire automatiquement le montage : c’est l’option auto« .

Librairie Apr : tutoriel : mp-sample.c

Note

Regardez le tutoriel au complet, en Anglais, ici.
Vous trouverez tout ce tutoriel séparé en plusieurs pages ici.
Ce fichier est l’exemple le plus simple pour mettre en oeuvre les fonctions apr_xx
Il vient d’ici.

/**
 * apr tutorial sample code
 * http://dev.ariel-networks.com/apr/
 */
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

#include <apr_general.h>
#include <apr_pools.h>

#define MEM_ALLOC_SIZE		1024

/**
 * exemple de pool mémoire
 * @remark Vérif. des erreurs omise
 */
int main(int argc, const char *argv[])
{
    apr_status_t rv;
    apr_pool_t *mp;
    char *buf1;
    char *buf2;

    /* initialisation par processus (per-process) */
    rv = apr_initialize();
    if (rv != APR_SUCCESS) {
        assert(0);
        return -1;
    }

    /* créer un pool mémoire. */
    apr_pool_create(&mp, NULL);

    /* allouer de la mémoire via le pool */
    buf1 = apr_palloc(mp, MEM_ALLOC_SIZE);
    buf2 = apr_palloc(mp, MEM_ALLOC_SIZE);

    /* détruire le pool mémoire
      (ce qui était alloué au dessus sera
      automatiquement libéré) */
    apr_pool_destroy(mp);

    apr_terminate();
    return 0;
}

Linux : Cron et cronjob

Pour éditer la table cron de l’utilisateur en cours avec vi.

crontab -e

Ensuite pour un déclenchement chaque jour à minuit d’une tâche :

# Declenchement du script creation_zip chaque jour a minuit
0 0 * * * /xx/xx/nomduscript [params] > /dev/null 2>&1

Vous vous demandez peut-être ce que signifie la fin des paramètres que vous voyez juste au dessus :

/dev/null 2>&1

Cela signifie rediriger la sortie d’erreur (2) vers la sortie normale (1) : 2>&1 et rediriger la totale résultant vers la poubelle (« /dev/null« ).

Zeemoz – dev : entrées terminées

Ca y est maintenant on peut entrer tout ça sans problème, ça fonctionne :

0 => marseille
1 => Marseille
2 => MARSEILLE
3 => abbeville st lucien
4 => abbeville saint lucien
5 => abbeville-saint-lucien
6 => aix en provence entre 200000 et 500000 euros
7 => aix en provence
8 => entre 200000 et 500000 euros
9 => 13 entre 200000 et 500000 euros
10 => 13013 entre 200000 et 500000 euros
11 => 13013 entre 200000 et 500000euros
12 => 13013 entre 200000 et 500000
13 => loyer entre 200000 et 500000
14 => prix entre 200000 et 500000

Je crois que je vais recommencer à être un peu fatigué. Bonne fin de nuit à tout le monde…

Linux : faire l'ISO d'un CD

  1. Il faut insérer le CD dans le lecteur ;
  2. Vérifier avec mount qu’il n’a pas été monté automatiquement, sinon il faut le démonter
    (umount /dev/cdrom) ;
  3. Ensuite se mettre dans une partition qui a au moins l’espace requis de libre
    (vérifier avec df -kh) ;
  4. Ensuite, taper l’ordre :
    dd if=/dev/cdrom of=/toto/cd.iso ;
  5. S’il faut le copier sur un site distant :
    scp /toto/cd.iso 192.xx.xx.xx:/sources .

Zeemoz : berkeleydb : linké avec la librairie !

J’ai trouvé comment linker les exemples de berkeley DB avec la librairie :
Lors de la compilation, l’utilitaire de lien (ld) va chercher les toutes dernières librairies qu’il connait et les lie à l’executable. Seulement, quand il ne connait pas les librairies, il faut les ajouter.
L’opération est simple : il faut lire le fichier
/etc/ld.so.conf
Sur une distro Debian, il ne contient que cette ligne : include /etc/ld.so.conf.d/*.conf
C’est donc dans le répertoire /etc/ld.so.conf.d/ qu’il nous faut créer un fichier avec un nom explicite, qui spécifie où le linker doit aussi aller chercher les librairies.
Dans mon cas j’ai crée un fichier nommé /etc/ld.so.conf.d/db.4.5.conf dans lequel j’ai mis :
# creation olivier pons 2 mai 2007
/home/sources/db-4.5.20/build_unix/.libs
Ensuite, il suffit juste de dire au linker de recharger son cache :
ldconfig
Pour plus d’infos : man ldconfig !

Linux : configurer screen

Le fichier de configuration qui est chargé pour tout le monde est /etc/screenrc
Le fichier de configuration personnalisé est $HOME/.screenrc
Voilà un exemple qui m’a pris du temps avant de réussir à le mettre en place :
# -------------------------------------------
# Bindings de compilation

# -------------------------------------------
# Olivier Pons / 15 avril 2008
bind -c compil x exec /bin/sh -c "cd /sources/zeemoz/search/ && modsearch_install.sh"
bindkey "^x" command -c compil

Traduction des commandes précédentes :

  1. Tu lies la touche x de la classe compil à l’ordre complet :
    exec /bin/sh -c "cd /sources/zeemoz/search/ && modsearch_install.sh"
  2. Si on fait « ctrl x », cela veut dire qu’il faut se mettre en attente d’une touche pour exécuter ce qui concerne la classe compil

Dit autrement :

  1. Définir tous les ordres qu’on veut que screen exécute via un raccourci clavier ;
  2. Les associer à une touche simple ;
  3. Les associer à une classe ;
  4. Définir la classe selon un ctrl quelque chose.