Articles of setuid

Est-ce possible de changer d’utilisateur et de groupe d’un thread d’application?

Je veux créer une petite application Web dans Rust, qui devrait pouvoir lire et écrire des fichiers pour le compte d’un utilisateur. L’utilisateur doit s’authentifier avec ses informations d’identification UNIX, puis pouvoir lire / écrire uniquement les fichiers auxquels il a access. Ma première idée, qui me semblerait également la plus sûre, serait de changer […]

Quel est le paradigme standard pour exécuter après avoir déposé la racine?

Dans un code comme celui-ci dans un démon: // run as root, after initgroups(…), setgid(…) setuid(user); const char* args[] = {“./userbinary”,0}; execv(“userbinary”, args); _exit(1); Il y a un problème évident où l’utilisateur peut s’attacher au processus entre les appels à setuid et exec[lvpe] , et lire toute la mémoire du processus, y compris les variables […]

Exécuter le processus ‘en tant que root’ avec le bit setuid qui ne fonctionne pas comme prévu – opération non autorisée?

J’ai un programme qui capture le trafic réseau d’une interface réseau. (C’est un programme C assis sur libpcap .) J’utilise Fedora 26. Lorsque je lance le programme en tant que root , les choses s’améliorent: [craig ~]$ sudo su – [root ~]$ /home/craig/mybinary (output is as expected) Mais quand je lance le programme en tant […]

Comment puis-je récupérer les uid sauvegardés de mon processus?

Dans POSIX, il y a les fonctions bien connues getuid() et geteuid() pour récupérer l’ geteuid() réel et efficace du processus. Toutefois, il est souvent utile de vérifier également l’ID utilisateur enregistré (sur les plates-formes prenant en charge les uids enregistrés dans POSIX, qui sont tous les systèmes d’exploitation actuels). Par exemple, dans le guide […]

But de l’Issetugid?

Selon les pages de issetugid relatives à issetugid , l’appel est censé soit (1) alerter sur les modifications uid / gid; ou (2) alerter sur un éventuel environnement corrompu. Le nom de la fonction suggère un troisième objective. Première question: à quoi ça sert? Lorsque je regarde les implémentations disponibles (par exemple, sur un système […]

JNI + setuid Question

J’ai une application web qui fonctionne en tant qu’utilisateur www. Cependant, à un moment donné, il doit lire un fichier à partir d’un système de fichiers Linux pour le compte des utilisateurs Alice et Bob. Une manière de procéder serait de lancer un shell (Runtime.exec ()) et d’appeler un exécutable C setuid pour modifier l’ID […]

Test automatisé des opérations privilégiées

Comment un code de test d’unité / d’intégration nécessitant un niveau de privilège différent de celui existant dans votre environnement d’continuous integration? Dans mon environnement de génération non root, basé sur CCRB , j’ai quelques fonctions utilitaires qui supposent des privilèges qui ne tiennent pas dans mon environnement de génération automatisé: les privilèges root ou […]

Comment rechercher les fichiers SUID dans root en utilisant Java et accéder à ses propriétés?

Je suis un débutant sur les systèmes UNIX. Je suis chargé de trouver un fichier SUID dans le répertoire racine et d’accéder à ses propriétés de fichier pour accomplir certaines tâches. Est-ce que je peux écrire une application basée sur Java pour rechercher des fichiers avec Sticky bit et accéder à leurs propriétés (permissions de […]

Un exécutable a-t-il les mêmes privilèges de fichiers que l’utilisateur qui l’a exécuté?

Dans Unix, si je lance un fichier binary contenant des fichiers, le fichier binary a-t-il les mêmes droits d’access que moi (l’utilisateur qui a exécuté le fichier binary)?

Linux, le seul moyen d’accéder à l’access root consiste à exécuter un fichier setuid-root?

Est-ce que mon hypothèse est vraie, sous Unix / Linux, la seule façon d’accéder à un access racine à GAIN est d’exécuter un fichier setuid–root? En d’autres termes, le système appelle setuid() , setgid() sont tous des privilèges DROPPING? Veuillez noter que ma question ne concerne pas les exploits.