IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Discussion :

Modification de la routine CHROOT


Sujet :

Sécurité

  1. #1
    Membre actif Avatar de 3logy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2007
    Messages : 280
    Points : 222
    Points
    222
    Par défaut Modification de la routine CHROOT
    Bonjour / Bonsoir,

    j'ai beaucoup de questions à poser mais je vais me restreindre au minimum :

    1. Qu'est que CHROOT???
    2. Comment peut on modifier la routine CHROOT(par exemple pour presenter l'heure de connection d'un utilisateur lorsque celui ecrit dans un fichier log) ???

    Desole si je pose des questions noobs.

    Merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Recherche du travail
    Inscrit en
    Août 2004
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Recherche du travail

    Informations forums :
    Inscription : Août 2004
    Messages : 561
    Points : 1 320
    Points
    1 320
    Par défaut
    1. Qu'est que CHROOT???
    C'est de la mauvaise foi... !!!

    http://fr.wikipedia.org/wiki/Chroot

    2. Comment peut on modifier la routine CHROOT(par exemple pour presenter l'heure de connection d'un utilisateur lorsque celui ecrit dans un fichier log) ???
    Je ne vois pas l'intérêt de modifié la routine de chroot pour ton exemple... chroot ne fait que croire à un progamme une autre partition racine que celle du système.

    Une solution parmis d'autre : Créer un programme. Il aura la charge de vérifié le fichier de log et de lancé le programme que tu veux chrooté.
    Avoir un regard neutre sur notre vie dénuée de sens, c'est la voir tel un ignorant
    ------------------------------------------------------------------------------------------------------

  3. #3
    Membre actif Avatar de 3logy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2007
    Messages : 280
    Points : 222
    Points
    222
    Par défaut
    Citation Envoyé par Senaku-seishin Voir le message
    C'est de la mauvaise foi... !!!

    http://fr.wikipedia.org/wiki/Chroot
    Non c'est pas de la mauvaise foi!! je t'avoue j'ai lu mais je voulais une explication un peu plus technique et un exemple quoi!!!

    Je ne vois pas l'intérêt de modifié la routine de chroot pour ton exemple... chroot ne fait que croire à un progamme une autre partition racine que celle du système.
    Je ne m'arrete pas a cet exemple... c'est juste le commencement pour comprendre le fonctionnement quoi!!

    Une solution parmis d'autre : Créer un programme. Il aura la charge de vérifié le fichier de log et de lancé le programme que tu veux chrooté.
    As tu un exemple??

    J'ai lu que chroot est un outil GNU faisant partie de coreutils et plus précisément des shellutils.

    Ou est situe le code du chroot dans GNU????

  4. #4
    Membre expérimenté
    Homme Profil pro
    Recherche du travail
    Inscrit en
    Août 2004
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Recherche du travail

    Informations forums :
    Inscription : Août 2004
    Messages : 561
    Points : 1 320
    Points
    1 320
    Par défaut
    Quand tu fais appelle à la commande chroot - utilitaire de coreutils -, il va utilisé la bibliothèque standard posix - header unistd.h -. Sous GNU, elle est appellé Glibc

    Glibc va en réalite faire appelle au noyau.

    Si tu veux le code de chroot. Télécharge les sources de linux. Le code se situe dans fs/open.c, ligne 408 dans la version 2.6.36

    Je ne m'arrete pas a cet exemple... c'est juste le commencement pour comprendre le fonctionnement quoi!!
    Sache juste que chroot n'a vocation que à faire croire à un programme une autre racine. Rien d'autre.

    As tu un exemple??
    Je te donne l'exemple en shell, car j'ai un peu la flème de le faire en C. Donc vite fait malfait xD

    Contenue de /mon_chroot/inotify.sh
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while inotifywait -e modify MON_FICHIER_A_SURVEILLIER; do # Attand jusqu'a que le fichier soit modifié
           echo "Le fichier est modifié!!" # Quand modifier
    done
    Contenue de /mon_chroot/shell_hack.sh
    /inotify.sh & # En tache de fond, la surveillance du fichier
    /bin/bash # Mon programme à chrooté
    Commande de chroot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chroot /mon_chroot /mon_chroot/shell_hack.sh
    Avoir un regard neutre sur notre vie dénuée de sens, c'est la voir tel un ignorant
    ------------------------------------------------------------------------------------------------------

  5. #5
    Membre actif Avatar de 3logy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2007
    Messages : 280
    Points : 222
    Points
    222
    Par défaut
    Okay!!
    Merci bien pour ton aide!!

    Bon voila ce que j'aimerais faire : *j'utilise UBUNTU*

    - Creer un Environnement CHROOT appelons le "chrootHome" --> je suis entrain de le faire.
    - Modifier le fichier open.c(la fonction chroot) a tel enseigne que chaque fois qu'un usager chrootet pour le "chrootHome" il ecrit dans un fichier "warning.log" sur le desktop: le nom de l'usager et la date.


    Pour le deuxieme Point! une idee de comment je pourrais le faire??

  6. #6
    Membre expérimenté
    Homme Profil pro
    Recherche du travail
    Inscrit en
    Août 2004
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Recherche du travail

    Informations forums :
    Inscription : Août 2004
    Messages : 561
    Points : 1 320
    Points
    1 320
    Par défaut
    - Creer un Environnement CHROOT appelons le "chrootHome" --> je suis entrain de le faire.
    Un script qui peut te simplifier la vie : http://wiki.archlinux.fr/howto/chroot

    Attention : Il ne sert que pour rajouté les library dynamique au chroot!

    Si tu souhaite faire un chroot plus complet, tu as debootstrap : http://wiki.debian.org/fr/Chroot

    - Modifier le fichier open.c(la fonction chroot) a tel enseigne que chaque fois qu'un usager chroot et pour le "chrootHome" il ecrit dans un fichier "warning.log" sur le desktop: le nom de l'usager et la date.
    A mon avis, je pense que c'est totalement débile de faire tourné ce court circuit en mode noyau. C'est casse tête, risque de bug pouvant entré la corruption entier du système, ... Le mode utilisateur est plus pertinant.

    L'idée en plus de modifié la routine... Un module serait moins bête...

    Je suppose que c'est pour l'école, donc tu ne peux y réchappé à cette solution débile.

    Quand on analyse les arguments de la fonction:
    SYSCALL_DEFINE1(chroot, const char __user *, filename)
    Tu remarquera, que il prend un argument intéressant : filename. Je suppose que c'est le nom du répertoire à chrooté

    Cette variable est utlisé par la fonction : user_path_dir(filename, &path);

    Un gros coup de grep nous donne :
    ./fs/open.c: error = user_path_dir(filename, &path);
    ./fs/open.c: error = user_path_dir(filename, &path);
    ./fs/namespace.c: error = user_path_dir(new_root, &new);
    ./fs/namespace.c: error = user_path_dir(put_old, &old);
    ./include/linux/namei.h:#define user_path_dir(name, path)
    Lis ./include/linux/namei.h. Oh mon dieu! C'est un DEFINE!
    #define user_path(name, path) user_path_at(AT_FDCWD, name, LOOKUP_FOLLOW, path)
    Mais tu vas me dire quesque c'est cette fonction user_path_at. On va demandé à Dieu... J'appelle grep! Il nous donne fs/namei.c.

    Quel est l'interet d'allez si loin dans les recherches? Vu se que tu veux faire je te conseil de bien comprendre avant tout VFS - http://fr.wikipedia.org/wiki/Virtual_File_System - avant de commence de programmé. Si tu veux réussir sans te cassé trop de dent.

    Alors mon amis, tu vas faire tout de suite un gros patout à cochoy-jeremy . Pour cette introduction et en français de VFS : http://cochoy-jeremy.developpez.com/...-system-linux/

    Et tu va chérire ce mémo fort util, pour connaitre où se trouve les principals appelle système : http://www.digilife.be/quickreferenc...0Reference.pdf

    Oui, j'avoue c'est ma source à ta première question

    Je te conseil aussi de parcourir ce site http://www.linux.org/docs/

    Après je te laisse le soin de cherché plus d'information sous Google.

    Pour en revenir à notre user_path_dir(filename, &path). Comme tu peux le remarqué path est un pointeur basé sur la strucuture path. Donc commence par trouvé et comprendre le prototype de path. Se qui est le plus intéressant est une sous-structure de path. Après on reparlera

    J'espère avoir était suffisament claire dans mes explications :S. Pour m'excusé, j'ai jamais touché au noyau. Et je ne suis pas informaticien, je ne suis que jardinier x)
    Avoir un regard neutre sur notre vie dénuée de sens, c'est la voir tel un ignorant
    ------------------------------------------------------------------------------------------------------

  7. #7
    Membre actif Avatar de 3logy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2007
    Messages : 280
    Points : 222
    Points
    222
    Par défaut
    un jardinier ?? mon oeil oui tu devrais être enseignant toi!! tu as une maniere ludique d'expliquer des trucs

    Allez j'essaye de relire tous ca et d'avancer un peu... si je suis bloqué je reviendrais....

    ps: Touché!!! Oui c'est pour l'uni
    tu peux me passer les commandos grep que t'as utilisé?? ca m'interesse

  8. #8
    Membre expérimenté
    Homme Profil pro
    Recherche du travail
    Inscrit en
    Août 2004
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Recherche du travail

    Informations forums :
    Inscription : Août 2004
    Messages : 561
    Points : 1 320
    Points
    1 320
    Par défaut
    tu peux me passer les commandos grep que t'as utilisé?? ca m'interesse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep MOTIF `find dossier_de_recherche`
    Avec ça tu pourra joué à Sherlock Holmes

    Allez j'essaye de relire tous ca et d'avancer un peu... si je suis bloqué je reviendrais....
    Si tu sais trouvé et interprété l'information tu trouvera facilement.
    Avoir un regard neutre sur notre vie dénuée de sens, c'est la voir tel un ignorant
    ------------------------------------------------------------------------------------------------------

  9. #9
    Membre actif Avatar de 3logy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2007
    Messages : 280
    Points : 222
    Points
    222
    Par défaut
    Je crois que j'ai un probleme la...
    le fichier open.c n'est pas trouvable que dans le kernel non compile n'est ce pas???

    okay si on veut passer par un module ? comment ca se passe?

  10. #10
    Membre expérimenté
    Homme Profil pro
    Recherche du travail
    Inscrit en
    Août 2004
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Recherche du travail

    Informations forums :
    Inscription : Août 2004
    Messages : 561
    Points : 1 320
    Points
    1 320
    Par défaut
    le fichier open.c n'est pas trouvable que dans le kernel non compile n'est ce pas???
    Oui, faut compilé le noyau en entier. C'est pas dur, surtout si tu le compile à la manière de Debian. http://pyfourmond.free.fr/Compilation-Noyau-Linux.htm

    okay si on veut passer par un module ? comment ca se passe?
    Dans l'énoncé, il est que il faut modifié que il faut modifié open.c. Est ce que on t'autorise de le faire sous forme de module?

    Si tu peux le faire en tant que module : http://tldp.org/LDP/lkmpg/2.6/html/index.html

    - Modifier le fichier open.c(la fonction chroot) a tel enseigne que chaque fois qu'un usager chrootet pour le "chrootHome" il ecrit dans un fichier "warning.log" sur le desktop: le nom de l'usager et la date.
    Après je me pose une question, si tu fais un module. Quel est le comportement, quand tu crée un système déja portant le même nom. Quel va être son conportement : les deux appelle executé? remplace l'appelle système? Erreur? etc...

    EDIT : Je répond à moi-même :
    http://www.epanastasi.com/?page_id=52
    Avoir un regard neutre sur notre vie dénuée de sens, c'est la voir tel un ignorant
    ------------------------------------------------------------------------------------------------------

  11. #11
    Membre actif Avatar de 3logy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2007
    Messages : 280
    Points : 222
    Points
    222
    Par défaut
    Ok je compile le kernel alors .....
    bon je retourne a mon et j'essaye de lire ta methodique... je reposte le resultat plus tard!!!


  12. #12
    Membre actif Avatar de 3logy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2007
    Messages : 280
    Points : 222
    Points
    222
    Par défaut
    Okay j'ai lu tes Liens!! ils font partis justement de notre Cours Linux ce semestre

    Dans open.c j'ai vu 4 lignes interessantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      error = user_path_dir(filename, &path);
     
      error = inode_permission(path.dentry->d_inode, MAY_EXEC | MAY_ACCESS);
     
      error = -EPERM;
     
      error = security_path_chroot(&path);
     
     set_fs_root(current->fs, &path);
    * Que fait inode_permission ??
    * Que fait EPERM??
    * Que fait security_path_root(&path) ??
    * Que fait set_fs_root(current->fs, &path) ??


    laquelle me donne le nom du dossier actuel et le nom du dossier chroote??

  13. #13
    Membre expérimenté
    Homme Profil pro
    Recherche du travail
    Inscrit en
    Août 2004
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Recherche du travail

    Informations forums :
    Inscription : Août 2004
    Messages : 561
    Points : 1 320
    Points
    1 320
    Par défaut
    * Que fait inode_permission ??
    Tout est dans le nom

    Que fait EPERM??
    Un coup de grep dans le dossier include, te donnera la réponse

    Que fait security_path_root(&path) ??
    * @path_chroot:
    * Check for permission to change root directory.
    * @path contains the path structure.
    * Return 0 if permission is granted.

    Que fait set_fs_root(current->fs, &path) ??
    Il change la partition racine pour le programme


    laquelle me donne le nom du dossier actuel et le nom du dossier chroote??
    Rappelle toi
    Pour en revenir à notre user_path_dir(filename, &path). Comme tu peux le remarqué path est un pointeur basé sur la strucuture path. Donc commence par trouvé et comprendre le prototype de path
    Le prototype de path
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    struct path {
            struct vfsmount *mnt;
            struct dentry *dentry;
    };
    Prototype de entry :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    struct dentry {
            atomic_t d_count;
            unsigned int d_flags;           /* protected by d_lock */
            spinlock_t d_lock;              /* per dentry lock */
            int d_mounted;
            struct inode *d_inode;          /* Where the name belongs to - NULL is
                                             * negative */
            /*
             * The next three fields are touched by __d_lookup.  Place them here
             * so they all fit in a cache line.
             */
            struct hlist_node d_hash;       /* lookup hash list */
            struct dentry *d_parent;        /* parent directory */
            struct qstr d_name;
     
            struct list_head d_lru;         /* LRU list */
            /*
             * d_child and d_rcu can share memory
             */
            union {
                    struct list_head d_child;       /* child of parent list */
                    struct rcu_head d_rcu;
            } d_u;
            struct list_head d_subdirs;     /* our children */
            struct list_head d_alias;       /* inode alias list */
            unsigned long d_time;           /* used by d_revalidate */
            const struct dentry_operations *d_op;
            struct super_block *d_sb;       /* The root of the dentry tree */
            void *d_fsdata;                 /* fs-specific data */
     
            unsigned char d_iname[DNAME_INLINE_LEN_MIN];    /* small names */
    };
    Prototype de qstr :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    /*
     * "quick string" -- eases parameter passing, but more importantly
     * saves "metadata" about the string (ie length and the hash).
     *
     * hash comes first so it snuggles against d_parent in the
     * dentry.
     */
    struct qstr {
            unsigned int hash;
            unsigned int len;
            const unsigned char *name;
    };
    Donc je suppose que pourle chemin à chrooté path.dentry.d_name.name
    Avoir un regard neutre sur notre vie dénuée de sens, c'est la voir tel un ignorant
    ------------------------------------------------------------------------------------------------------

  14. #14
    Membre actif Avatar de 3logy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2007
    Messages : 280
    Points : 222
    Points
    222
    Par défaut
    ca devient de plus en plus difficile pour moi de suivre mais Ah ca ira ca ira!!!


    si j'ai bien compris :

    je fais un print_k dans open.c apres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dput_and_out:
                path_put(&path);
    et dans le print_k pour afficher :
    - le chemin du dossier a chroote : path.dentry.d_name.name
    - le chemin du dossier present : path.dentry.d_parent.name???

    De plus j'ai trouve une autre struct :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    include <linux/sched.h> /* get_current_user() */
     
    #define get_current_user() ({ 				\
    	struct user_struct *__user = current->user;	\
    	atomic_inc(&__user->__count);			\
    	__user; })
    en faisant get_current_user est il possible que j'ai aussi le path du dossier actuel(pas celui du dossier chroote)??



    Pour trouver EPERM dans le dossier Include :
    grep EPERM `find include` <- n'est ce pas??

  15. #15
    Membre expérimenté
    Homme Profil pro
    Recherche du travail
    Inscrit en
    Août 2004
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Recherche du travail

    Informations forums :
    Inscription : Août 2004
    Messages : 561
    Points : 1 320
    Points
    1 320
    Par défaut
    je fais un print_k dans open.c apres :
    Tu peux utilisé où tu veux la fonction printk.

    le chemin du dossier present : path.dentry.d_parent.name???
    Humm... Avec un peu de chance, tu pourra t'en tiré avec ce syscall:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include/linux/syscalls.h:asmlinkage long sys_getcwd(char __user *buf, unsigned long size);
    get_current_user()
    Tout est dans le nom. Il te retourne le nom de l'utilsateur courant.

    Pour trouver EPERM dans le dossier Include :
    grep EPERM `find include` <- n'est ce pas??
    Oui
    Avoir un regard neutre sur notre vie dénuée de sens, c'est la voir tel un ignorant
    ------------------------------------------------------------------------------------------------------

  16. #16
    Membre actif Avatar de 3logy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2007
    Messages : 280
    Points : 222
    Points
    222
    Par défaut
    Et voila!! j'ai fais un plantage d'OS ... je continue neanmoins ... si tu as des conseils pour moi n'hesite pas ... j'ai compile le kernel mais au moment de le lance il a corrompu mon systeme existant

  17. #17
    Membre expérimenté
    Homme Profil pro
    Recherche du travail
    Inscrit en
    Août 2004
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Recherche du travail

    Informations forums :
    Inscription : Août 2004
    Messages : 561
    Points : 1 320
    Points
    1 320
    Par défaut
    Ha la la ! Tu m'obliges à mettre la main dans le canbouis! Dire que je n'avais plus codé en C, depuis un an.

    Voilà un début pour amorcer ton code : http://hanshateki.tuxfamily.org/open.c

    Ok ok, c'est du quick and dirty! Mais c'est pas mon exercice

    Pour les conseils...

    1) Avoir un noyau dédié au modification
    2) Si tu as le moidre avertissement lors de la conpilation, c'est que tu as de forte chance que le code est non fonctionnel
    3) Préfère l'usage de vmalloc à kmalloc, pour l'allocation dynamique
    4) Utilise un gestionaire de version, comme git, hg, svn , ...

    Au faite, quel est le cachier des charge exactement? En autre, le patterne des dossiers à chrooté.
    Avoir un regard neutre sur notre vie dénuée de sens, c'est la voir tel un ignorant
    ------------------------------------------------------------------------------------------------------

  18. #18
    Membre actif Avatar de 3logy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2007
    Messages : 280
    Points : 222
    Points
    222
    Par défaut
    Citation Envoyé par Senaku-seishin Voir le message
    Ha la la ! Tu m'obliges à mettre la main dans le canbouis! Dire que je n'avais plus codé en C, depuis un an.

    Voilà un début pour amorcer ton code : http://hanshateki.tuxfamily.org/open.c

    Ok ok, c'est du quick and dirty! Mais c'est pas mon exercice

    Pour les conseils...

    1) Avoir un noyau dédié au modification
    2) Si tu as le moidre avertissement lors de la conpilation, c'est que tu as de forte chance que le code est non fonctionnel
    3) Préfère l'usage de vmalloc à kmalloc, pour l'allocation dynamique
    4) Utilise un gestionaire de version, comme git, hg, svn , ...

    Au faite, quel est le cachier des charge exactement? En autre, le patterne des dossiers à chrooté.
    Grandiose!! j'essaye de compiler et de voir ce que ca donnes... mon problem j'ai une config de noyau qui mets 6 heures pour compiler!! une soi disante minimale configuration : https://wiki.jiffybox.de/images/8/81/Config.txt

    le Cahier de charge? mais c'est tout, juste hacke le kernel(fonction chroot) pour avoir lors d'un chrootage :

    - le nom du repertoire ou on se trouve;
    - le nom de l'utilisateur
    - le nom du repertoire chroote


  19. #19
    Membre expérimenté
    Homme Profil pro
    Recherche du travail
    Inscrit en
    Août 2004
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Recherche du travail

    Informations forums :
    Inscription : Août 2004
    Messages : 561
    Points : 1 320
    Points
    1 320
    Par défaut
    6 heure -_-

    Tu as un dinosore comme ordinateur? Je met 3 heures avec un noyau presque tout, donc seulement une heure si je fais un noyau minimal. De plus, quand tu change une partie du code, pas besoin de tout recompilé.

    J'avais cru que le projet était de crée un jounal des chroot pour le chroot personnel de l'utilisateur.

    Mon hack ne fait que affiché le repertoire à chroot et l'UID de l'utilisateur.
    Avoir un regard neutre sur notre vie dénuée de sens, c'est la voir tel un ignorant
    ------------------------------------------------------------------------------------------------------

  20. #20
    Membre actif Avatar de 3logy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2007
    Messages : 280
    Points : 222
    Points
    222
    Par défaut
    Citation Envoyé par Senaku-seishin Voir le message
    6 heure -_-

    Tu as un dinosore comme ordinateur?
    Oui un netbook datant de 2 ans...

    Citation Envoyé par Senaku-seishin Voir le message
    Je met 3 heures avec un noyau presque tout, donc seulement une heure si je fais un noyau minimal.
    Noyau Minimal !! ca m'interesse ca!!


    Citation Envoyé par Senaku-seishin Voir le message

    J'avais cru que le projet était de crée un jounal des chroot pour le chroot personnel de l'utilisateur.

    Mon hack ne fait que affiché le repertoire à chroot et l'UID de l'utilisateur.
    Beh ouais tu as raison!! mais j'ai bien peur de me bruler les ailes en voulant faire le journal, deja la je souffre terriblement, faire un journal ...

    En principe c'est represente l'arbre:

    1 : de la racine / au dossier present
    2 : de la racine / du chroot dossier jusqu'au dernier dossier...

    Et la faudrais comprendre les Inodes et consorts... ca me fous la peur!!

    voir

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. pic 16F84 modif routine sur rb0 en rb1
    Par pasrico dans le forum Autres architectures
    Réponses: 1
    Dernier message: 01/08/2011, 21h55
  2. Modif auto structure (accent, espace) / routine
    Par LostIN dans le forum Access
    Réponses: 16
    Dernier message: 04/07/2006, 10h40
  3. [] Datagrid vide après modification des propriétés
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/09/2002, 16h37
  4. Modification de l'évènement OnClick
    Par MrJéjé dans le forum C++Builder
    Réponses: 9
    Dernier message: 22/08/2002, 12h52
  5. Réponses: 11
    Dernier message: 23/07/2002, 14h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo