Autorisations Linux pour les administrateurs système et les développeurs

Autorisations Linux pour les administrateurs système et les développeurs

Autorisations Linux pour les administrateurs système et les développeurs

La question des permissions sous Linux et de son utilisation correcte via la commande "chmod" est quelque chose de très communément exposé et discuté dans les communautés SL par des utilisateurs avancés, des techniciens et des administrateurs de serveurs et de systèmes. Par exemple, dans notre blog, nous avons 2 très bonnes publications à ce sujet, qui sont: Autorisations et droits sous Linux (01/12) y Permissions de base dans GNU / Linux avec chmod (08/16).

Mais plusieurs fois Développeurs SW qui sont ceux qui créent les applications et les systèmes, la plupart étant des systèmes et des sites Web, lors de leur développement, ils ne considèrent généralement pas quelles sont les autorisations correctes à implémenter sur eux, laissant la tâche presque toujours du côté du serveur et des administrateurs système. Dans cette publication, nous allons essayer de leur donner une petite orientation à ce sujet.

Autorisations Linux pour DevOps / BDA: Introduction

Introduction

La commande "chmod»Est très utile et important pour une utilisation avancée des systèmes d'exploitation basés sur Linux. Cependant, en tant que tel, "chmod" n'est pas un package autonome, mais est intégré dans le package "coreutils«. Le package "coreutils" est un package qui fournit au système d'exploitation de nombreux outils de base pour la gestion de fichiers, les interpréteurs de commandes et le traitement de texte. Et en général, il est déjà installé par défaut dans la plupart des distributions Linux.

Plus précisément, ce paquet contient, en plus de la commande "chmod", les commandes suivantes: arch base64 nom de base chat chcon chgrp chmod chown chroot cksum comm cp csplit date de coupure dd df dir dircolors dirname du echo env développer expr facteur faux troupeau fmt replier les groupes tête hostid id installer joindre lien ln logname ls md5sum mkdir mkfifo mknod num mktemp mv nicec noh noh noh od paste pathchk pinky pr printenv printf ptx pwd readlink realpath rm rmdir runcon sha * sum seq shred sleep sort split stat stty sum sync tac tail tee test timeout touch tr true tronquer tsort tty uname unxpand uniq dissocier les utilisateurs vdir wc whoami oui.

En résumé, la commande «chmod» permet la tâche très importante de gérer les permissions sur les fichiers et dossiers de tous les utilisateurs gérés par le système d'exploitation. Cela est dû au fait que Linux en tant que système d'exploitation est multi-utilisateurs et qu'il doit donc fournir à l'environnement de travail un système d'autorisation pour contrôler l'ensemble des opérations autorisées sur les fichiers et répertoires, qui comprend toutes les ressources système et les périphériques.

teneur

Autorisations Linux pour SW / BD: Contenu 1

Utilisation pour les développeurs SW

Un administrateur de serveurs et de systèmes (Sysadmin) lorsqu'il décide des autorisations à accorder à un utilisateur ou à un profil de niveau X sur un fichier ou un dossier X, doit savoir exactement quel type d'opérations ou de processus il doit effectuer sur eux. Dans le cas d'un serveur Web, les utilisateurs peuvent être classés en 2 types:

  1. Utilisateurs administrateurs: Qui ont un compte utilisateur sur le serveur pour se connecter, ont des privilèges spécifiques et qui effectuent généralement certaines modifications (copier / supprimer / modifier) ​​dans le Système ou Site Web installé via SSH ou SFTP, par exemple.
  2. Utilisateurs non administrateurs: Qu'ils n'ont pas de compte utilisateur sur le serveur, car ils ne sont que des visiteurs du site et du système Web. Et par conséquent, ils ne sont pas autorisés à accéder directement aux fichiers et aux dossiers, mais interagissent plutôt avec eux, via l'interface Web du site ou le système Web installé.

Cependant, lorsqu'un administrateur système ne reçoit pas suffisamment ou informations, documentation ou assistance par les développeurs de logiciels sur les capacités, les fonctionnalités ou la structure de fichiers des sites Web et des systèmes à installer finit par exécuter le maximum fiable, qui dans ce cas est généralement:

chmod 777 -R /var/www/sistema-web

Et souvent, cela se termine par:

chown root:root -R /var/www/sistema-web

Autorisations Linux pour SW / BD: Contenu 2

avertissement

C'est généralement une mauvaise pratique, mais cela évite généralement tout problème d'autorisation et de mauvaise exécution des sites et systèmes Web installés. Une mauvaise pratique, car lorsque la commande chmod 777 est exécutée de cette manière sur le dossier et les fichiers d'un site ou d'un système Web, il n'y a aucune sécurité à ce sujet.

Permettre à tout utilisateur du site ou du système Web en ligne de modifier ou de supprimer tout fichier dans la structure de fichiers du site ou du système Web au sein du serveur Web ou au-delà, sans obstacles majeurs. Puisqu'il faut se rappeler que c'est le serveur Web qui agit au nom des utilisateurs visiteurs, et qu'il est capable de modifier les mêmes fichiers qui sont en cours d'exécution.

Et au cas où l'utilisateur serait un attaquant, et obtiendrait une vulnérabilité dans le site ou le système Web, il pourrait facilement l'exploiter pour le dégrader, le désactiver, ou pire encore, insérer un code malveillant pour mener des attaques de phishing ou voler des informations sur le serveur sans que personne ne le sache facilement.

Autorisations Linux pour SW / BD: Contenu 3

Recommandations

Pour éviter ces types de mesures, soit L'administrateur système ou le développeur SW doit s'assurer que les dossiers et fichiers des différents systèmes ou sites Web portent les autorisations et les utilisateurs corrects et nécessaires. pour éviter de futurs problèmes de sécurité et de confidentialité.

Au niveau des autorisations, les 3 commandes suivantes peuvent être exécutées pour restaurer les autorisations et les utilisateurs d'un système ou d'un site Web installé à la normale., autrement dit, définissez la valeur 755 sur tous les répertoires et 644 sur les fichiers.

N'oubliez jamais de les exécuter dans le dossier Système ou Site Web, car si elles sont exécutées dans un dossier (répertoire) supérieur, tel que, par exemple, la racine du serveur, les commandes de commande modifieront de manière récursive toutes les autorisations du serveur, le laissant probablement inopérant.

Autorisations Linux pour SW / BD: Contenu 4

Autorisations appliquées aux dossiers (répertoires)

Exemples

Autorisations des répertoires et des fichiers

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

y

chmod 777 -R .

o

chmod 777 -R /var/www/sistema-web

En cas d'être en dehors du dossier (répertoire) du système ou du site Web.

Utilisateurs du système ou du site Web

chown www-data:www-data -R .

o

chown www-data:www-data -R /var/www/sistema-web

En cas de se trouver en dehors du dossier (répertoire) du système ou du site Web. Et l'utilisateur www-data n'est utilisé qu'à titre d'exemple, car c'est le plus utilisé ou le plus approprié en ce qui concerne l'utilisation d'Apache2.

Autorisations Linux pour SW / BD: Contenu 5

Autorisations appliquées aux fichiers (fichiers)

Une fois les modifications des autorisations effectuées, nous pouvons procéder à la modification manuelle des autorisations des répertoires et des fichiers pour lesquels nous voulons avoir des autorisations différentes. Et si nécessaire, changez les utilisateurs propriétaires ainsi que les utilisateurs nécessaires. Par conséquent, à ce stade, l'administrateur système et les développeurs de logiciels doivent s'entendre sur les autorisations nécessaires pour chaque dossier et fichier de la structure du système ou du site Web.

Autorisations Linux pour SW / BD: Conclusion

Conclusion

L'administration des autorisations sur les fichiers et dossiers des systèmes d'exploitation Linux ou UNIX est l'un des grands avantages et avantages de la même, puisqu'ils permettent un contrôle meilleur, précis et sûr des différents niveaux d'accès, d'édition et d'exécution sur les fichiers et dossiers.

Et bien plus encore, en ce qui concerne le niveau des serveurs Web, c'est-à-dire où sont hébergés les systèmes ou les sites Web internes et externes d'une organisation, car il est prioritaire de savoir quelles autorisations doivent être attribuées à chaque répertoire ou fichier, pour atteindre le meilleur équilibre entre confidentialité, sécurité et fonctionnalité.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   polg28 dit

    Bonjour comment allez vous?
    Je suis en train de barboter sous Linux, j'ai une application qui peut importer des fichiers à partir de celui-ci, l'utilisateur télécharge un .zip contenant un dossier avec des fichiers xml, après avoir décompressé les fichiers qu'ils sont insérés dans la base de données. Dans Windows, je n'ai aucun problème, lors du passage de l'application à linux, il me manquerait certaines autorisations, en principe pour tester tout ce que j'ai fait ce qu'ils disent dans cet article et cela ne devrait pas être fait haha ​​(mais je changerai une fois que je peut valider toutes les fonctionnalités).
    Le fait est que les fichiers sont décompressés mais je vois qu'ils sont téléchargés uniquement avec des autorisations de lecture et d'écriture pour le propriétaire, de lecture pour le groupe de propriétaires et sans autorisations pour les autres. Lorsque les fichiers appartiennent à l'utilisateur qui utilise l'application. Je comprends qu'en ne disposant pas des autorisations d'exécution, il ne peut pas suivre le déroulement normal du processus et procéder à l'insertion du xml dans la base de données. À quoi vient ma question, comment puis-je donner des autorisations à des fichiers que je n'ai pas encore sur le système? Dans le dossier qui est téléchargé (tmp), il a toutes les autorisations, il est appliqué de manière ré-italique, mais chaque fois que des fichiers sont téléchargés dans ce dossier, ils n'ont que les autorisations mentionnées. Est-il possible que les fichiers qui apparaissent dans ce dossier puissent également être laissés avec des autorisations d'exécution?
    J'espère avoir été clair, merci beaucoup d'avance et excellent blog

  2.   Post-installation Linux dit

    Je suppose que le dossier / tmp ou… / tmp a 755 autorisations, mais même ainsi lorsque l'utilisateur qui possède l'application les dépose, il leur laisse d'autres autorisations. Je ne suis pas développeur mais je suppose que dans la langue de l'application ou une autre on pourrait lui indiquer une routine qui exécute la commande commande (bash) des permissions nécessaires (chmod) et le propriétaire des fichiers (chown). Sinon, vous pouvez exécuter un script chaque minute qu'il s'exécute.