GNU/Linux >> Tutoriels Linux >  >> Linux

Comment modifier les autorisations sous Linux

Sous Linux et Unix, la sécurité commence par les autorisations de fichiers. À un niveau très basique, les autorisations de fichiers et de répertoires jouent un rôle vital dans la sécurité d'un système. Lorsque vous créez un fichier ou un répertoire sur des systèmes Linux, il est fourni avec des autorisations par défaut.

Les autorisations de fichiers sont appliquées à trois niveaux :le owner , group members et others . La commande chmod est utilisée sous Linux pour modifier ces autorisations.

Dans ce didacticiel, nous expliquerons comment modifier les autorisations de fichiers sous Linux à l'aide de la commande chmod.

1) Modifier les autorisations à l'aide de la méthode numérique (octal)

Les autorisations (modes d'accès) peuvent être modifiées avec la commande chmod en utilisant certains opérateurs (-, + ou =) pour attribuer des autorisations (r, w ou x) à un utilisateur spécifique (u, g, o ou a). La commande accepte les spécifications de mode d'accès numérique (octal) ou symbolique.

La méthode numérique est le moyen le plus couramment utilisé pour définir les autorisations pour les fichiers et les répertoires. Pour ce faire, entrez chmod numeric_permission filename .

Chaque autorisation est représentée par un nombre et l'autorisation pour une entité spécifique est finalement représentée par un ensemble de trois colonnes.

Dans le schéma ci-dessus,

L''utilisateur' reçoit (4 2 1 ) l'autorisation où l'utilisateur a lu, écrit et exécuté.

Le 'Groupe' est donné (4 2 0) autorisation où les membres du groupe peuvent lire et écrire.

Le 'Autre (monde)' est donné (4 0 0) permission où les autres peuvent seulement lire.

Dans la méthode numérique, toutes les autorisations sont modifiées en même temps.

Par exemple,

755  :définissez l'autorisation de lecture + écriture + exécution sur l'user , définissez l'autorisation de lecture + exécution sur le group et définissez l'autorisation de lecture + exécution sur les others .

# chmod 755 asciiquarium.tar.gz
# ls -l asciiquarium.tar.gz 
-rwxr-xr-x 1 linoadmin linoadmin 15436 Mar 9 2013 asciiquarium.tar.gz

476  :définir uniquement l'autorisation de lecture pour l'user , définissez l'autorisation de lecture + écriture + exécution sur le group et définissez l'autorisation de lecture + écriture sur les others .

# chmod 476 bootstrap
# ls -l bootstrap
-r--rwxrw- 1 root root 5747 Apr 25 01:45 bootstrap

500  :définissez l'autorisation de lecture + exécution sur l'user , ne définissez aucune autorisation sur le group et ne définissez aucune autorisation pour les others .

# chmod 500 asciiquarium_1.1/
# ls -ld asciiquarium_1.1/
dr-x------ 2 linoadmin linoadmin 4096 Mar 9 2013 asciiquarium_1.1/

Lorsque vous utilisez la méthode numérique, vous devez toujours spécifier trois valeurs (propriétaire, groupe et autres).

2) Modifier les autorisations en mode symbolique

Le mode d'accès numérique est préféré par la plupart des utilisateurs de Linux. Cependant, certaines personnes préfèrent utiliser des formes symboliques car elles modifient généralement un mode existant au lieu de le remplacer complètement.

Le mode symbolique est utilisé comme chmod entity=permissions filename . Les spécifications du mode symbolique comportent trois parties, composées de caractères individuels et utilisent une lettre pour identifier la partie :

  • Entity :Utilisateur propriétaire =u , propriétaire du groupe =g , autre =o , et tous =un
  • Operation  :+ ajouter, - à supprimer, ou = à attribuer (supprimer les autres autorisations existantes)
  • Permissions to set :r =lire, w =écrire, et x =exécuter

Quelques exemples pour vous faire comprendre.

chmod +x  :Ajoutez une autorisation d'exécution pour tous les utilisateurs, groupes et autres de l'entité. Il sert à rendre exécutable un script ou un programme afin de l'exécuter

# chmod +x hello.sh
# ls -l hello.sh 
-rwxr-xr-x 1 root root   66 May 15 20:12 hello

Vous pouvez maintenant exécuter votre script comme ci-dessous

# ./hello 
Hello... How are you ?

u+x  :Ajouter une autorisation d'exécution pour l'utilisateur uniquement

# chmod u+x backupdb.sh
# ls -l backupdb.sh 
-rwxr--r-- 1 linoadmin linoadmin 15436 Mar 9 2013 backupdb.sh

go-w  :Supprimer l'autorisation d'écriture du groupe et des autres classes uniquement.

# chmod go-w script-test/
# ls -ld script-test/
drwxr-xr-x 3 root root 4096 Apr 25 02:21 script-test/

a=rw  :Définissez des autorisations de lecture et d'écriture, mais pas d'exécution, pour tout le monde.

# chmod a=rw bootstrap
# ls -l bootstrap
-rw-rw-rw- 1 root root 5747 Apr 25 01:45 bootstrap

g-x,o-rx  :Supprimer l'autorisation d'exécution pour le group et supprimer l'autorisation de lecture + exécution pour l'other .

Remarque :N'utilisez pas d'espace après la virgule (, )

# chmod g-x,o-rx baba/

Vérifions l'autorisation à l'aide de la commande ls :

# ls -ld baba/
drwxr----- 2 root root 4096 Apr 13 01:35 baba/

Lorsque vous utilisez la méthode symbolique, il est possible de faire des combinaisons pour manipuler certaines entités en même temps.

Gardez à l'esprit que lorsque vous utilisez le mode symbolique, les autorisations que vous ne spécifiez pas restent telles qu'elles étaient avant l'exécution de la commande chmod

3) Modifier les autorisations de manière récursive

Lorsque vous utilisez la commande chmod sur un répertoire sans aucune option, cela n'affecte pas les autorisations sur ses sous-répertoires. Cela signifie que les autorisations ne sont appliquées que sur le répertoire lui-même.

Pour modifier les permissions d'un répertoire avec ses sous-répertoires (récursivement), nous pouvons utiliser -R option.

Par exemple, regardez notre répertoire 'asciiquarium_1.1' sur lequel nous avons appliqué 500 autorisations.

Lorsque nous listons l'autorisation pour les fichiers et les répertoires dans le répertoire 'asciiquarium_1.1', nous pouvons dire qu'il n'est pas défini sur '500'.

# ls -l asciiquarium_1.1/
total 60
-rw-rw-r-- 1 linoadmin linoadmin 27679 Mar  9  2013 asciiquarium
-rw-rw-r-- 1 linoadmin linoadmin   228 Mar  9  2013 CHANGES
-rw-rw-r-- 1 linoadmin linoadmin 18092 Mar  9  2013 gpl.txt
-rw-rw-r-- 1 linoadmin linoadmin    45 Mar  9  2013 MANIFEST
-rw-rw-r-- 1 linoadmin linoadmin  1060 Mar  9  2013 README

Utilisons maintenant chmod -R commande avec les mêmes permissions sur le répertoire 'asciiquarium_1.1' en utilisant la commande suivante :

# chmod -R 500 asciiquarium_1.1/

Vérifions maintenant l'autorisation des fichiers et des répertoires comme suit :

# ls -l asciiquarium_1.1/
total 60
-r-x------ 1 linoadmin linoadmin 27679 Mar  9  2013 asciiquarium
-r-x------ 1 linoadmin linoadmin   228 Mar  9  2013 CHANGES
-r-x------ 1 linoadmin linoadmin 18092 Mar  9  2013 gpl.txt
-r-x------ 1 linoadmin linoadmin    45 Mar  9  2013 MANIFEST
-r-x------ 1 linoadmin linoadmin  1060 Mar  9  2013 README

Vous pouvez voir que les autorisations ont été définies sur les fichiers et les sous-répertoires.

4) Autorisations de bits spéciales

La plupart des tâches que vous effectuerez avec des autorisations le seront avec les autorisations de lecture, d'écriture et d'exécution. Cependant, il existe plusieurs autres autorisations spéciales que vous pouvez attribuer aux fichiers et répertoires de votre système de fichiers. Ces autorisations spéciales sont référencées par un chiffre supplémentaire ajouté au début du mode du fichier ou du répertoire.

Les bits spéciaux suivants sont disponibles pour l'utilisation du système de fichiers Linux :

  • SUID :l'autorisation Définir l'ID utilisateur permet aux utilisateurs d'exécuter un programme comme s'ils étaient l'utilisateur propriétaire du programme ; dans la plupart des cas, l'utilisateur propriétaire est l'utilisateur racine. La valeur numérique de cet ensemble d'autorisations est 4XXX (où "XXX" est remplacé par les valeurs numériques de l'ensemble de trois mentionnés précédemment).
  • SGID :Lorsqu'elle est définie sur un répertoire, l'autorisation Définir l'ID de groupe donne automatiquement la propriété du groupe de tous les nouveaux fichiers créés dans le répertoire au propriétaire du groupe du répertoire (numérique =2XXX). Lorsqu'il est défini sur un fichier, le SGID permet aux utilisateurs d'exécuter un programme comme s'ils étaient le groupe propriétaire du fichier.
  • Point collant :t Cet ensemble d'autorisations est utilisé pour empêcher les "non-propriétaires" de supprimer des fichiers dans un répertoire commun (numérique =1XXX). Dans un répertoire sticky bit, seul le propriétaire du fichier ou le propriétaire du répertoire peut supprimer le fichier (root peut toujours également supprimer des fichiers).

Pour comprendre, laissez-moi vous donner un exemple :

Nous appliquerons l'autorisation SUID sur un fichier à l'aide de la commande suivante :

# chmod 4755 bootstrap
# ls -l bootstrap
-rwsr-xr-x 1 root root 5747 Apr 25 01:45 bootstrap

Conclusion

Lors de la modification des autorisations, vous pouvez toujours utiliser la méthode numérique ou la méthode symbolique. Les autorisations numériques sont les plus souvent utilisées et elles apparaissent à chaque fois. En règle générale, je recommande d'utiliser le mode numérique pour définir ou forcer des autorisations sur un objet, plutôt que d'apporter de petites modifications aux autorisations. Vous devez avoir un accès utilisateur root ou sudo pour modifier les autorisations des fichiers et répertoires appartenant à d'autres, sinon il est uniquement possible de modifier les autorisations des fichiers et répertoires que vous possédez.


Linux
  1. Comment changer un nom d'hôte sous Linux

  2. Comment changer un nom d'utilisateur sous Linux

  3. Comment changer le nom d'hôte sous Linux

  4. Comment changer le port SSH sous Linux

  5. Comment changer de shell sous Linux

Commande Chmod - Comment modifier les autorisations de fichiers sous Linux

Comment changer l'adresse MAC sous Linux

Comment changer un shell d'utilisateurs sous Linux

Comment changer d'utilisateur sous Linux

Comment changer l'adresse IP sous Linux

Comment modifier les autorisations de fichier