Comment utiliser les autorisations spéciales les bits setuid, setgid et collants

Comment utiliser les autorisations spéciales les bits setuid, setgid et collants

Objectif

Apprendre à savoir comment fonctionne les autorisations spéciales, comment les identifier et les définir.

Exigences

  • Connaissance du système d'autorisations UNIX / Linux standard

Difficulté

FACILE

Conventions

  • # - nécessite que les commandes Linux soient exécutées avec des privilèges racine
    directement en tant qu'utilisateur racine ou en utilisant Sudo commande
  • $ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Introduction

Normalement, sur un système d'exploitation de type Unix, la propriété des fichiers et répertoires est basée sur la valeur par défaut uid (user-id) et gid (Group-ID) de l'utilisateur qui les a créés. La même chose se produit lorsqu'un processus est lancé: il s'exécute avec l'id utilisateur et le groupe de groupe efficace de l'utilisateur qui l'a commencé, et avec les privilèges correspondants. Ce comportement peut être modifié en utilisant des autorisations spéciales.

Le bit setuid

Quand le setuid Bit est utilisé, le comportement décrit ci-dessus est modifié de sorte que lorsqu'un exécutable est lancé, il ne fonctionne pas avec les privilèges de l'utilisateur qui l'a lancé, mais avec celui du propriétaire de fichier à la place. Ainsi, par exemple, si un exécutable a le setuid Bit réglé dessus, et il appartient à Root, lorsqu'il est lancé par un utilisateur normal, il fonctionnera avec des privilèges racine. Il devrait être clair pourquoi cela représente un risque de sécurité potentiel, s'il n'est pas utilisé correctement.

Un exemple d'exécutable avec l'ensemble d'autorisation setuid est passage, L'utilitaire que nous pouvons utiliser pour modifier notre mot de passe de connexion. Nous pouvons vérifier qu'en utilisant le LS commande:

ls -l / bin / passwd -rwsr-xr-x. 1 racine racine 27768 11 février 2017 / bin / passwd 

Comment identifier le setuid bit? Comme vous l'avez sûrement remarqué en regardant la sortie de la commande ci-dessus, le setuid le bit est représenté par un s à la place du X du bit exécutable. Le s implique que le bit exécutable est défini, sinon vous verriez un capital S. Cela se produit lorsque le setuid ou setgid Les bits sont définis, mais le bit exécutable n'est pas, montrant à l'utilisateur une incohérence: le setuid et setgit Les bits n'ont aucun effet si le bit exécutable n'est pas défini. Le bit setuid n'a aucun effet sur les répertoires.



Le bit setgid

Contrairement au setuid peu, le setgid Bit a un effet sur les fichiers et les répertoires. Dans le premier cas, le fichier qui a le setgid Bit Set, lorsqu'il est exécuté, au lieu d'exécuter avec les privilèges du groupe de l'utilisateur qui l'a commencé, s'exécute avec ceux du groupe qui possède le fichier: en d'autres termes, l'ID de groupe du processus sera le même de celui de celle de le fichier.

Lorsqu'il est utilisé sur un répertoire, le setgid Bit modifie le comportement standard afin que le groupe des fichiers créés à l'intérieur dudit répertoire ne soit pas celui de l'utilisateur qui les a créés, mais celui du répertoire parent lui-même. Ceci est souvent utilisé pour soulager le partage des fichiers (les fichiers seront modifiables par tous les utilisateurs qui font partie dudit groupe). Tout comme le setuid, le bit setgid peut facilement être repéré (dans ce cas sur un répertoire de test):

Test ls -ld drwxrwsr-x. 2 Egdoc Egdoc 4096 nov 1 17:25 Test 

Cette fois le s est présent à la place du bit exécutable sur le secteur du groupe.

Le peu collant

Le bit collant fonctionne d'une manière différente: bien qu'il n'ait aucun effet sur les fichiers, lorsqu'il est utilisé sur un répertoire, tous les fichiers dudit répertoire ne seront modifiables que par leurs propriétaires. Un cas typique dans lequel il est utilisé, implique le / tmp annuaire. En règle générale, ce répertoire est écrite par tous les utilisateurs du système, donc pour rendre impossible un utilisateur à supprimer les fichiers d'un autre, le bit collant est défini:

$ ls -ld / tmp drwxrwxrwt. 14 Root Root 300 nov 1 16:48 / TMP 

Dans ce cas, le propriétaire, le groupe et tous les autres utilisateurs ont des autorisations complètes sur le répertoire (lire, écrire et exécuter). Le bit collant est identifiable par un t qui est rapporté où normalement l'exécutable X Bit est montré, dans la section «autre». Encore une fois, une minuscule t implique que le bit exécutable est également présent, sinon vous verriez un capital T.

Comment définir des bits spéciaux

Tout comme les autorisations normales, les bits spéciaux peuvent être attribués avec le chod commande, en utilisant le numérique ou le UGO / RWX format. Dans le premier cas le setuid, setgid, et collant Les bits sont représentés respectivement par une valeur de 4, 2 et 1. Ainsi par exemple si nous voulons définir le setgid bit sur un répertoire que nous exécutions:

$ chmod 2775 Test

Avec cette commande, nous définissons le setgid bit sur le répertoire, (identifié par le premier des quatre numéros), et a accordé des privilèges complets à son propriétaire et à l'utilisateur qui sont membres du groupe auquel appartient le répertoire, plus lire et exécuter l'autorisation pour tous les autres utilisateurs (N'oubliez pas que le bit d'exécution sur un répertoire signifie qu'un utilisateur est capable de CD ou utiliser LS Pour énumérer son contenu).

L'autre façon dont nous pouvons définir les bits d'autorisations spéciales est d'utiliser la syntaxe UGO / RWX:

$ chmod g + s test

Pour appliquer le setuid Bit dans un fichier, nous aurions exécuté:

$ chmod u + s fichier

Tandis que pour appliquer le bit collant:

$ chmod o + t test

L'utilisation d'autorisations spéciales peut être très utile dans certaines situations, mais si elle n'est pas utilisée correctement, la peut introduire de graves vulnérabilités, alors réfléchissez à deux fois avant de les utiliser.

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Créer et configurer les répertoires Setgid pour la collaboration -…
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Comment créer Modifier et supprimer le compte des utilisateurs sur Linux
  • Fichiers de configuration Linux: 30 premiers
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?
  • Linux peut-il obtenir des virus? Exploration de la vulnérabilité de Linux…
  • Téléchargement Linux
  • Comment doubler Kali Linux et Windows 10