Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/11/2016, à 23:37

tiftif

Restreindre l'accès à /home aux autres utilisateurs

Bonjour à tous,
je viens d'installer Ubuntu et je débute dans le monde de linux smile
En lisant le manuel ubuntu, j'ai vu que le dossier /home de chaque utilisateur était accessible à tout le monde par défaut.

Je cherche donc une solution pour rendre le dossier home accessible seulement à son propriétaire et pas aux autres (je vais avoir 2 ou 3 comptes sur le PC).

Dans les archives du forum, j'ai trouvé un fil de discussion où plusieurs solutions étaient proposées :

chmod -R 700 ton_dossier
chmod -R o-rwx ton_dossier

La première solution semble ne pas être recommandée, et la 2ème est mieux.. mais je ne suis pas certain de voir pourquoi.
Si j'ai bien compris,
- le -R applique le changement à tout le contenu du dossier home (cela comprends les fichiers créés après coup je suppose ?)
- le 700 donne les pleins pouvoirs à l'owner, et rien au groupe et aux autres
- le o-rwx retire les droits lecture/écriture/"passage" (je ne sais pas l'expliquer mieux) à tous les autres hors owner et son groupe.

Donc la principale différence serait que dans le 2ème cas, on laisse le groupe du propriétaire avec ses droits. On ne modifie que les "autres".
En quoi cela est-il plus safe/mieux/recommandable ?

Merci d'avance pour vos réponses et votre aide !

Hors ligne

#2 Le 29/11/2016, à 00:24

J5012

Re : Restreindre l'accès à /home aux autres utilisateurs

tiftif a écrit :

...
Donc la principale différence serait que dans le 2ème cas, on laisse le groupe du propriétaire avec ses droits. On ne modifie que les "autres".
En quoi cela est-il plus safe/mieux/recommandable ?
...

c'est particulier à ubuntu :
l'utilisateur crée appartient au groupe de meme nom , et pas au groupe users ...
ex:
- utilisateur paul dans le groupe paul
- utilisateur pierre dans le groupe pierre
→ pierre n'appartient pas au groupe paul
→ paul n'appartient pas au groupe pierre

les permissions de base sont :
- acces en ecriture et execution pour l'utilisateur
- acces en lecture et execution pour le groupe de meme nom
- acces en execution pour tous les autres
→ pierre ne peut pas lire les fichiers de paul mais les executer oui (s'il les connait : il ne peut pas entrer dans le dossier de paul pour les lire)

edit : ces restrictions sont à minorer si l'un des utilisateurs ou les deux ont un role administrateur (acces total avec sudo ou gksu)

Dernière modification par J5012 (Le 29/11/2016, à 00:28)

Hors ligne

#3 Le 29/11/2016, à 06:53

pingouinux

Re : Restreindre l'accès à /home aux autres utilisateurs

Bonjour,

titif a écrit :

(cela comprends les fichiers créés après coup je suppose ?)

Non

Ajouté :
Tu peux limiter les permissions des fichiers et répertoires nouvellement créés avec umask (voir cette commande dans la rubrique SHELL BUILTIN COMMANDS de man bash)

Dernière modification par pingouinux (Le 29/11/2016, à 07:02)

Hors ligne

#4 Le 02/12/2016, à 00:50

tiftif

Re : Restreindre l'accès à /home aux autres utilisateurs

Salut à tous et merci pour vos réponses. Désolé du retard de retour de ma part, je n'avais pas vu la notification smile

J5012 a écrit :
tiftif a écrit :

...
Donc la principale différence serait que dans le 2ème cas, on laisse le groupe du propriétaire avec ses droits. On ne modifie que les "autres".
En quoi cela est-il plus safe/mieux/recommandable ?
...

c'est particulier à ubuntu :
l'utilisateur crée appartient au groupe de meme nom , et pas au groupe users ...
ex:
- utilisateur paul dans le groupe paul
- utilisateur pierre dans le groupe pierre
→ pierre n'appartient pas au groupe paul
→ paul n'appartient pas au groupe pierre

les permissions de base sont :
- acces en ecriture et execution pour l'utilisateur
- acces en lecture et execution pour le groupe de meme nom
- acces en execution pour tous les autres
→ pierre ne peut pas lire les fichiers de paul mais les executer oui (s'il les connait : il ne peut pas entrer dans le dossier de paul pour les lire)

edit : ces restrictions sont à minorer si l'un des utilisateurs ou les deux ont un role administrateur (acces total avec sudo ou gksu)

Ok, c'est bien ce que j'avais lu du coup (pour les groupes et utilisateurs).
En revanche je buggue toujours sur "lire un fichier" et "exécuter un fichier"... Si j'ai des photos et des documents pdf, word.. et que je ne veux pas que les autres utilisateurs y aie accès (que ce soit pour ouvrir le fichier ou simplement voir qu'il s'y trouve, son nom..) comment dois-je faire ? (je parle notamment de mon dossier /home/mon_nom_dutilisateur)

pingouinux a écrit :

Bonjour,

titif a écrit :

(cela comprends les fichiers créés après coup je suppose ?)

Non

Ajouté :
Tu peux limiter les permissions des fichiers et répertoires nouvellement créés avec umask (voir cette commande dans la rubrique SHELL BUILTIN COMMANDS de man bash)

Quand tu dis "Non", c'est "Non, les fichiers créés après coup n'auront pas les mêmes droits d'accès que le dossier qui les contient ?
Pour la partie "ajouté" : je vais aller regarder cette commande, mais c'est à faire à chaque fois ? Pour le fichier perso dans /home, on ne peut pas le faire qu'une seule fois ?

Merci pour votre aide !
Tif

Hors ligne

#5 Le 02/12/2016, à 01:42

Coeur Noir

Re : Restreindre l'accès à /home aux autres utilisateurs

Tentative d'explication de la nuance entre lecture et éxécution :
Imagine un fichier texte nommé action. Il contient un script, un ensemble de commandes et fonctions, un fichier .desktop par exemple ( un lanceur d'application ).
Si celui-ci n'a que les droits écriture et lecture, tu pourras voir le contenu de ce fichier dans un éditeur de texte et le modifier à ta guise. Mais il ne fonctionnera pas en tant que lanceur d'application.
Si tu ajoutes au fichier le droit d’exécution, dès lors le contenu du fichier est vu par le système comme devant être …exécuté et ton fichier .desktop arbore dorénavant un icône, un autre nom et si tu doubles-cliques dessus il lance une application - au lieu de s'afficher dans un éditeur de texte comme précédemment.
Est-ce que c'est plus clair ?

Droits d'éxécution, attention, cependant : il faut distinguer le cas particulier des dossiers.
À priori un dossier n'est qu'un fichier particulier ( un index, en gros ) dont l'exécution produit l'affichage de son contenu. Si tu enlèves le droit d'exécution à un dossier, tu enlèves l'accès à ce qu'il contient, fichiers, comme sous dossiers et par conséquent toute possibilité de le lire, d'y écrire, d'y naviguer, de le « traverser ». Même si tu en es le propriétaire. À manier avec extrême précaution, c'est pour cela que dans la gestion des droits il y a une distinction entre x et X petit x applique le droit d'exécution à fichiers et dossiers, X majuscule n'appliquera qu'aux dossiers.

« les fichiers créés après coup n'auront pas les mêmes droits d'accès que le dossier qui les contient » non par défaut sous Linux/Ubuntu les fichiers n'héritent pas des droits du dossier qui les contient ( mais ça peut se faire ). Ils héritent d'un ensemble de droits et permissions - le umask - défini au niveau du système par le fichier /etc/login.defs lignes 127 à 151.
Par défaut UMASK = 022, c'est à dire qu'un fichier créé par un utilisateur donne les droits lecture+écriture+exécution à cet utilisateur ( propriétaire ) et seulement lecture+exécution au groupe et aux autres ( désigné aussi comme le reste du monde, ça fait plus vaste ).
Pour que seul le propriétaire ait tous les droits et rien pour groupe et le reste du monde, il faudrait passer l'UMASK à 077. Mais ça n'agirait que sur les fichiers créés dès lors. Il faudrait donc changer les droits sur les fichiers déjà existants, déjà stockés avant la modif' du UMASK.

( C'est aussi dans ce fichier login.defs qu'on peut modifier le comportement par défaut d'Ubuntu évoqué en #2 par J5012 qui, à la création d'un utilisateur, crée automatiquement un groupe du même nom et l'y inclue. C'est USERGROUPS_ENAB lignes 217 à 225. )

Pour le reste, voir les doc's https://doc.ubuntu-fr.org/permissions et https://doc.ubuntu-fr.org/droits

Dernière modification par Coeur Noir (Le 02/12/2016, à 02:17)


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#6 Le 02/12/2016, à 09:00

grigouille

Re : Restreindre l'accès à /home aux autres utilisateurs

chmod 700 /home/user

me semble suffisant pour ton problème

Pour les scripts, il n'est pas nécessaire d'avoir un droit d'exécution :

$ cat toto.sh
#!/bin/bash
echo Bonjour
$ ls -l toto.sh
-rw-rw-r-- 1 grigouille grigouille 25 déc.   2 07:58 toto.sh
$ bash toto.sh
Bonjour

Dernière modification par grigouille (Le 02/12/2016, à 09:01)


Debian (xfce) 12
HP LaserJet M1132 MFP

Hors ligne

#7 Le 02/12/2016, à 10:56

erresse

Re : Restreindre l'accès à /home aux autres utilisateurs

grigouille a écrit :

Pour les scripts, il n'est pas nécessaire d'avoir un droit d'exécution

Oui, mais dans ce cas, il FAUT lancer "bash le_script" pour qu'il soit exécuté, le droit d'exécution permet de lancer seulement le script comme une commande "./le_script" (même sans le ./ s'il est enregistré dans un répertoire du path)...


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#8 Le 02/12/2016, à 11:07

MicP

Re : Restreindre l'accès à /home aux autres utilisateurs

…même sans le ./ s'il est enregistré dans un répertoire du path…

Si vous créez un répertoire ~/bin pour y mettre vos scripts, ils seront accessibles sans spécifier le chemin complet

puisque ~/bin sera ajouté dans la variable PATH

Extrait de ~/.profile a écrit :
…
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi
…

Dernière modification par MicP (Le 02/12/2016, à 11:08)

Hors ligne

#9 Le 02/12/2016, à 13:16

Coeur Noir

Re : Restreindre l'accès à /home aux autres utilisateurs

Pour rester dans le sujet de départ :

grigouille a écrit :
chmod 700 /home/user

me semble suffisant pour ton problème

Que j'aime la simplicité de cette solution !


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#10 Le 04/12/2016, à 11:37

tiftif

Re : Restreindre l'accès à /home aux autres utilisateurs

Salut et merci pour vos réponses.
Coeur Noir, ton explication sur l'exécution est bien claire smile

grigouille, eresse et micp, j'avoue je suis un peu perdu dans vos exemples !

Coeur Noir a écrit :

Pour rester dans le sujet de départ :

grigouille a écrit :
chmod 700 /home/user

me semble suffisant pour ton problème

Que j'aime la simplicité de cette solution !

J'aime aussi beaucoup la simplicité de cette solution. Je vais donc appliquer ça à mon home et à celui de l'autre utilisateur.
Même si de nouveaux dossiers sont créés dedans, cela ne devrait pas poser de soucis puisque /home restera inaccessible et inexécutable/imparcourable (si j'ai bien tout pigé)

Hors ligne

#11 Le 04/12/2016, à 14:49

MicP

Re : Restreindre l'accès à /home aux autres utilisateurs

Bonjour tiftif

erresse apportait quelques précisions concernant la méthode de lancement d'un script sans qu'il soit exécutable

et moi sur l'accès aux scripts personnels du répertoire ~/bin par l'ajout automatique de ce répertoire dans le PATH.

Mais ça ne concerne pas la restriction d'accès au répertoire personnels, c'était juste pour apporter quelques précisions.

Hors ligne