Setuid

owercase le setuid et le setgid (abréviation identification réglée de ser de u et identification réglée de roup de g , respectivement) sont des drapeaux de droits d'accès d'Unix qui permettent à des utilisateurs de courir un exécutable avec les permissions du propriétaire ou du groupe exécutable. Ils sont employés souvent pour permettre à des utilisateurs sur un système informatique de lancer des programmes avec des privilèges temporairement elevated afin d'effectuer une tâche spécifique.

le setuid et le setgid sont nécessaires pour les tâches qui exigent des privilèges plus élevés que ceux qu'un utilisateur commun a, comme changer son mot de passe d'ouverture. Certaines des tâches qui exigent des privilèges elevated peuvent immédiatement ne pas être évidentes, cependant &mdash ; comme la commande du cinglement , qui doit envoyer et détecter à l'oreille les paquets de commande sur une interface de réseau.

setuid sur des executables

Quand un dossier exécutable binaire du de a été donné l'attribut de setuid, les utilisateurs normaux sur le système peuvent exécuter ce dossier et gagner les privilèges de l'utilisateur qui possède le dossier (généralement racine ) dans le processus créé . Quand des privilèges de racine ont été gagnés dans le processus, l'application peut alors effectuer des tâches sur le système que les utilisateurs réguliers normalement seraient restreints de faire. L'utilisateur de invocation sera interdit par le système de changer le nouveau processus de quelque façon, comme par employer le Ptrace , LD_LIBRARY_PATH ou lui envoyer des signaux (des signaux de la borne seront encore acceptés, cependant). En raison de la plus grande probabilité des failles de sécurité, beaucoup de logiciels d'exploitation ignorent l'attribut de setuid une fois appliqués aux manuscrits de coquille exécutables de .

Tandis que le dispositif de setuid est très utile dans beaucoup de cas, il peut poser un risque pour la sécurité si l'attribut de setuid est assigné aux programmes exécutables du qui ne sont pas soigneusement conçus. Les utilisateurs mettent en boîte des vulnérabilités de l'exploit dans des programmes défectueux pour gagner les privilèges élevés par permanent , ou exécutent involontairement un programme du Trojan Horse .

L'attribut de setgid tiendra compte de changer les privilèges basés par groupe dans un processus, comme le drapeau de setuid fait pour des privilèges basés par utilisateur.

La présence des executables de setuid justifie le fait que l'appel système de Chroot n'est pas à la disposition des utilisateurs non- de la racine sur Unix.

Le peu de setuid et de setgid est normalement placé avec le Chmod de commande en plaçant l'octal d'ordre élevé à 4 ou 2 (ou 6 pour placer tous les deux). le `du chmod 6711 de `placera le setuid et le setgid a mordu (6) rendent le dossier lecture/écriture/exécutable pour le propriétaire (7) et exécutable par le groupe et d'autres (11). Tous les drapeaux de chmod sont octaux, et le moindre peu significatif de l'octal d'ordre élevé est employé pour un mode spécial connu sous le nom de bit "sticky" .

Démonstration

chat /etc/passwd de $ Alice : X : 1007 : 1007 : : /home/alice : /bin/bash plomb : X : 1008 : 1008 : : /home/bob : /bin/bash chat printid.c de $ #include #include force d'international (vide) { printf (" ; Vrai UID \ t= %d \ n" ; , getuid ()); printf (" ; UID efficace \ t= %d \ n" ; , geteuid ()); printf (" ; Vrai GID \ t= %d \ n" ; , getgid ()); printf (" ; GID efficace \ t= %d \ n" ; , getegid ()); EXIT_SUCCESS de retour ; } GCC de $ - Mur printid.c - printid d'o $ de printid du chmod ug+s $ su Alice Mot de passe : $ LS - l - rwsr-Sr-x 1 printid du 10h22 2007-11-06 du plomb 6944 de plomb $ ./printid Vrai UID = 1007 Efficace UID = 1008 Vrai GID = 1007 Efficace GID = 1008 $

setuid sur des annuaires

les drapeaux de setuid et de setgid sur un annuaire ont une signification entièrement différente.

L'établissement de la permission de setgid sur dossiers et sous-répertoires de causes d'un annuaire (chmod g+s) de nouveaux créés dans lui pour hériter de son groupe, plutôt que le groupe primaire de l'utilisateur qui a créé le dossier (le propriétaire n'est jamais affecté, seulement le groupe). Les sous-répertoires de création récente héritent du peu de setgid. Noter que l'établissement de la permission de setgid sur un annuaire affecte seulement le groupe de nouveaux dossiers et de sous-répertoires créés après que le peu de setgid soit placé, et n'est pas appliqué aux entités existantes. Plaçant le setgid a mordu sur les sous-répertoires existants doit être fait manuellement, avec une commande telle que ce qui suit :

trouvaille /path/to/directory - type d - print0 | chmod g+s des xargs -0 ou # trouvaille /path/to/directory - type d - exec chmod g+s {} \ ;

L'ensemble de permission de setuid sur un annuaire est ignoré sur UNIX et des systèmes de GNU/Linux. FreeBSD peut être configuré pour l'interpréter pareillement au setgid, à savoir, pour forcer tous les dossiers et sous-répertoires à posséder par le propriétaire supérieur d'annuaire.

Voir également

Problème confus de député de
Sudo
Sécurité d'Unix de
Chmod
Marque d'utilisateur (Unix) de
Marque de groupe de (Unix)
Permissions de système de fichiers de
Révocation de privilège de
Séparation de privilège de
Variable d'environnement

.

Random links:Frederick Abel | Moosonee, Ontario | David Solway | Province de Muyinga | Province de Vérone | Setuid