Droits - SUID
Résolu
ekra
Messages postés
1870
Date d'inscription
Statut
Membre
Dernière intervention
-
ekra Messages postés 1870 Date d'inscription Statut Membre Dernière intervention -
ekra Messages postés 1870 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un problème pour régler les droits d'un fichier.
Caractéristiques :
-fichier shell (sh)
-appartenant à root
-Contient des commandes nécéssitant d'être super-utilisateur
-L'utilisateur ne doit pas pouvoir lire dans ce fichier
J'aimerai qu'un utilisateur quelconque puisse l'utiliser.
J'ai essayé avec
chmod 4711 fichier.sh, seulement je pense que la pseudo-execution de l'utilisateur ne suffit pas, il faut la lecture du super-utilisateur.
Comment faire ?
Je vous remercie d'avance.
J'ai un problème pour régler les droits d'un fichier.
Caractéristiques :
-fichier shell (sh)
-appartenant à root
-Contient des commandes nécéssitant d'être super-utilisateur
-L'utilisateur ne doit pas pouvoir lire dans ce fichier
J'aimerai qu'un utilisateur quelconque puisse l'utiliser.
J'ai essayé avec
chmod 4711 fichier.sh, seulement je pense que la pseudo-execution de l'utilisateur ne suffit pas, il faut la lecture du super-utilisateur.
Comment faire ?
Je vous remercie d'avance.
A voir également:
- Droits - SUID
- Vous devez disposer des droits d'administrateur pour supprimer ce dossier - Guide
- Donnez à ce fichier les mêmes droits d'accès que les autres notes de service. ✓ - Forum Jeux vidéo
- [Reseau] je n'arrive pas à donner les droits - Forum Réseau
- Accès refusé : obtenir les droits d'accès à un dossier dans Windows - Guide
- Photo libre de droits - Guide
10 réponses
Salut,
-Contient des commandes nécéssitant d'être super-utilisateur
Il faut aussi penser pour les commandes contenu dans ton script.
Même si l'utilisateur peut lancer le script, s'il ne peux pas exécuter les commandes contenues dans le script .....
Tu vois ce que je veux dire?!
Pour invoquer un script shell, il faut avoir les droits de lecture et d'exécution.
La lecture puisque le shell doit lire les commandes à interpreter.
-Contient des commandes nécéssitant d'être super-utilisateur
Il faut aussi penser pour les commandes contenu dans ton script.
Même si l'utilisateur peut lancer le script, s'il ne peux pas exécuter les commandes contenues dans le script .....
Tu vois ce que je veux dire?!
Pour invoquer un script shell, il faut avoir les droits de lecture et d'exécution.
La lecture puisque le shell doit lire les commandes à interpreter.
Salut lami20j
Oui, je vois ce que tu veux dire, je vais te donner mon exemple :
---------Script sensé etre executable pour tous--------
#!/bin/sh
#Pour demarrer WPA_SUPPLICANT avec parametres
wpa_supplicant -c/etc/wpa_supplicant.conf -w -Dwext -ieth1 &
ifup eth1
dhclient
---------------------------------------------------------------------
Le fichier wpa_supplicant.conf ne doit pas etre lisible ! Il contient le mot de passe du réseau en clair (droits 700).
Saurais-tu comment faire ?
PS : Après tout j'ai dit une bétise, le script que l'on execute peut être lisible
Oui, je vois ce que tu veux dire, je vais te donner mon exemple :
---------Script sensé etre executable pour tous--------
#!/bin/sh
#Pour demarrer WPA_SUPPLICANT avec parametres
wpa_supplicant -c/etc/wpa_supplicant.conf -w -Dwext -ieth1 &
ifup eth1
dhclient
---------------------------------------------------------------------
Le fichier wpa_supplicant.conf ne doit pas etre lisible ! Il contient le mot de passe du réseau en clair (droits 700).
Saurais-tu comment faire ?
PS : Après tout j'ai dit une bétise, le script que l'on execute peut être lisible
Regarde un exemple
je crée un fichier dans /etc et ce n'est que root qui a accès
ensuite j'écrit un script dans /usr/bin
Voici les droits
En fait c'est le cat qui a besoin de droit spéciaux puisque c'est lui qui va essayer de lire le fichier detenu par root
Donc je pense que dans ton cas il faut penser aux droits d'accès pour la commande wpa_supplicant puisque c'est elle qui va accèder au fichier wpa_supplicant.conf et pas l'utilisateur.
debian:/bin# cat /etc/nolire password debian:/bin# cat /usr/bin/fw.sh #!/bin/sh cat /etc/nolire
je crée un fichier dans /etc et ce n'est que root qui a accès
ensuite j'écrit un script dans /usr/bin
Voici les droits
debian:/bin# ls -l /etc/nolire -rwx------ 1 root root 9 2007-02-25 19:56 /etc/nolire debian:/bin# ls -l /bin/cat -rwxr-xr-x 1 root root 21448 2006-08-31 14:25 /bin/cat debian:/bin# ls -l /usr/bin/fw.sh -rwxr-xr-x 1 root root 28 2007-02-25 19:57 /usr/bin/fw.sh
En fait c'est le cat qui a besoin de droit spéciaux puisque c'est lui qui va essayer de lire le fichier detenu par root
debian:/bin# chmod -v 4755 /bin/cat Le mode d'accès de `/bin/cat' a été modifié à 4755 (rwsr-xr-x).
Donc je pense que dans ton cas il faut penser aux droits d'accès pour la commande wpa_supplicant puisque c'est elle qui va accèder au fichier wpa_supplicant.conf et pas l'utilisateur.
Ok, merci, ça fonctionne comme cela.
Je n'ai pas besoin de plus, mais par curiosité je voudrais savoir si il n'y a que cette possibilité ?
Car du coup ici, l'utilisateur peut executer wpa_supplicant et se connecter à n'importe quel réseaux .... :/
Je n'ai pas besoin de plus, mais par curiosité je voudrais savoir si il n'y a que cette possibilité ?
Car du coup ici, l'utilisateur peut executer wpa_supplicant et se connecter à n'importe quel réseaux .... :/
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
mais, tu veux que les utilisateurs l'exécutent ou pas?
puisque si tu veux que le script soit exécuter que par root alors tu n'as qu'a regler les droits en conséquence.
si tu veux accorder des droits seulement à certains utilisateurs tu peux créer un groupe pour ça et tu fais les utilisateurs membres de ce groupe.
sinon tu peux aussi utiliser les ACLs
mais, tu veux que les utilisateurs l'exécutent ou pas?
puisque si tu veux que le script soit exécuter que par root alors tu n'as qu'a regler les droits en conséquence.
si tu veux accorder des droits seulement à certains utilisateurs tu peux créer un groupe pour ça et tu fais les utilisateurs membres de ce groupe.
sinon tu peux aussi utiliser les ACLs
Non, le truc c'est qu'avec ce que je voulais faire, un utilisateur quelconque pouvait executer wpa_supplicant avec UN fichier de configuration défini (-c/etc/wpa_supplicant.conf) défini dans le script non modifiable. Si j'active le SUID alors il pourra taper
wpa_supplicant -c~/un_fichier_pas_bien.conf
wpa_supplicant -c~/un_fichier_pas_bien.conf
Je crois que tu n'as pas le choix, c'est le risque de SUID
A savoir que si jamais sur ton OS il y a une commnade de lecture de fichier avec le SUID, même le fichier de config pourra être lu
je pense que pour certains taches c'est bien d'être root et pas un utilisateur quelconque
A savoir que si jamais sur ton OS il y a une commnade de lecture de fichier avec le SUID, même le fichier de config pourra être lu
je pense que pour certains taches c'est bien d'être root et pas un utilisateur quelconque
c'est la 1ère chose que j'ai pensé :-)
il me semble que tu fait du C donc tu n'as qu'à écrire ton script :-))
il me semble que tu fait du C donc tu n'as qu'à écrire ton script :-))
Oui, c'est déjà fait.
Merci de ton aide !
Au prochain problème ;)
Résumé :
Pour qu'un utilisateur quelquonque puisse executer une série d'actions prédéfinies requirant des privilèges (root) , passer par un programme qui n'est pas de type script shell : ex C avec "exec()". Le propriétaire sera dans cet exemple root, et activera le bit SUID.
Merci de ton aide !
Au prochain problème ;)
Résumé :
Pour qu'un utilisateur quelquonque puisse executer une série d'actions prédéfinies requirant des privilèges (root) , passer par un programme qui n'est pas de type script shell : ex C avec "exec()". Le propriétaire sera dans cet exemple root, et activera le bit SUID.