Annonce

Réduire
Aucune annonce.

Attribution des droits - chmod, chown, etc

Réduire
Ceci est une discussion importante.
X
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Tutoriel Attribution des droits - chmod, chown, etc

    Préambule :

    Pour ce petit tutoriel consacré à l'attribution des droits, j'ai choisi de faire un tutoriel texte de sorte à ce que vous puissiez le copier/coller et le garder biiiiiiien au chaud sur votre disque dur, à portée de main.

    Introduction :

    Le "chmod" est l'abréviation de "change mode".

    C'est en utilisant la commande chmod que l'on peut attribuer (ou enlever) des droits d'accès à un fichier (en lecture, écriture, exécution) ou a un dossier, un répertoire... le tout à un utilisateur, un groupe...

    C'est pas très clair ? Ca va le devenir !

    Note : vous pouvez passer par la GUI (Interface Graphique) si cela vous chante, il vous suffit de faire un CMD+I sur l'élément désiré et d'aller tout en bas, cliquer sur le "cadenas", rentrer votre mot de passe d'utilisateur, puis cliquer dans la colonne "privilège" les privilèges que vous désirez attribuer aux "utilisateurs" situés dans la colonne de gauche (vous pouvez en ajouter, ou en supprimer, d'ailleurs).


    Le chmod peut s'exprimer (peut s'effectuer) via 2 systèmes élémentaires :

    - des lettres ;
    - des chiffres.

    Cela revient au même.

    Oui je sais, c'est encore confus, mais nous n'en sommes qu'a l'introduction les enfants, du calme.

    Le Chmod "par des lettres" :

    Il est alors représenté par 10 lettres ; séparé en trois groupes de 3 véritables +1 de 1.

    exemples :

    drwxr-----
    l---------
    -rwxrw-r--
    drw-rw-r--

    etc...

    Oui pour l'instant, c'est encore (et toujours) confus, mais je vais vous expliquer tout cela de suite et là, la lumière va s'éclairer, vous allez voir

    d : Directory (indique si c'est un dossier)
    l : Link (indique si c'est un raccourci)
    r : Read (inique si on peut lire l'élément)
    w : Write (indique si on peut modifier l'élément)
    x : eXecute (indique si on peut exécuter l'élément)

    S'il y a un tiret à la place de la lettre c'est que le droit n'est pas attribué. S'il y a une lettre..., c'est qu'il l'est

    Comme je vous disais, les 10 lettres (composées de lettres ou de tirets donc) sont séparés en 3 groupes de 3 + 1 de 1.

    Explication :

    La première lettre signifie ce que c'est, d = directory, l = link, - = fichier.

    Ensuite il y a donc 3 groupes de 3.

    - Le premier est pour l'utilisateur (l'admin).
    - Le second est pour le groupe (s'il y a plusieurs sessions sur l'ordinateur).
    - Le troisième est pour les autres (qui peuvent avoir accès à votre ordinateur et n'ont pas de session dans celui-ci).

    Est-ce désormais plus clair si je vous dis :

    -rwxrw-r--

    ???

    Cela veut dire :

    1. - : c'est un fichier (signifie si c'est un fichier (-) ; c'est le cas ici (ça aurait pu être d par exemple si c'était un dossier, ou l si c'était un lien).
    2. rwx : l'utilisateur peut lire, écrire (modifier) et exécuter le fichier (premier groupe, de 3)
    3. rw- : le groupe peut lire et écrire (modifier) le fichier mais pas l'exécuter (deuxième groupe, de 3).
    4. r-- : les "autres" peuvent seulement lire le fichier (ils ne peuvent ni le modifier (le lire), ni l'excécuter (troisième groupe, de 3).

    Les choses sont-elles plus claires désormais ?!!

    Note : Dans tous les cas, ROOT aura TOUJOURS TOUS LES DROITS.

    C'est à dire que si le fichier est :

    ----------

    Personne ne pourra le lire, le modifier ou l'exécuter. Seul ROOT le pourra.


    Le Chmod "par des chiffres" :

    C'est une autre façon d'appliquer un chmod.

    Il suffit de remplacer les lettres par une valeur, d'en faire la somme pour le groupe, tout simplement.

    Ce n'est pas encore très clair... ?

    Là aussi, ça va le devenir

    r = 4
    w = 2
    x = 1

    Ainsi :

    rwx = 7
    r-- = 4
    -w- = 2
    --x = 1
    --- = 0

    Il suffit juste d'additionner les valeurs.

    Exemples :

    777 = -rwxrwxrwx (on ne compte que les trois groupes de 3, pas l'élément, situé en premier).
    744 = -rwxr--r--
    740 = -rwxr-----
    444 = -r--r--r--

    Ainsi :

    744 : l'utilisateur peut tout faire, les autres peuvent juste lire l'élément.
    700 : l'utilisateur peut tout faire les autres rien.
    444 : l'utilisateur, le groupe et les autres peuvent juste lire l'élément.
    000 : que root peut tout faire.

    Alors ?

    Est-ce que ça s'éclaircit ?!!

    Bien, maintenant (non je ne souhaite pas vous noyer !), sachez qu'il y a une troisième forme de "chmodage".

    Où :

    u : user
    g : group
    o : other

    + : ajouter le droit
    - : supprimer le droit
    = : affecter le droit

    Ainsi :

    chmod u+x (donne le droit d'exécution à l'utilisateur)
    chmod g+r (donne le droit de lecture au groupe - ensemble des utilisateurs)
    chmod o-rwx (supprime tout droits aux autres)
    chmod u=rwx, g=rw, o=r (donne tous les droits à l'utilisateur, tous les droits sauf l'exécution au groupe et seulement la lecture aux autres).

    Bien, passons au Terminal, et appliquons cela tranquillement :

    Exemple, je souhaite "chmoder" tout un répertoire :

    Code:
    chmod -R 740 /Users/yurisakarov/
    Le contenu de la session "yurisakarov" ne sera alors lisible, modifiable et exécutable que par son utilisateur (donc, moi, Yuri Sakarov (chmod = 7)). Il ne sera que lisible par le groupe (chmod = 4), et sera inaccessible aux autres).

    Notez que le paramètres -R ou -r signifie "récursif", c'est-à-dire qu'il fait effet sur tous les sous-dossiers à partir de ce répertoire.

    Un autre exemple :

    Nous venons de réaliser un petit script en shell scripting et souhaitons lui attribuer les droits d'exécution.

    Code:
    chmod +x mon_script.sh
    Il faut pour cela être situé dans le répertoire, sinon, il faut bien entendu spécifier le chemin absolu.

    Ce qui serait, pour moi :

    Code:
    chmod +x /Users/yurisakarov/Desktop/Dev/Scripts_Bash/mon_script.sh
    (ce qui veut donc dire que mon fichier se situe dans le dossier "Script_Bash" lui-même situé dans le dossier "Progra" qui est situé sur le desktop de ma session).

    Un dernier exemple ?

    Code:
    chmod o+rx Users/yurisakarov/Desktop/Dev/Scripts_Bash/mon_script.sh
    Ce qui aura pour effet... d'octroyer le droit de lecture et d'exécution mais pas de modification aux "autres utilisateurs" qui pourraient avoir accès à mon ordinateur (si je suis dans un réseau partagé (ou pas^^)).

    Bien, il va m'être difficile de faire plus clair concernant l'attribution de droits via chmod en ligne de commande !

    Je vais somme toute vous initier à quelques-autres commandes qui relèvent à peu près du même domaine :

    chown : chown, pour "change owner" ("changement de propriétaire", pour les non polyglottes ).

    Cette commande va donc changer les droits d'un fichier, d'un dossier, (etc) d'un utilisateur administrateur à un autre (si par exemple on a plusieurs sessions sur son ordinateur, ou encore une fois, si nous sommes en réseau).

    Exemple, si je suis sur ma deuxième session, dénommée "Iruy Vorakas" et que je souhaite changer de propriétaire un fichier dénommé "fichier.txt", je ferais :

    chown yurisakarov fichier.txt

    Comme vous pouvez le constater, il suffit d'entrer la commande chown, puis tout simplement de mettre le nom d'utilisateur qui va s'octroyer les droits d'administrateur sur le fichier "fichier.txt".

    Pour information, que ce soit pour chmod ou chown, je vous invite à consulter le manuel ("man", ou "info") et de voir les nombreux paramètres que ceux-ci acceptent. Il y a une multitude de possibilité. Idem pour les commandes que je vais vous présenter maintenant...

    Je vais vous présenter 3 commandes :

    adduser : ajouter un utilisateur
    passwd : changer le mot de passe (password)
    deluser : supprimer un utilisateur (delete user)

    La première commande, comme décrite dans sa définition, permet d'ajouter un utilisateur (certes, cela dérive un peu du chmod de base, mais bon, autant en parler ici, comme ça on aura fait le tour des droits d'accès).

    La seconde permet de changer le mot de passe de l'utilisateur (l'admin) Je vous laisse en comprendre son intérêt par vous-même

    La troisième, encore plus sympathique, permet de supprimer un utilisateur.

    Ouiiiii bien sûr, on peut vouloir supprimer un de nos nooooombreux comptes utilisateurs sur notre ordinateur car nous sommes tous schizophrènes ^^ Bien... vous m'aurez compris

    Par la même, autant vous présenter la commande "mount" :

    La commande "mount" permet de créer elle aussi un utilisateur.

    Il y a une grosse faille de sécurité ici via la commande mount -uw ou fsck -fy, mais nous ne sommes pas dans l'onglet "Hacking", ainsi... je préserverai le silence

    Je vous recommande de vous entraîner à attribuer des droits à des fichiers "tests" pour vous faire la main et gagner en rapidité d'exécution.
    sigpic

    Cyprium Download Link

    Plus j'étudie plus j'me rends compte que je n'sais rien.

    †|

  • #2
    Bravo !

    Merci pour ce tutoriel il est très bien fait bien qu'on soit un peu confus au début

    Backflip96
    #Backflip96

    Commentaire

    Chargement...
    X