A voir également:
- Pb de droits utilisateur ds un script
- Script vidéo youtube - Guide
- Vous ne pouvez pas choisir de nom d’utilisateur pour le moment. ✓ - Forum Facebook
- Impossible d'utiliser ce numéro de téléphone pour la validation. - Forum Gmail
- Microsoft activation script - Accueil - Windows
8 réponses
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 097
3 oct. 2005 à 10:24
3 oct. 2005 à 10:24
Salut Manu,
J'ai ecrit un script qui fonctionne sous la session root mais pas sous la session utilisateur (acces a des fichiers interdits).
Tu pourrais simplement octroyer à ces fichiers les droits dont tu as besoin à un groupe auquel appartiendraient tes utilisateurs.
Donc :
- Tu crées un groupe d'utilisateur
- Tu y inclus tous les utilisateurs auxquels tu veux donner ce type de droits
- Tu affecte les permissions adéquates de groupe aux fichiers "interdits"
Il faudrait que l'execution du script soit transparente vis a vis de l'utilisateur de sa session, c'est a dire qu'il n'ait pas a rentrer de mdp.
Si tu nous disais ce que fait ton script (la commande de ton script qui échoue et son message d'erreur), on irait plus vite.
Est-ce possible ?
Il y a des chances.
Comment fonctionnne la commande 'sudo' ?
man sudo
Mais c'est peut être pas ce dont tu as besoin.
Dal
J'ai ecrit un script qui fonctionne sous la session root mais pas sous la session utilisateur (acces a des fichiers interdits).
Tu pourrais simplement octroyer à ces fichiers les droits dont tu as besoin à un groupe auquel appartiendraient tes utilisateurs.
Donc :
- Tu crées un groupe d'utilisateur
- Tu y inclus tous les utilisateurs auxquels tu veux donner ce type de droits
- Tu affecte les permissions adéquates de groupe aux fichiers "interdits"
Il faudrait que l'execution du script soit transparente vis a vis de l'utilisateur de sa session, c'est a dire qu'il n'ait pas a rentrer de mdp.
Si tu nous disais ce que fait ton script (la commande de ton script qui échoue et son message d'erreur), on irait plus vite.
Est-ce possible ?
Il y a des chances.
Comment fonctionnne la commande 'sudo' ?
man sudo
Mais c'est peut être pas ce dont tu as besoin.
Dal
kmf31
Messages postés
1564
Date d'inscription
mercredi 30 mars 2005
Statut
Contributeur
Dernière intervention
22 juin 2007
501
3 oct. 2005 à 11:29
3 oct. 2005 à 11:29
Tu peux essayer de rendre le script en suid, c.-a-d. quand il est lance par un utilisiteur il aura les droits de root, il faut faire (en root):
apres un "ls -l script" affiche:
ici les "s" montrent que c'est bien en "suid". Cependant je crois ca ne marche pas toujours, notamment si le script est dans le home de l'utilisateur. Il vaut mieux le copier vers /usr/bin/... ou similaire.
Bien-entendu ce genre de choses (rendre de programme/scripts suid) est potentiellement mauvais pour la securite.
cd /reptoire_script chown root:root script chmod +xs script
apres un "ls -l script" affiche:
-rwsr-sr-x ...... script
ici les "s" montrent que c'est bien en "suid". Cependant je crois ca ne marche pas toujours, notamment si le script est dans le home de l'utilisateur. Il vaut mieux le copier vers /usr/bin/... ou similaire.
Bien-entendu ce genre de choses (rendre de programme/scripts suid) est potentiellement mauvais pour la securite.
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 097
3 oct. 2005 à 11:44
3 oct. 2005 à 11:44
Salut kmf31,
Il me semble que la plupart des shells devraient refuser en réalité d'exécuter un script de la sorte.
Il faudrait créer un programme en C ad hoc (ou avec un autre langage permettant de générer un code objet exécutable).
http://lea-linux.org/dev/suid_scripts.html
L'interpréteur Perl fait de même également, on peut faire le suid sur le script Perl, mais ne il devrait, en fin de compte, pas s'exécuter avec ces permisisons en principe.
Le seul moyen de contourner la difficulté est de rendre suid l'interpréteur lui même.. ce qui est, d'un point de vue de la sécurité, véritablement suicidaire.
Dal
Il me semble que la plupart des shells devraient refuser en réalité d'exécuter un script de la sorte.
Il faudrait créer un programme en C ad hoc (ou avec un autre langage permettant de générer un code objet exécutable).
http://lea-linux.org/dev/suid_scripts.html
L'interpréteur Perl fait de même également, on peut faire le suid sur le script Perl, mais ne il devrait, en fin de compte, pas s'exécuter avec ces permisisons en principe.
Le seul moyen de contourner la difficulté est de rendre suid l'interpréteur lui même.. ce qui est, d'un point de vue de la sécurité, véritablement suicidaire.
Dal
kmf31
Messages postés
1564
Date d'inscription
mercredi 30 mars 2005
Statut
Contributeur
Dernière intervention
22 juin 2007
501
>
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
3 oct. 2005 à 13:25
3 oct. 2005 à 13:25
J'ai deja soupconne (sans etre sur) qu'il faudrait rendre la shell elle meme suid ce qui est en effet tres dangereux et bien sur a eviter.
Peut-etre il suffit d'ecrire un pogramme C qui fait simplement appel a un script (avec un appel de "system(...)" ?) et si le programme C est suid ca pourrait suffir meme si la shell ni le script eux memes ne sont pas suid.
Mais a la fin ca revient peut-etre a refaire le "sudo" ??
Peut-etre il suffit d'ecrire un pogramme C qui fait simplement appel a un script (avec un appel de "system(...)" ?) et si le programme C est suid ca pourrait suffir meme si la shell ni le script eux memes ne sont pas suid.
Mais a la fin ca revient peut-etre a refaire le "sudo" ??
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 097
>
kmf31
Messages postés
1564
Date d'inscription
mercredi 30 mars 2005
Statut
Contributeur
Dernière intervention
22 juin 2007
3 oct. 2005 à 14:22
3 oct. 2005 à 14:22
Peut-etre il suffit d'ecrire un pogramme C qui fait simplement appel a un script (avec un appel de "system(...)" ?) et si le programme C est suid
Oui, c'est en effet apparemment une solution (jamais testée personnellement). Elle est aussi suggérée par cet article de Léa, qui propose aussi d'encadrer le lanceur de scripts de certaines sécurités, pour s'assurer que seuls certains scripts sont autorisés à êtres lancés de la sorte (il y a un programme C d'exemple).
Je rajouterai bien aussi le stockage de la somme md5 du script et le contrôle de son intégrité avant lancement...
..sinon.. sur un plan plus conceptuel, je crois que les permissions Unix sont là pour être utilisées et que si le script nécessite des droits root alors qu'il est destiné à être utilisé par des users, il y a un problème.
Dal
Oui, c'est en effet apparemment une solution (jamais testée personnellement). Elle est aussi suggérée par cet article de Léa, qui propose aussi d'encadrer le lanceur de scripts de certaines sécurités, pour s'assurer que seuls certains scripts sont autorisés à êtres lancés de la sorte (il y a un programme C d'exemple).
Je rajouterai bien aussi le stockage de la somme md5 du script et le contrôle de son intégrité avant lancement...
..sinon.. sur un plan plus conceptuel, je crois que les permissions Unix sont là pour être utilisées et que si le script nécessite des droits root alors qu'il est destiné à être utilisé par des users, il y a un problème.
Dal
Merci pour vos nombreuses reponses..Le probleme semble alors plus complexe que je l'avais prevu!
Je vais essayer de le resoudre a l'aide de vos conseils avisés.
Des que ca marche, je vous fait signe.
Merci
Je vais essayer de le resoudre a l'aide de vos conseils avisés.
Des que ca marche, je vous fait signe.
Merci
Bonjour,
suite a vos conseils, j'ai tout de meme essayé de rendre le script en suid, mais comme vous l'aviez justement soupconné, la manip' m'a été refusée. Pourtant, le script a executer est bien sous la session 'root'.
Mais je dois dire que l'idee de creer un programme C en ad oc ne m'enthousiasme pas trop. C'est ne pas le probleme du langage C (que je connais assez bien), mais la facon de m'y prendre m'est inconnue.
Alors, je suis encore bloqué. :-(
Je relance un appel a votre aide, et j'aimerais savoir si je peux effectuer la manip' sans avoir acces au bon vieux C.
Merci
suite a vos conseils, j'ai tout de meme essayé de rendre le script en suid, mais comme vous l'aviez justement soupconné, la manip' m'a été refusée. Pourtant, le script a executer est bien sous la session 'root'.
Mais je dois dire que l'idee de creer un programme C en ad oc ne m'enthousiasme pas trop. C'est ne pas le probleme du langage C (que je connais assez bien), mais la facon de m'y prendre m'est inconnue.
Alors, je suis encore bloqué. :-(
Je relance un appel a votre aide, et j'aimerais savoir si je peux effectuer la manip' sans avoir acces au bon vieux C.
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 097
4 oct. 2005 à 18:16
4 oct. 2005 à 18:16
Salut Manu,
Voilà ce que je te disais dans ma réponse initiale :
> Tu pourrais simplement octroyer à ces fichiers les droits dont tu as
> besoin à un groupe auquel appartiendraient tes utilisateurs.
>
> Donc :
>
> - Tu crées un groupe d'utilisateur
> - Tu y inclus tous les utilisateurs auxquels tu veux donner ce type de
> droits - Tu affecte les permissions adéquates de groupe aux fichiers
> "interdits"
Dis nous :
- quels sont tes "fichiers interdits"
- les permissions qu'il y a dessus (fait un ls -l dessus)
- ce que tu veux faire avec (que fait ton script et où il se bloque- copies nous ton script)
Ton problème peut, éventuellement, être réglé en ajustant les permissions des fichiers (avec chmod / chown) et/ou les droits des utilisateurs (avec useradd, ou en éditant le fichier /etc/groups), ou en concevant ton script de façon légèrement différente, ...
mais là, il nous faut plus d'éléments pour t'aider concrètement.
Dal
Voilà ce que je te disais dans ma réponse initiale :
> Tu pourrais simplement octroyer à ces fichiers les droits dont tu as
> besoin à un groupe auquel appartiendraient tes utilisateurs.
>
> Donc :
>
> - Tu crées un groupe d'utilisateur
> - Tu y inclus tous les utilisateurs auxquels tu veux donner ce type de
> droits - Tu affecte les permissions adéquates de groupe aux fichiers
> "interdits"
Dis nous :
- quels sont tes "fichiers interdits"
- les permissions qu'il y a dessus (fait un ls -l dessus)
- ce que tu veux faire avec (que fait ton script et où il se bloque- copies nous ton script)
Ton problème peut, éventuellement, être réglé en ajustant les permissions des fichiers (avec chmod / chown) et/ou les droits des utilisateurs (avec useradd, ou en éditant le fichier /etc/groups), ou en concevant ton script de façon légèrement différente, ...
mais là, il nous faut plus d'éléments pour t'aider concrètement.
Dal
Salut Dal,
J'ai enfin reussi a copier les fichiers et repertoires que je voulais en modifiant les permissions. Je me suis un peu compliqué la vie...
Derniere chose, et ensuite je te laisse tranquille, saurais tu comment faire pour lancer une appli ds un script ? Il me semble que c'est nom_appli & mais j'aimerais avoir confirmation.
Merci en tout cas pour ton aide.
Manu
J'ai enfin reussi a copier les fichiers et repertoires que je voulais en modifiant les permissions. Je me suis un peu compliqué la vie...
Derniere chose, et ensuite je te laisse tranquille, saurais tu comment faire pour lancer une appli ds un script ? Il me semble que c'est nom_appli & mais j'aimerais avoir confirmation.
Merci en tout cas pour ton aide.
Manu
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 097
5 oct. 2005 à 12:10
5 oct. 2005 à 12:10
Salut Manu,
saurais tu comment faire pour lancer une appli ds un script ? Il me semble que c'est nom_appli &
Si tu mets le "&", le shell lance l'application en tâche de fond et passe immédiatement à la commande suivante.
Si l'exécution de la suite de script dépend de la bonne exécution de ton application, et que tu veux attendre la fin de son exécution avant de poursuivre l'exécution de ton script, retire le "&".
Dal
saurais tu comment faire pour lancer une appli ds un script ? Il me semble que c'est nom_appli &
Si tu mets le "&", le shell lance l'application en tâche de fond et passe immédiatement à la commande suivante.
Si l'exécution de la suite de script dépend de la bonne exécution de ton application, et que tu veux attendre la fin de son exécution avant de poursuivre l'exécution de ton script, retire le "&".
Dal