autorisations 755 sur / home / <user> /

15

Je me demande pourquoi par défaut mon répertoire /home/<user>/a des autorisations définies sur 755. Cela permet à d'autres utilisateurs d'entrer dans des répertoires et de lire des fichiers chez moi. Y a-t-il une raison légitime à cela?

Puis-je définir les autorisations 700pour ma maison et tous les sous-répertoires, par exemple:

chmod -R o-xw /home/<user>/ 
chmod -R g-xw /home/<user>/

sans rien casser?

En outre, est-il possible de définir les autorisations sur ma maison, de sorte que tous les nouveaux fichiers créés aient des 600répertoires 700?

Martin Vegter
la source
1
dans RHEL / CentOS 5, la valeur par défaut est 700, mais dans Ubuntu 755
Rahul Patil
2
Il est courant dans certaines configurations qui public_htmlpermettent au serveur Web d'accéder au répertoire. Bien qu'il soit très pratique pour les utilisateurs, je n'en suis pas un grand fan.
Marco

Réponses:

18

Si votre répertoire personnel est privé, personne d'autre ne peut accéder à aucun de vos fichiers. Pour accéder à un fichier, un processus doit avoir l'autorisation d'exécution sur tous les répertoires du chemin d'accès dans l'arborescence à partir du répertoire racine. Par exemple, pour permettre à d' autres utilisateurs de lire /home/martin/public/readme, les répertoires /, /home, /home/martinet /home/martin/publictous besoin d'avoir les autorisations d??x??x??x(il peut être drwxr-xr-x, ou drwx--x--xou une autre combinaison), et en plus le fichier readmedoit être lisible par ( -r??r??r??).

Il est courant d'avoir des répertoires personnels avec le mode drwxr-xr-x(755) ou au moins drwx--x--x(711). Le mode 711 (autorisation d'exécution uniquement) sur un répertoire permet aux autres d'accéder à un fichier dans ce répertoire s'ils connaissent son nom, mais pas de répertorier le contenu du répertoire. Sous ce répertoire personnel, créez des sous-répertoires publics et privés comme vous le souhaitez.

Si vous ne voulez jamais que d'autres personnes lisent l'un de vos fichiers, vous pouvez créer votre répertoire personnel drwx------(700). Si vous faites cela, vous n'avez pas besoin de protéger vos fichiers individuellement. Cela ne cassera rien d'autre que la capacité d'autres personnes à lire votre fichier.

Une chose courante qui peut casser, car c'est une instance d'autres personnes lisant vos fichiers, est si vous avez un répertoire tel que ~/public_htmlou ~/wwwqui contient votre page Web. Selon la configuration du serveur Web, ce répertoire peut devoir être lisible par tout le monde.

Vous pouvez modifier les autorisations par défaut pour les fichiers que vous créez en définissant la valeur umask dans votre .profile. L'umask est le complément des autorisations maximales d'un fichier. Les valeurs courantes incluent 022 (accessible en écriture uniquement par le propriétaire, lisible et exécutable par tout le monde), 077 (accès uniquement par le propriétaire) et 002 (comme 022, mais également accessible en groupe). Ce sont des autorisations maximales: les applications peuvent définir des autorisations plus restrictives, par exemple la plupart des fichiers finissent par être non exécutables car l'application qui les a créés n'a pas défini les bits d'autorisation d'exécution lors de la création du fichier.

Gilles 'SO- arrête d'être méchant'
la source
Je n'exécute pas de serveur Web sur ma machine, je n'ai donc pas besoin d'autoriser l'accès à ~/public_html. Y a-t-il d'autres programmes communs autres qu'Apache, qui pourraient avoir besoin d'accéder à ma maison? Qu'en est-il postfix, par exemple.
Martin Vegter
1
@MartinVegter Bon point. Les programmes de messagerie fonctionnent toujours en tant qu'utilisateur lorsqu'ils livrent du courrier, mais certains systèmes .forwarddoivent être lisibles par un système de messagerie fonctionnant en tant qu'utilisateur système. Postfix est cependant très bien avec un privé .forward.
Gilles 'SO- arrête d'être méchant'
3

Si vous archivez dans RHEL / CentOS 5.x, l'autorisation par défaut est 700, mais dans Ubuntu, elle est 755.

Selon un membre du personnel d'Ubuntuforms.org , il s'agit de faciliter le partage de fichiers entre de nouveaux utilisateurs. Vous pouvez modifier l'autorisation à 700 ou 750 si vous ne voulez pas que les fichiers soient lisibles et exécutables par d'autres.

En outre, est-il possible de définir les autorisations sur ma maison, de sorte que tous les nouveaux fichiers créés auront 600 et 700 répertoires?

Vous pouvez définir umask 0077pour cela

Cela fonctionnera comme:

L'autorisation par défaut pour le répertoire est 0777, donc lorsque vous définissez umask, 0077le nouveau répertoire sera créé avec l'autorisation, (0777-0077) c'est- 0700à- dire comme vous le souhaitez.

Rahul Patil
la source
ne umasks'applique aux fichiers aussi bien? Cela ne semble avoir d'effet que lorsque je crée de nouveaux répertoires.
Martin Vegter
2
Oui ... vous pouvez archiver votre shell actuel juste définir umask 0077et créer un fichier, dir et vérifier l'autorisationstat filename
Rahul Patil
3

Oui, il y a une raison très légitime. Notez que d'autres utilisateurs peuvent lire mais pas écrire dans vos fichiers. C'est très utile dans les réseaux professionnels car vous pouvez facilement partager vos fichiers avec vos collègues.

Par exemple, dans le laboratoire dans lequel je travaillais auparavant, nous avions tous accès aux $HOMErépertoires les uns des autres afin de pouvoir facilement partager nos données ou nos scripts les uns avec les autres. Si mon amie Alice avait un joli script pour faire X, je le lancerais simplement:

~alice/bin/scriptX.pl mydata

Comme d'autres l'ont mentionné, pour changer cela, vous devrez définir umask. Par exemple, pour rendre les nouveaux fichiers et dossiers lisibles uniquement par vous, ajoutez ceci à votre ~/.bashrc:

umask 0077
terdon
la source
3
Le peu sur l'utilisation du script Perl d'Alice est terrifiant. Copiez le script dans votre répertoire personnel, auditez-le, puis utilisez uniquement votre copie.
AlexWebr
6
@AlexWebr tout d'abord, je le lirais d'abord, ensuite Alice dans ce cas est la personne assise à côté de moi qui vient d'écrire un script sympa. Nous pouvons supposer que je leur fais autant confiance que tout développeur dont j'installerais et exécuterais aveuglément le travail sur ma machine. Plus que la plupart en fait. De plus, c'était un laboratoire, donc nous téléchargions souvent quelques Go de génomes et c'était un moyen facile de se donner mutuellement accès.
terdon
1

Vous devez changer le umask, pour changer la façon dont les nouveaux fichiers sont créés dans votre dossier personnel. Cela se fait généralement en éditant votre script de démarrage du shell, il y a un assez bon aperçu ici

En ce qui concerne la modification de toutes les autorisations de votre dossier de départ en 700, je me demande comment cela affecterait les services exécutés sous des comptes de service qui ont besoin d'informations de configuration à partir de votre dossier de départ ... Vous pourriez finir par empêcher ces services de lire les fichiers de configuration dont ils ont besoin .

Niall Byrne
la source