Bonjour,
Voici mon probl�me :
J�ai un binaire agentctl qui appartient � root :
Cet ex�cutable peut �tre lanc� avec plusieurs options ( start, stop, restart �etc )
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 # ls -l agentctl -rwxr-xr-x 1 root root 12532 Jun 5 19:09 agentctl
Je veux permettrre � un user lambda le lancement de � agentctl � mais uniquement avec l�option restart.
Pour cela je cr�e le programme suivant :
Je le compile :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 # cat testagent.c ================================== #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h> int main() { uid_t uid = geteuid (); gid_t gid = getegid (); printf ("uid=%d gid=%d\n", (int) uid, (int) gid); system("/exec/products/sbin/agentctl restart"); } ===================================
Je rajoute le setuid :
Code : S�lectionner tout - Visualiser dans une fen�tre � part # gcc o relanceagent testagent.c
Puis lorsque j�ex�cute �relanceagent� avec un user lambda j�ai un probl�me de droits.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 # chmod +s relanceagent # ls l relanceagent -rwsr-sr-x 1 root root 101206 Oct 09 16:00 relanceagent
Si je fait le test du setuid directement sur agentctl cela fonctionne.
Autre pr�cision : Le test fonctionne sur AIX et HP-UX.
Comment faire sur Solaris. ? (sans utiliser sudo)
Pouvez-vous m�aider ?
D�avance merci.
Partager