Comment contrôler les autorisations de fichiers et de dossiers sur les serveurs Linux

Lorsque nous avons un serveur NAS basé sur Linux/Unix, ou directement un système d'exploitation tel que Debian ou Ubuntu où nous avons installé différents services pour accéder aux fichiers et dossiers sur le réseau local par d'autres utilisateurs, contrôler la lecture, l'écriture et l'exécution de leur accès. fichiers et dossiers que nous partageons est essentiel. Nous devons garder à l'esprit que, lors du partage de nos dossiers et fichiers via Samba ou FTP, il est possible que l'authentification des clients se fasse avec un utilisateur sans privilèges, nous devons donc organiser correctement les utilisateurs et les groupes pour fournir les autorisations nécessaires et Pas plus .

Nous devons également garder à l'esprit que les systèmes d'exploitation sont multi-utilisateurs, nous pourrions accéder simultanément avec plusieurs utilisateurs enregistrés localement dans notre système d'exploitation, il est donc très important de procéder à un examen périodique des autorisations existantes. Plusieurs fois, nous voulons empêcher les autres utilisateurs de l'ordinateur de modifier les fichiers, mais nous ne savons pas comment y parvenir. A cette occasion, nous allons vous apprendre à attribuer des autorisations aux dossiers et fichiers sous Linux.

Contrôler les autorisations de fichiers et de dossiers sur les serveurs Linux

Pour que tout soit beaucoup plus clair, nous allons diviser cet article en plusieurs sections qui nous permettront de mieux comprendre de quoi on parle à chaque instant. Il est nécessaire de préciser que tout ce que nous expliquerons se fera via la ligne de commande, c'est-à-dire que nous devrons sortir une console ou nous connecter via SSH à notre serveur Linux. Si vous n'êtes pas familier avec ce composant Linux, c'est peut-être le meilleur moment, car le niveau de difficulté dont nous allons parler est faible.

Qu'est-ce que la commande chmod et à quoi sert-elle ?

La commande chmod (change mode) est destinée à modifier l'utilisateur, le groupe et d'autres autorisations sur les fichiers et dossiers, nous pouvons modifier les autorisations de lecture, d'écriture et d'exécution de tous les fichiers et dossiers que nous voulons, en plus, nous pouvons faire a Modification récursive d'un certain dossier, de cette façon, tous les fichiers et dossiers qu'il contient seront également affectés par ce changement. La commande chmod est disponible dans les systèmes d'exploitation Linux et Unix. Par conséquent, si notre serveur est basé sur Unix comme un FreeBSD, nous pouvons modifier les autorisations des fichiers et des dossiers de la même manière que nous le faisons dans Debian ou Ubuntu.

La syntaxe pour utiliser chmod est la suivante :

autorisations de fichier/répertoire chmod [modificateurs]

Nous allons d'abord exécuter la commande chmod, puis nous pourrons incorporer différents modificateurs, par exemple, le "-R" pour le rendre récursif à tous les dossiers et fichiers du même dossier, puis nous devrons mettre les nouvelles autorisations qui nous voulons appliquer, et enfin, nous mettrons le chemin absolu ou relatif du fichier ou du dossier dont nous voulons modifier les autorisations.

Un détail très important est que dans certains cas, il est absolument nécessaire d'exécuter chmod avec des autorisations de superutilisateur, car seul l'utilisateur administrateur du système d'exploitation peut modifier les autorisations. Cela peut être réalisé en vous connectant en tant que root ou en utilisant directement la commande populaire « sudo » pour promouvoir temporairement le superutilisateur avec la commande à exécuter.

Exemples d'utilisation de chmod pour modifier les autorisations

La première chose que nous allons faire est de créer un nouveau dossier et des fichiers à l'intérieur, dans le but de vous entraîner avec ces dossiers et fichiers, et de ne pas modifier les autorisations par défaut des dossiers qui existent déjà dans votre système d'exploitation. Pour cette raison, nous allons faire des préparatifs pour que les tests soient un succès.

Avant de commencer, toutes les commandes que vous allez exécuter seront effectuées avec différents utilisateurs, afin de vérifier correctement les autorisations que nous allons appliquer. Pour passer d'un utilisateur à un autre sur les systèmes Linux, il suffit d'ouvrir la console et d'exécuter " ton nom d'utilisateur ", nous entrons le mot de passe et nous accéderons automatiquement au terminal comme si nous étions l'autre utilisateur.

Préparer notre système pour les tests

La première chose que nous allons faire est créer un dossier dans le répertoire courant de chaque utilisateur , généralement situé dans / home / username.

mkdir Carpetathis article

Plus tard, nous allons nous déplacer dans ce dossier et créer un fichier :

cd Carpetathis article

fichier de test tactile

Pour finir, nous écrirons la commande suivante pour monter de niveau et quitter le dossier que nous avons créé :

cd ..

Avec cela, nous avons notre système prêt à commencer à tester les changements d'autorisation.

Obtenir des informations sur les fichiers et les dossiers

Si nous voulons lister les fichiers existants dans un dossier, nous n'aurons qu'à écrire la commande suivante :

ls

Avec cela, nous obtenons uniquement le nom des fichiers ou des dossiers où nous nous trouvons sur le chemin. Pour obtenir beaucoup plus de détails, nous devrons écrire ce qui suit :

ls -l

Nous avons exécuté cette commande sur notre serveur, vous pouvez voir ici à quoi ressemble la sortie :

