Suid
L'ID utilisateur SUID ou Set Owner est un indicateur de bit d'autorisation qui s'applique aux exécutables. SUID permet à un autre utilisateur d'exécuter un exécutable avec les mêmes autorisations que le propriétaire du fichier au lieu des autorisations de l'utilisateur alternatif.
Utilisons un exemple pour démontrer SUID. Supposons qu'il y ait trois utilisateurs: Kalyani, Sara et John. Supposons que Kalyani ait un accès root complet; c'est-à-dire qu'elle peut utiliser la commande sudo avec un mot de passe valide. Supposons en outre que Sara et John ont des privilèges moins ou très limités sur la machine. Supposons maintenant que nous avons un exécutable (ex: su, utilisé pour changer d'utilisateurs) qui appartient à Root. Attention, c'est important; il appartient à la racine, et donc seule Root a les autorisations pour l'exécuter!!!
Cependant, disons que nous l'a attribué SUID. Parce que nous l'avons attribué SUID, cet exécutable, Su, n'est pas géré non comme Sara ou John mais plutôt comme Root. Techniquement, Sara peut exécuter ses fichiers et John est autorisé à exécuter ses fichiers. Ils ne sont pas autorisés à exécuter des fichiers qui appartiennent à la racine. S'ils veulent l'exécuter, généralement, vous devrez taper la commande sudo. Mais ici, Sara gère un fichier qu'elle ne possède pas! Et donc ce que nous notons, c'est que lorsque vous utilisez des pièces, l'exécutable est exécuté en tant que propriétaire du fichier, root et non la personne qui l'exécute (Ex: Sara ou John).
Par exemple, prenons la commande passwd. La commande passwd est utilisée pour modifier le mot de passe d'un utilisateur. Maintenant, si nous regardons le fichier en détail, nous remarquerons qu'au lieu d'un X qui signifie l'exécution, il y aura un «S». Le «S» ici représente Suid. Vous noterez en outre que le fichier appartient à root. Cela signifie techniquement que seule Root a la permission de l'exécuter; Cependant, vous remarquerez que tout le monde peut exécuter la commande. En tant que tel, avec l'ensemble des autorisations SUID, cet exécutable particulier peut être exécuté par Sara et John alors qu'il ne leur appartient pas réellement! Sara et John obtiennent les mêmes autorisations que Root lors de l'exécution de cet exécutable particulier. C'est tellement même lorsque Sara et John n'ont pas d'accès root et n'ont pas de privilèges racinaires.
Donc, en bref, à cause de Suid, Sara et John exécuteront la commande Passwd comme s'ils étaient son propriétaire, root!
Supposons maintenant un instant que je retire le SUID de la commande passwd. Voyons ce qui va se passer (dans l'image ci-dessous).
Voyons maintenant ce qui va se passer lorsque nous essaierons d'utiliser la commande Passwd (une fois que SUID a été supprimé):
Comme vous pouvez le voir, lorsque j'ai retiré le SUID de la commande passwd, puis j'ai essayé de l'exécuter sous le nom de Sara, il a refusé de l'exécuter. Cela a entraîné une erreur!
Suid n'est pas quelque chose à prendre à la légère, et en tant que tel, il faut être très prudent lors de l'attribution. En fait, il y a des attaques spéciales dans la cybersécurité qui visent précisément les exécutables fonctionnant sur SUID.
Afin de trouver les exécutables qui ont un ensemble SUID, nous tapons:
# pour obtenir toutes les pièces
trouver / -perm -4000 2> / dev / null
# pour obtenir tous les guides
trouver / -perm -2000 2> / dev / null
# Trouvez tous les bits collants
trouver / -perm -1000 2> / dev / null
Définition de SUID
Maintenant, nous devons apprendre à définir des pièces. Il existe deux façons d'utiliser CHMOD: numérique et symbolique.
Utilisation de la méthode numérique:
Nous utilisons le code suivant pour définir les autorisations:
Setuid = 4
Setgid = 2
Collant = 1
Aucun = 0
Lire = 4
Écrire = 2
Exécuter = 1
Lors des autorisations régulières, nous écrivions ce qui suit:
EXECTRATION CHMOD 0777
Ce dernier impliquerait que nous donnons des autorisations de lecture, d'écriture et d'exécution à l'utilisateur, au groupe et autres. Maintenant, pour utiliser un SUID, nous écrivions ce qui suit:
EXECTATION CHMOD 4XXX
Ex:
script chmod 4744
Ici, ce que nous devons noter, c'est le 4 en première position. Les 4 donnent des autorisations SUID.
Ici, cela ressemblerait à ceci:
Le X pour l'exécution sera remplacé par un «S». Maintenant, si le fichier n'a pas été défini comme un exécutable, ce sera un capital S («s»). Alors ici nous avons:
-RWSR - R--
Le «S» signifie que SUID a été défini (et le fichier est exécutable)!
Utilisation de la méthode symbolique:
La même chose peut également être effectuée en utilisant la méthode symbolique:
EXECTATION CHMOD U + S
Ex:
script chmod u + s
Maintenant, ici, il y a des moments où vous pourriez voir un «S» capital. Le capital «s» signifie que le fichier n'est pas encore exécutable.
Pour révoquer les droits SUID, Type:
Exécutable Chmod U-S
Ex:
script chmod u-s
Guidage
Guid est similaire à SUID. Dans le SUID, l'exécutable en question s'exécute avec les privilèges du propriétaire du fichier. Dans le GUID, s'il s'agit d'un exécutable, il fonctionne avec les autorisations du groupe. S'il s'agit d'un répertoire, il se traduit par tous les nouveaux fichiers et répertoires créés pour appartenir au groupe.
Pour définir le GUID à l'aide de la méthode numérique:
EXECTATION CHMOD 2XXX
Ex:
script chmod 2744
Ici, le point à noter est le 2 (en première position), qui signifie Guid.
Pour définir le GUID en utilisant la méthode symbolique:
EXECTATION CHMOD G + S
Ex:
script chmod g + s
Cependant, ici, je vois d'abord:
Ici, il y a un «S» en capital. Cela signifie que le fichier n'est pas exécutable. Cela peut facilement être corrigé en exécutant le code suivant:
Chmod + x Exécutable
Ex:
script chmod + x
Bits collants
Les bits collants s'appliquent aux répertoires. Lorsque des bits collants sont définis sur un répertoire particulier, tout utilisateur qui a accès au répertoire et son contenu ne peut supprimer ses propres fichiers et ne peut pas toucher ou supprimer des fichiers appartenant à quelqu'un d'autre. Les bits collants sont généralement utilisés lors de l'utilisation d'un dossier partagé. Personne ne peut supprimer le fichier d'un autre dans le dossier partagé même si l'autorisation est 777.
Pour définir des bits collants en utilisant la méthode numérique:
EXECTATION CHMOD 1XXX
Ex:
script chmod 1744
Ici, nous utilisons le 1 dans la première position pour indiquer que ce sera un peu collant.
Pour définir des bits collants en utilisant la méthode symbolique:
Chmod O + T exécutable
Ex:
script chmod o + t
Les autorisations sont une partie cruciale de Linux. La commande chmod est généralement utilisée pour définir et modifier les autorisations simples. Cependant, il y a des autorisations spéciales que l'on peut également définir en utilisant la commande CHMOD. Ces autorisations spéciales sont connues sous le nom de SUID, GUID et Sticky Bit. Lorsqu'il est appliqué sur un exécutable particulier, les autorisations spéciales s'exécutent avec les autorisations du propriétaire du fichier ou du groupe. En d'autres termes, il élève les privilèges de l'utilisateur à celui du propriétaire, enracinement, temporairement lors de l'utilisation de cet exécutable. Cependant, l'utilisation incorrecte des autorisations spéciales peut devenir une menace sérieuse. En fait, dans le domaine de la cybersécurité, il est utilisé comme une vulnérabilité potentielle pour augmenter les privilèges sur une machine. Alors utilisez-le judicieusement et très, très soigneusement!
Codage heureux!