Problème avec sudo et chmod

Résolu/Fermé
Utilisateur anonyme - 7 mai 2009 à 10:49
 Utilisateur anonyme - 21 mai 2009 à 12:59
Bonjour,
J'ai une application qui manipule des périphériques sur mon PC, pour la lancer il faut alors la lancer en Sudo. Jusqu'à ici j'ai pas de problème. Cette application fait aussi une partie serveur qui tourne dans le démarrage de mon appli. Une application client doit être capable de la lancer via un socket et se connecter dessus. Pour celà il faut que l'appli client lance l'appli serveur en sudo, je vois pas de solution pour faire à part chmod +s mon_appli... Et j'ai pas toujours les bons droit comme ci je la lance en sudo!!! Merci d'avance pour votre aide c'est très urgent!!! Encore merci
A voir également:

8 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
7 mai 2009 à 19:20
Salut,

Donc quand n'importe quel utilisateur lance ce programme il prend tous les droits de son propriétaire temporairement et que sur ce fichier. Donc il le lance en root!!!

Pas tout à fait.
Un processus à plusieurs UID (UserIDentifier)
UID réel - c'est l'UID de l'utilisateur qui a lancer la demande
UID effectif - c'est l'UID qui correspond aux privilèges accordés aux processus
UID sauvé - est une copie de l'ancien UID effectif lorsqu'il est modifié par un processus.

Donc dans le cas de sudo l'utilisateur ne lance pas en root la commande mais en tant que lui même (je parle d'utilisateur).
Mais sudo a des droits d'endossement, plus exact SetUID (voir le s en gras dans la commande ls -l )
lami20j@debian:~$ ls -l /usr/bin/sudo
-rwsr-xr-x 2 root root 113916 jan 27 19:57 /usr/bin/sudo

Que se passe-t-il?
L'utilisateur lance la commande donc l'UID réel de processus est l'UID de l'utilisateur qui a lancé la commande.
Le kernel(noyau) va effectuer une vérification de l'UID effectif du processus, pour voir s'il a les privilèges nécessaires. Vu que le SetUID est positionné le kernel permet l'exécution de la commande.
3
Utilisateur anonyme
7 mai 2009 à 10:58
qq1 peut m'aidez svp, c'est très urgent... Merci
0
Utilisateur anonyme
7 mai 2009 à 11:18
Merci à tous ceux qui m'ont aidé sur ce forum, j'ai trouvé la solution:

Il faut modifié le propriétaire du fichier à root avec:
sudo chown root mon_appli

Après il faut rajouté +s sur les droits de ce fichiers avec:
sudo chmod +s mon_appli

Donc quand n'importe quel utilisateur lance ce programme il prend tous les droits de son propriétaire temporairement et que sur ce fichier. Donc il le lance en root!!!

Merci tlm c'est très sympa!!!
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
7 mai 2009 à 11:27
Salut,

Merci à toi pour la solution.

PS. Tu as trouvé la solution par toi même en moins de 30 minutes, preuve qu'en cherchant un peu on trouve. Par contre t'étonner que personne n'ait répondu au bout de 10 minutes et ironiquement nous servir un "Merci tlm c'est très sympa!!!", ça c'est pas trop sympa, d'autant plus que nous ne sommes pas un distributeur de réponses !.

Sur ce, bonne journée.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
7 mai 2009 à 11:55
Bonjour,

Ce que j'attendais c'était juste une réponse pas forcement la solution... Et c'est vrai que je l'ai trouvé mais j'ai du lire toute la doc de chmod, sudo et chown et j'ai perdu 30min... c'est du temps quand même... et merci pour toi d'avoir poster dans ma rubrique, au moin t'as dit qq chose et tu m'as répondu!! j'ai jamais dit que vous êtes des distrib de réponse et sache que moi aussi je fait parti des gens qui réponde!! Merci
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
7 mai 2009 à 12:00
Et c'est vrai que je l'ai trouvé mais j'ai du lire toute la doc de chmod, sudo et chown et j'ai perdu 30min... c'est du temps quand même...

Quand on apprend quelques chose ce n'est jamais du temps de perdu ;-))

PS. Rien qu'avec ce genre de phrase (réponse) tu te contredis totalement en affirmant ensuite "J'ai jamais dit que vous êtes des distrib de réponse" ;-((
0
Utilisateur anonyme
7 mai 2009 à 16:32
Laisse tomber, l'objectif n'était pas apprendre, j'aurais le temps quand je rentrerai chez moi... mais c'était qu'il me faut une application dans le boulot et le plus rapide possibe, j'ai posé la question sur le forum et j'ai vu que personne n'a écrit (j'attendais une réponse et pas forcement une solution), ce qui est un peu dommage!! sinon c'est pas grave. Et je re dis que j'ai jamais dit que je trouverais des distrib de réponse!!

@+
0
Utilisateur anonyme
21 mai 2009 à 12:59
Je te remercie pour ta réponse assez détaillée, ce que tu dis est vrai et est aussi structuré. Je suis tout à fait d'accord avec ce que tu dis, et pour rajouté un détail je dis que le sudo ce n'est qu'un binaire avec un SetUid qui lance un fils (avec fork) dont le nom est spécifié dans argv[1]. Du coût le fils prend les droits nécessaire quand il s'exécute. Donc je suis tout à fait d'accord avec toi!!! Merci
0