9 votes

Pourquoi /usr/local/ est-il possédé par root ?

Je me demande pourquoi des répertoires tels que /usr et /usr/local/ sont possédés et créés par root. Habituellement, je suis connecté en tant qu'utilisateur normal et je veux stocker des programmes que j'utilise personnellement dans ces répertoires. Par exemple, Android Studio y est stocké. Chaque fois que j'ai besoin de faire une mise à jour ou de faire un quelconque changement, les permissions ne sont pas accordées car je ne suis pas connecté en tant que root.

Le nom du répertoire "usr" implique déjà que les programmes basés sur l'utilisateur (normal) sont censés être là.

N'ai-je pas compris le concept derrière ce répertoire?

16voto

Jacob Vlijm Points 78990

Il n'y a rien qui vous empêche d'installer et d'exécuter des applications localement, sans privilèges sudo. Localement, cela signifie: dans votre propre répertoire personnel. C'est ainsi que c'est censé être.

Vous ne devriez pas avoir les mêmes permissions sur les répertoires que vous partagez avec d'autres utilisateurs possibles sur votre système.

À propos de /usr

L'explication sur ce que signifie littéralement usr varie de unix system resources, à user system resources. Cependant, ce dernier ne devrait pas être interprété comme appartenant aux utilisateurs, mais comme les servant, contrairement aux servant le système. Ici nous lisons à propos de /usr:

Hierarchie secondaire pour les données utilisateur en lecture seule; contient la majorité des utilitaires et des applications (multi-)utilisateurs.

En fin de compte, toutes les explications (modernes) mentionnent qu'il s'agit de "données partageables, en lecture seule", et: "ne doivent pas être écrites".

5voto

muru Points 180007

Le nom du répertoire "usr" sous-entend déjà que les programmes basés sur l'utilisateur (normaux) sont censés se trouver là.

Pas depuis les temps sombres de l'histoire d'Unix, si cela a déjà été le cas. Que signifient les abréviations "etc" et "usr"?

Maintenant, le répertoire /usr est destiné à être géré par l'administrateur. Cependant, presque tout le contenu de /usr est géré par des paquets, et /usr/local est l'endroit où l'administrateur peut installer des logiciels locaux, en dehors du système de gestion de paquets. Consultons le Standard de la hiérarchie du système de fichiers :

/usr/local : Hiérarchie locale

But

La hiérarchie /usr/local est utilisée par l'administrateur système lors de l'installation de logiciels localement. Elle doit être protégée contre toute modification lors de la mise à jour du logiciel système. Elle peut être utilisée pour les programmes et les données partageables entre un groupe d'hôtes, mais non présentes dans /usr.

Les logiciels installés localement doivent être placés dans /usr/local plutôt que dans /usr, sauf s'ils sont installés pour remplacer ou mettre à jour des logiciels dans /usr.

Pour les répertoires /usr et /usr/local dans un système Linux moderne, les utilisateurs normaux ne devraient pas avoir de permissions d'écriture. Sur un système monoutilisateur, vous pourriez bien sûr accorder l'accès en écriture à /usr/local, mais de toute façon, vous avez les privilèges sudo (à quelle fréquence devez-vous écrire dans ces répertoires ?).

0voto

wideright141 Points 1

Le répertoire est destiné aux logiciels installés de manière globale par l'administrateur. Si vous souhaitez installer des logiciels par vous-même pour vous-même, faites-le dans votre répertoire personnel. Consultez la FHS pour plus d'informations sur les emplacements standard.

0voto

someon Points 1

Essayez de placer les fichiers que vous aimez dans un sous-répertoire; tel que ~/program/runthis

Ensuite, dans /usr/bin faire

sudo ln -s /home/username/program/runthis runthis

et ensuite faire

chown -h username:username runthis

Cela devrait créer un lien symbolique avec uniquement vos autorisations dans le répertoire /usr/bin qui pointe vers un fichier qui se trouve dans un sous-dossier de votre répertoire personnel. De cette façon, l'exécution de ce fichier n'a que vos autorisations d'utilisateur et n'a jamais les autorisations root car le lien symbolique et les exécutables vous appartiennent et non à root. Cela serait bien pour fonctionner sur une machine personnelle et restreindre l'accès du programme.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X