Accueil
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi Eclipse MS-Office SQL & SGBD Oracle  4D  Business Intelligence
logo
Sommaire > Fichiers et dossiers > Droits d'accès aux fichiers et dossiers
        C'est quoi le chmod ?
        Comment se calcule un chmod ?
        Comment convertir les bits de permissions au format numérique Unix ?
        Comment convertir les bits de permissions au format symbolique Unix ?



C'est quoi le chmod ?
auteur : Eric Berger
Le chmod est le droit d'accès à un fichier ou à un dossier. Il s'exprime par une série de trois chiffres (précédés d'un zéro).
Il définit le genre d'accès :
  • lecture
  • écriture
  • exécution
pour chaque genre d'utilisateurs :
  • propriétaire
  • membres du groupe
  • tout le monde

A chaque combinaison genre d'accès / utilisateur correspond un n° chmod.

lien : fr Tutoriel UNIX de Hugo Etiévant : Droits d'accès aux fichiers

Comment se calcule un chmod ?
auteur : Eric Berger
Principe Le chmod se calcule de la manière suivante :

  Propriétaire Groupe Tout le monde chmod
Lecture 4 4 4 444
Écriture 2 2 2 222
Exécution 1 1 1 111
chmod 7 7 7 777
Exemple Si on souhaite donner tous les droits au propriétaire et seulement l'accès en lecture au groupe et à tous les utilisateurs, le chmod se construira de la façon suivante :

  Propriétaire Groupe Tout le monde chmod
Lecture 4 4 4 444
Écriture 2 0 0 200
Exécution 1 0 0 100
chmod 7 4 4 744

Comment convertir les bits de permissions au format numérique Unix ?
auteur : Armatatuxa
La fonction fileperms() retourne les bits de permissions, au format décimal, d'un répertoire ou d'un fichier :
<?php
$fichier="mon_fichier.txt";
$dec_perms = fileperms($fichier);     // donne 33206 
?>
L'argument %o de la fonction sprintf() convertit ces mêmes bits en base octale :
<?php
$octal_perms = sprintf("%o", $dec_perms);   // donne 10066
$unix_perms = (substr($octal_perms, 3));    // retourne la chaîne à partir du quatrième caractère
echo $unix_perms;
?>
retourne : 666.


Comment convertir les bits de permissions au format symbolique Unix ?
auteur : Cyberzoide
La fonction suivante permet de traduire les bits de permissions au format symbolique. Script de vbwebprofi at gmx dot de .
function mfunGetPerms($in_Perms) {
    $sP;
    if($in_Perms & 0x1000)     // FIFO pipe
        $sP = 'p';
    elseif($in_Perms & 0x2000) // Special character
        $sP = 'c';
    elseif($in_Perms & 0x4000) // Directory
        $sP = 'd';
    elseif($in_Perms & 0x6000) // Block special
        $sP = 'b';
    elseif($in_Perms & 0x8000) // Regular
        $sP = '&';
    elseif($in_Perms & 0xA000) // Symbolic Link
        $sP = 'l';
    elseif($in_Perms & 0xC000) // Socket
        $sP = 's';
    else  // UNKNOWN
        $sP = 'u';// owner
    
    $sP .= (($in_Perms & 0x0100) ? 'r' : '&') . (($in_Perms & 0x0080) ? 'w' : '&');
    $sP .= (($in_Perms & 0x0040) ? (($in_Perms & 0x0800) ? 's' : 'x' ) : (($in_Perms & 0x0800) ? 'S' : '&'));// group
    $sP .= (($in_Perms & 0x0020) ? 'r' : '&') . (($in_Perms & 0x0010) ? 'w' : '&');
    $sP .= (($in_Perms & 0x0008) ? (($in_Perms & 0x0400) ? 's' : 'x' ) : ($in_Perms & 0x0400) ? 'S' : '&'));// world
    $sP .= (($in_Perms & 0x0004) ? 'r' : '&') . (($in_Perms & 0x0002) ? 'w' : '&');
    $sP .= (($in_Perms & 0x0001) ? (($in_Perms & 0x0200) ? 't' : 'x' ) : (($in_Perms & 0x0200) ? 'T' : '&'));
    
    return $sP;
}

echo mfunGetPerms(fileperms('monfichier.jpg'));
Exemple :
drwxr-xr-x


Consultez les autres F.A.Q.


Les sources présentés sur cette page sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2003  Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com