• [^] # x !

    Posté par . En réponse au message différence entre les permissions windows et linux (accès aux dossiers). Évalué à 5.

    Par contre, ça laisse le droit x, pour exécuter, et il est plus important qu’on ne pense (je reviendrai dessus).

    Je suggère plutôt la commande :

    chmod -R go= /home

    g désigne les utilisateurs du même groupe.
    Si tu n’as qu’un groupe pour tous les utilisateurs physiques, tu as intérêt à le traiter, sinon ils auront toujours autant de droits. Selon les distributions, tous les utilisateurs peuvent faire partie d’un groupe unique, ou chaque utilisateur peut avoir son propre groupe (je ne suis pas sur Ubuntu en ce moment, et je ne me rappelle plus ce qu’il en est dessus).

    = fixe les droits à ceux indiqués à sa suite. Je n’ai rien mis à sa suite, donc il n’y aura aucun droit.

    Il est mieux aussi d’ajouter dans le .bashrc (ainsi que le .bash_profile s’il n’appelle pas le .bashrc) de chaque utilisateur la commande suivante :

    umask u=rwx,go=

    Ainsi les fichiers nouvellement créés le seront sans droit pour les autres utilisateurs (en espérant que l’environnement graphique exécute le .bash_profile ou le .bashrc avant de lancer des logiciels...), parce que des fichiers sont aussi créés en dehors du répertoire de l’utilisateur, par exemple dans /tmp.

    umask spécifie un filtre de permissions pour la création de fichiers ou de répertoires. Sa syntaxe symbolique est similaire à celle de chmod (il supporte aussi un argument octal, tout comme chmod, mais inversé par rapport à celui-ci ; autant éviter l’octal). u, c’est pour l’utilisateur (le propriétaire des fichiers et répertoires).

    umask -S pour connaître le filtre actuel.


    Je reviens sur l’importance du droit x.
    Une particularité avec les répertoires, c’est que le droit r permet de lire le contenu, alors que le droit x permet d’y accéder.

    Supposons que tu fasses chmod -R o-rw /home avant que le répertoire Documents (par exemple) d’un utilisateur soit créé. Il est créé après coup (probablement à la première ouverture d’une session graphique), donc avec les droits par défaut (à moins que tu n’aies changé l’umask de ton utilisateur).
    Un autre utilisateur, sachant qu’un utilisateur existe et où est son répertoire (getent passwd), pourra essayer cd /home/utilisateur/Documents et y accéder.

    Vérification (dans /tmp pour simplifier le nettoyage, et avec root pour ne pas se casser la tête à créer un utilisateur) :

    Sous root (en sudo -i ou en préfixant chaque commande de sudo) :

    mkdir -p /tmp/home/utilisateur
    chmod -R o-rw /tmp/home
    mkdir /tmp/home/utilisateur/Documents
    echo "Contenu super confidentiel" > /tmp/home/utilisateur/Documents/doc.txt

    Sous ton utilisateur normal (je laisse le $ du prompt pour différencier les commandes de la sortie obtenue en retour) :

    $ ls -la /tmp/home
    ls: impossible d'ouvrir le répertoire '/tmp/home': Permission non accordée
    $ ls -la /tmp/home/utilisateur
    ls: impossible d'ouvrir le répertoire '/tmp/home/utilisateur': Permission non accordée
    $ ls -la /tmp/home/utilisateur/Documents
    total 4,0K
    drwxr-xr-x 2 root root 60 15 août 15:54 .
    drwx--x--x 3 root root 60 15 août 15:54 ..
    -rw-r--r-- 1 root root 27 15 août 15:54 doc.txt
    $ cat /tmp/home/utilisateur/Documents/doc.txt 
    Contenu super confidentiel
    

    « Le fascisme c’est la gangrène, à Washington comme en Russie. » — adapté de Renaud, Hexagone