Cette commande fournit les informations suivantes (dans l'ordre de gauche à droite) :

  • Type de fichier (le fichier affiche « - » et le répertoire affiche un « d »).
  • Autorisations de lecture, d'écriture et d'exécution, à la fois pour l'utilisateur, le groupe et les autres.
  • Utilisateur propriétaire.
  • Groupe propriétaire du fichier.
  • Taille
  • Date de la dernière modification.
  • Nom de l'utilisateur

Une fois que nous avons créé le dossier et les fichiers, ainsi que nous avons vu la sortie de la commande «ls -l», nous allons interpréter les autorisations dont disposent les fichiers ou les dossiers.

Interpréter les autorisations dont dispose un fichier ou un dossier

Vous avez vu précédemment que les différents fichiers ont ces permissions :

drwxr-xr-x 3 bron bron 4096 may 6 13:19 Descargas

Dans cette chaîne proposée, nous verrons que, pour chaque fichier ou dossier, il existe en premier lieu une série de lettres. Ce sont les autorisations dont dispose le fichier et elles se lisent comme suit :

otorgar-permisos-fichero-o-carpeta-linux

Dans l'exemple précédent, nous avons les autorisations "drwxr-xr-x", cela signifie ce qui suit :

  • d : répertoire
  • rwx : autorisations de lecture, d'écriture et d'exécution pour l'utilisateur propriétaire du répertoire.
  • rx : autorisations de lecture et d'exécution pour le groupe propriétaire du répertoire.
  • rx : lire et exécuter les autorisations pour les autres dans le répertoire.

Si nous voulons que seul l'utilisateur propriétaire puisse lire, écrire et exécuter un certain fichier, nous devrions voir ce qui suit :

-rwx------

C'est-à-dire que nous pouvons accorder des autorisations aux rôles suivants :

  • Utilisateur propriétaire.
  • Groupe auquel appartient le propriétaire
  • Reste des utilisateurs de l'équipe.

Comment modifier les autorisations de fichiers et de dossiers

La commande que nous devons utiliser pour effectuer cette tâche est chmod, ce sera l'outil avec lequel nous pourrons ajouter ou supprimer des autorisations, à la fois sur un fichier et sur un dossier existant dans le système de fichiers de notre système d'exploitation. Pour faire cette configuration avec chmod, on peut le faire de deux manières différentes, en utilisant des lettres plus « humaines » mais plus longues, et aussi des chiffres au format « octal », ce qui est beaucoup plus rapide. Cette dernière forme est notre préférée en raison de sa rapidité, bien qu'il soit possible qu'au début vous aimiez davantage utiliser les lettres, car elle est beaucoup mieux comprise.

Des lettres

Si nous allons utiliser des lettres pour ajouter ou supprimer des autorisations d'un dossier ou d'un fichier, nous devons prendre en compte les rôles, les symboles et les autorisations.

Il existe trois types de rôles :

  • u : utilisateur
  • g : groupe
  • ou : autres
  • a : tous (tous), si vous devez appliquer la même autorisation à l'utilisateur, aux groupes et aux autres, utilisez « a » pour gagner du temps.

Deux types de symboles :

  • + : ajouter des autorisations
  • - : supprimer les autorisations
  • = : spécifie les autorisations définies.

Trois types de permis :

  • r : lecture
  • w : écriture
  • x : exécution

Ensuite, nous vous proposons une série d'exemples afin que vous puissiez voir de quoi nous parlons :

Accordez des autorisations complètes de lecture, d'écriture et d'exécution à tous les rôles, à la fois utilisateur, groupe et autres :

chmod ugo+rwx archivoDePrueba

Supprimez les autorisations de lecture, d'écriture et d'exécution des autres utilisateurs :

chmod o-rwx archivoDePrueba

Au final, tout réside dans la combinaison des rôles, des symboles et des autorisations en fonction du besoin que l'on a.

Octal basé à l'aide de nombres

La chmod commande est également compatible avec une autre nomenclature que nous allons vous apprendre et qui est basée sur l'octal.

Imaginez que les autorisations du propriétaire (rwx) soient identifiées par 0 et 1. C'est-à-dire que si, par exemple, nous voulons donner uniquement des autorisations de lecture et d'écriture (et non des autorisations d'exécution), ce serait : 110. Si nous voulons uniquement une autorisation de lecture, ce serait être : 100.

Par conséquent, en tenant compte de toutes les possibilités existantes, nous obtenons les valeurs suivantes :

  • 0: 0
  • 0: 0
  • 0: 1
  • 0: 1
  • 1: 0
  • 1: 0
  • 1: 1
  • 1: 1

C'est-à-dire que c'est quelque chose qui peut être extrapolé à la fois à l'utilisateur, au groupe et aux autres.

Le format de la commande serait le suivant :

chmod xxx archivoDePrueba

Où les x seront remplacés par un nombre en fonction des autorisations attribuées.

Par exemple, si nous voulons donner au propriétaire toutes les autorisations et laisser les deux autres rôles (groupe et autres) sans aucune autorisation, la commande serait :

chmod 700 archivoDePrueba

Si nous voulons donner des autorisations de lecture et d'écriture à tous les rôles, ce sera :

chmod 666 archivoDePrueba

Avec ces deux moyens simples, nous pouvons définir des autorisations de fichiers et de dossiers sur notre ordinateur Linux. De plus, nous aurons la commande ls -l à portée de main pour obtenir des informations en temps réel sur les fichiers et dossiers du système. Nous vous recommandons de consulter le manuel officiel de chmod pour Linux, pour cela, nous exécuterons ce qui suit sur la console :

man chmod

Nous vous recommandons également d'étudier les commandes getfacl et setfacl pour configurer des listes de contrôle d'accès plus avancées sous Linux, et non seulement d'utiliser des utilisateurs, des groupes et autres, cela nous permettra une plus grande granularité, bien qu'il soit clairement beaucoup plus avancé que le populaire chmod . En général, si vous faites une bonne organisation des utilisateurs et des groupes, vous ne devriez pas avoir besoin d'utiliser ces listes de contrôle d'accès.