Setuid et Setgid sont des termes Unix, des abréviations pour "Set User ID" et "Set Group ID", respectivement. Setuid, aussi parfois appelé "suid", et "setgid" sont des autorisations d'accès qui peuvent être attribuées à des fichiers ou des répertoires sur un système d'exploitation basé sur Unix. Ils sont principalement utilisés pour permettre aux utilisateurs du système d'exécuter temporairement des binaires privilégiés élevés pour effectuer une tâche spécifique.
Ces autorisations sont les suivantes :
SET UID
set-user-ID-on-executionIl permet que, lorsqu'un fichier est exécuté, il le soit sous les privilèges du propriétaire. Par exemple, si nous devons exercer les privilèges root pour pouvoir accéder à un certain module, écrire dans les journaux, lire/écrire des périphériques, etc.
SGID, set-group-ID-on-execution permet que, lorsqu'un fichier est exécuté, il est exécuté sous les privilèges du groupe qui possède le fichier.
Faire SET UID et GID aux fichiers et répertoires, généralement à ces derniers, permettra un « héritage » des caractéristiques du répertoire précédent vers le suivant, et tous les fichiers/répertoires qui sont générés/créés/copiés dans les répertoires SET GID aura les caractéristiques du répertoire parent.
Le GID est généralement autorisé pour que les utilisateurs d'un groupe puissent travailler avec les fichiers du même groupe, l'UID pourra changer le propriétaire du fichier et les autorisations pour une autre personne du GROUPE, si l'option "cliquable" est active .
SET GID
SET GID est une option intéressante si de nombreux utilisateurs vont accéder à un système de stockage commun, soit
- SAMBA
- FTP
- HTTP
- Base de données
Exemple pour implémenter SET UID et GID
Depuis le terminal, nous effectuons les tâches suivantes :
Nous créons un exemple de répertoire :
[root @ root] mkdir EXEMPLENous listons le répertoire:
[root @ root] vdirNous modifions les permissions du répertoire pour que seuls les utilisateurs du groupe "programmeurs" puissent y accéder, les permissions sont des paramètres du commande chmod et sont à côté
+ m: pour activer le mode suid
g + s: pour activer le mode sgid
[root @ root] # chown user.programmeurs
[root @ root] # chmod g + s EXEMPLE
[racine @ racine] # vdirOn liste le répertoire et on verra le contenu
4 drwxrwxrwx 2 programmeurs utilisateurs EXEMPLEPar défaut, aucun utilisateur n'appartenant pas au groupe "programmeurs" ne pourra travailler avec les fichiers de ce répertoire. D'autre part, les utilisateurs du groupe pourront travailler avec les fichiers en fonction de leurs attributs que les utilisateurs ont, s'ils ont des autorisations en lecture ou en écriture seule.
Certains logiciels et services comme Samba, FTP, HTTPIls ont des caractéristiques particulières qui ne sont pas régies par ces règles et les complètent en les enrichissant.
Maintenant que nous avons créé le SET UID et le GID, si nous créons un fichier ou un répertoire dans l'exemple à partir de n'importe quel utilisateur, il héritera des caractéristiques que nous avons définies précédemment, quels que soient son créateur et les autorisations dont il dispose.
A titre d'exemple, nous pouvons dire que si nous créons un fichier report.txt dans le répertoire EXAMPLE et que l'utilisateur qui l'a créé est root, et pourtant le groupe est des programmeurs, le groupe auquel le fichier appartiendra sera des programmeurs.
Comme le répertoire EXAMPLE est avec les attributs : drwxrwsrwx, indiquant que le répertoire est SET GID, tous les fichiers créés dans celui-ci appartiendront à l'utilisateur et au groupe indiqué par le SET GID.
Si nous voyons une liste avec plusieurs fichiers, cela ressemblerait à ceci :
4 drwxr-Sr-x 2 programmeurs jose 4096 home.html 4 drwxr-Sr-x 2 programmeurs carlos 4096 dependencies.txt 4 drwxr-Sr-x 2 programmeurs racine 4096 report-project.odfJ'espère que ce tutoriel vous aidera. Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif