Articles of setuid

Comment réussir à exécuter le script Perl avec setuid () lorsqu’il est utilisé comme cgi-bin?

J’ai un script Perl appelé via Apache ou sur la ligne de commande. À des fins de test, je lui passe le nom d’utilisateur avec lequel le script Perl doit fonctionner, et j’utilise POSIX::setuid pour définir l’ uid . Si je lance le script à partir de la ligne de commande, l’ uid est défini […]

Puis-je définir le script perl?

J’ai créé un script perl pour changer le propriétaire d’un fichier appartenant à un autre utilisateur. Le script est complet. Mon administrateur enregistre ce répertoire dans / sbin et définit uid pour lui en utilisant chmod u + s name_of_script. Mais lorsque j’exécute ce script, cela me donne une erreur, car l’opération chown n’est pas […]

Est-il possible de conserver le bit setgid pour décompresser les fichiers par un utilisateur non root?

J’ai un dossier avec les permissions suivantes: drwxrws–x+ 13 myuser www-data 4096 Mar 20 09:57 project-folder Dans ce dossier, j’ai une archive archive.zip avec les permissions suivantes: -rw-rw—-+ 1 myuser www-data 10260 Mar 20 09:56 archive.zip Lorsque je décompresse l’archive en appelant unzip archive.zip j’ai reçu la liste suivante: drwxrwx–x+ 3 myuser www-data 4096 May […]

équivalent setuid pour les utilisateurs non root

Linux a-t-il une interface C similaire à setuid , qui permet à un programme de basculer vers un utilisateur différent en utilisant, par exemple, le nom d’utilisateur / mot de passe? Le problème avec setuid est qu’il ne peut être utilisé que par les superutilisateurs. Je gère un service Web simple qui requirejs l’exécution des […]

exécuter le hook ‘post-receive’ git avec setuid échoue

J’ai un repository git qui doit exécuter un hook post-réception sous le nom de sudo. Le binary que j’ai compilé pour tester ceci ressemble à ceci: #include #include #include int main() { int ret; ret = setuid(geteuid()); if(!ret) { fprintf(stderr, “error setting uid %d \n”, ret); } system(“[…command only sudo can access…]”); return 0; } […]

Comment définir les permissions récursivement, 700 pour les dossiers et 600 pour les fichiers, sans utiliser find

J’essaie de trouver un moyen de définir les permissions récursivement 700 pour les répertoires et les sous-répertoires sur un chemin spécifique et 600 pour les fichiers. Je voudrais utiliser ces commandes: find / path -type d -print0 | xargs -0 chmod 700 find / path -type f -print0 | xargs -0 chmod 600 Mais l’utilisateur […]

Exécuter des commandes en tant que root sans mot de passe root ou sudo

Je comprends les implications de l’exécution d’un script en tant que root, notamment par une application Web. Cependant, dans le cadre de mon application Web, je dois utiliser curl with tor, ce qui nécessite de réinitialiser le tor ip de temps en temps. Vous pouvez obtenir une nouvelle adresse IP au redémarrage du service tor […]

setuid sur un exécutable ne semble pas fonctionner

J’ai écrit un petit utilitaire C appelé killSPR pour tuer les processus suivants sur ma boîte RHEL. L’idée est que quiconque se connecte à cette machine Linux puisse utiliser cet utilitaire pour éliminer les processus mentionnés ci-dessous (ce qui ne fonctionne pas – expliqué ci-dessous). cadmn@rhel /tmp > ps -eaf | grep -v grep | […]

LD_PRELOAD avec setuid binary

J’essaie d’utiliser LD_PRELOAD pour précharger une bibliothèque avec une application qui possède des permissions setuid. Essayé LD_PRELOAD au début, et il semblait que cela était ignoré avec le binary setuid, même si cela fonctionnait quand je l’ai essayé avec d’autres comme ls , dir etc. De la documentation de LD_PRELOAD: LD_PRELOAD A whitespace-separated list of […]

Changer UID / GID uniquement d’un thread dans Linux

Y a-t-il un moyen de changer UID / GID uniquement d’un thread dans un processus multithread? La raison en est l’écriture d’une application de gestion de fichiers – la liste de contrôle d’access et le quota ne sont pas appliqués à moins que l’ID utilisateur / ID de l’appelant ne soit défini sur l’utilisateur correct. […]