J'essaie de comprendre pourquoi lors de la création de nouveaux fichiers et répertoires dans, disons, le dossier Documents
, ils reçoivent par défaut les autorisations suivantes:
-rw-rw-r-- 1 hello world 0 Nov 19 12:17 'New Empty File'
drwxrwxr-x 2 hello world 4.0K Nov 19 12:16 'New Folder'/
Les "autres" ne devraient-ils pas avoir accès à mes fichiers? D'après ce que j'ai lu, Ubuntu est par défaut assez sécurisé. Cependant, nulle part je ne pouvais trouver de rationalisation pour ce comportement. J'apprécierais une réponse :)
Le modèle d'autorisations de Linux signifie que, même si vous êtes le seul utilisateur de votre ordinateur, vous n'êtes pas le seul utilisateur du système. De nombreux services créeront leur propre compte utilisateur pour s'exécuter sous - par exemple, Apache s'exécutera généralement sous son propre compte dédié.
Ce que vous remarquerez également, c'est que votre dossier personnel n'est généralement accessible qu'à votre propre compte, c'est-à-dire les autorisations 700
ou drwx------
. Cela signifie que vous seul pouvez accéder à votre dossier de départ, même si les sous-dossiers de ce dossier ont un accès complet.
Cette combinaison fournit un équilibre utile. Les autorisations par défaut permettent aux comptes de service de lire tous les fichiers du système dont ils pourraient avoir besoin, mais ils ne peuvent rien changer. Tous les fichiers qui vous sont personnels doivent se trouver dans votre dossier personnel, de sorte qu'un service non autorisé ne pourra pas y accéder.
Vous pourriez trouver le Filesystem Hierarchy Standard une lecture utile. Cela décrit les autorisations et fonctions généralement attendues pour les systèmes Unix/Linux, et la plupart des distributions respecteront cela.
Lorsque vous créez de nouveaux fichiers et répertoires, les autorisations initiales sont contrôlées par votre paramètre umask
. L'application qui crée l'élément spécifie les autorisations maximales (généralement rwxrwxrwx
pour les répertoires et les fichiers exécutables, rw-rw-rw-
pour les fichiers de données), puis les autorisations dans umask
en sont soustraites.
Donc, si vous souhaitez des autorisations plus restrictives, vous devez définir votre umask
pour supprimer les autorisations que vous ne souhaitez pas accorder. Les autorisations que vous montrez proviennent du fait que umask 002
, donc il désactive simplement other=write
. Si vous souhaitez désactiver other=read/execute
également, vous devez utiliser:
umask 007
Traditionnellement, la valeur par défaut umask 002
provient de l'hypothèse que tous les utilisateurs d'un système particulier seraient une communauté coopérante (par exemple, des programmeurs dans le même département d'une organisation), donc il n'y a pas de raison pour empêcher d'autres utilisateurs de lire vos fichiers en général. Si vous avez des fichiers spécifiques qui sont plus privés, vous leur accordez des autorisations plus restrictives. Si l'hypothèse ci-dessus ne convient pas aux utilisateurs de votre système, vous devez utiliser un umask par défaut différent dans les scripts de démarrage de Shell.