#1 Le 19/04/2012, à 11:14
- greeno55
Interdire lecture d'un script a un utilisateur
Bonjour,
Je souhaite interdire la lecture d'un de mes script shell à un utilisateur. (je sais que c'est la commande chown propriétaire fichier, mais quand je met root en owner, l'utilisateur peux lire ce fichier (il ne peux cependant pas le modifier) or moi, je souhaiterai qu'il ne puisse ni le voir, ni le modifier, mais seulement pouvoir l'executer.
comment faire ?
Dernière modification par greeno55 (Le 19/04/2012, à 11:33)
Hors ligne
#2 Le 19/04/2012, à 11:20
- greeno55
Re : Interdire lecture d'un script a un utilisateur
En fait je me trompais entre chown et chmod x)
Merci quand meme )
Hors ligne
#3 Le 19/04/2012, à 11:35
- greeno55
Re : Interdire lecture d'un script a un utilisateur
En fait j'ai quand meme un probleme.
Mon script se nomme serveur1
J'ai rendu propriétaire le script serveur1 à l'utilisateur serveur1. (chown serveur1 serveur1)
Ensuite, j'ai défini les droits (je veux que serveur1 ne puisse que exécuter (ne pas le lire, ni le modifier)
donc je tape chmod 100 serveur1 sauf que je n'arrive pas a lancer le script en tant que serveur1.
Hors ligne
#4 Le 19/04/2012, à 11:41
- credenhill
Re : Interdire lecture d'un script a un utilisateur
hello
un script doit être lisible pour être exécuté, donc droit r et droit x
En ligne
#5 Le 19/04/2012, à 11:46
- greeno55
Re : Interdire lecture d'un script a un utilisateur
Donc on ne peux absolument pas empêcher un utilisateur de voir le script mais qu'il puisse le lire ?
la commande est donc chmod 300 serveur1 ?
Hors ligne
#6 Le 19/04/2012, à 12:20
- credenhill
Re : Interdire lecture d'un script a un utilisateur
chown serveur1 serveur1
chmod 500 serveur1
ls -l serveur1
-r-x------ 1 serveur1 xxx 0 2012-04-19 12:15 serveur1
serveur1 n'est exécutable et lisible que par l'utilisateur serveur1
En ligne
#7 Le 19/04/2012, à 12:30
- pingouinux
Re : Interdire lecture d'un script a un utilisateur
Salut,
Une méthode pour résoudre le problème : Utilisation de SETUID
Pour préciser :
Créer un lanceur pour serveur1, écrit en C :
$ cat lanceur_serveur1.c
#include <unistd.h>
main() { system("./serveur1"); }
$ make lanceur_serveur1
cc lanceur_serveur1.c -o lanceur_serveur1
Restreindre les permissions sur lanceur_serveur1 :
$ sudo chown root:root lanceur_serveur1
$ sudo chmod 4705 lanceur_serveur1
Restreindre les permissions sur serveur1 :
$ sudo chown root:root serveur1
$ sudo chmod 700 serveur1
$ ls -l *serveur1
-rws---r-x 1 root root 8390 2012-04-19 13:56 lanceur_serveur1
-rwx------ 1 root root 10 2012-04-19 11:17 serveur1
Pour lancer l'exécution :
./lanceur_serveur1
Dernière modification par pingouinux (Le 19/04/2012, à 14:07)
Hors ligne