Protéger un repertoire en shell !!!
Fermé
sarat92
Messages postés
16
Date d'inscription
lundi 18 août 2008
Statut
Membre
Dernière intervention
27 novembre 2012
-
5 nov. 2009 à 01:00
mamiemando Messages postés 33274 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 septembre 2024 - 7 nov. 2009 à 01:25
mamiemando Messages postés 33274 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 septembre 2024 - 7 nov. 2009 à 01:25
A voir également:
- Protéger un repertoire en shell !!!
- Proteger cellule excel - Guide
- Protéger un dossier par mot de passe - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Répertoire téléphonique gratuit - Télécharger - Bureautique
- Protéger un document word - Guide
10 réponses
mamiemando
Messages postés
33274
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 septembre 2024
7 783
5 nov. 2009 à 01:38
5 nov. 2009 à 01:38
Il suffit qu'il n'ait pas les droits en exécution sur ce fichier. A toi de régler le propriétaire (a priori toi ?) et le groupe propriétaire (avec la commande chown en root) et les droits (avec la commande chmod) en conséquence. Supposons que ce répertoire appartienne à mando et au groupe users auquel ton prestataire appartient. À ce moment-là seul mando doit avoir les droits en exécution sur ce répertoire.
Si certains de tes collaborateurs doivent en plus de toi y avoir accès, à toi de créer un groupe (par exemple tapir) et d'affecter ce répertoire à ce groupe (voir commande addgroup et le fichier /etc/group). Naturellement le groupe tapir aura les droits en exécution et ton prestataire ne devra pas en faire partie.
Si le groupe tapir ne doit pas pouvoir modifier (juste lire) le contenu du répertoire :
Pour plus de détails :
Bonne chance
chmod 700 le_repertoire
Si certains de tes collaborateurs doivent en plus de toi y avoir accès, à toi de créer un groupe (par exemple tapir) et d'affecter ce répertoire à ce groupe (voir commande addgroup et le fichier /etc/group). Naturellement le groupe tapir aura les droits en exécution et ton prestataire ne devra pas en faire partie.
sudo chown -R mando:tapir le_repertoire chmod 770 le_repertoire
Si le groupe tapir ne doit pas pouvoir modifier (juste lire) le contenu du répertoire :
chmod 750 le_repertoire
Pour plus de détails :
man 5 group man addgroup man chown man chmod
Bonne chance
sarat92
Messages postés
16
Date d'inscription
lundi 18 août 2008
Statut
Membre
Dernière intervention
27 novembre 2012
3
5 nov. 2009 à 16:56
5 nov. 2009 à 16:56
je pensais faire quelques choses comme ca:
pour proteger le repertoire le_repertoire
creer un user presta et créer un groupe presta
pour le repertoire protégés le_repertoire
1-affecter au groupe presta le repertoire
chgrp -R presta le_repertoire
2-et lui donner que le droit d'execution
chmod 10
pour les autres répertoires , presta a le meme droit que le proprietaire
d'ou presta peut modifier mon site mais ne peut voir les fichiers dans le repertoire le_repertoire
maintenant comment écrire correctement en shell
pour proteger le repertoire le_repertoire
creer un user presta et créer un groupe presta
pour le repertoire protégés le_repertoire
1-affecter au groupe presta le repertoire
chgrp -R presta le_repertoire
2-et lui donner que le droit d'execution
chmod 10
pour les autres répertoires , presta a le meme droit que le proprietaire
d'ou presta peut modifier mon site mais ne peut voir les fichiers dans le repertoire le_repertoire
maintenant comment écrire correctement en shell
jerem1985
Messages postés
65
Date d'inscription
lundi 17 novembre 2008
Statut
Membre
Dernière intervention
19 novembre 2009
2
5 nov. 2009 à 18:00
5 nov. 2009 à 18:00
bonjour
fais sa :
groupadd presta
useradd presta
chown -R presta:presta /ton/path/vers/le_repertoire
chmod 770 /ton/path/vers/le_repertoire
fais sa :
groupadd presta
useradd presta
chown -R presta:presta /ton/path/vers/le_repertoire
chmod 770 /ton/path/vers/le_repertoire
mamiemando
Messages postés
33274
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 septembre 2024
7 783
5 nov. 2009 à 18:59
5 nov. 2009 à 18:59
@jerem1985 : non ca ne marche pas car le répertoire à "protéger" doit justement être refusé à presta.
@sarat92 : idem. Et le chmod est faux. Supposons que tu aies un groupe developer (auquel tu appartiens avec presta) et un groupe admin (auquel tu appartiens avec tes collègues ayant le droit d'aller dans le répertoire protégé, mais pas presta). Ces deux groupes devront être créés avec la commande addgroup et remplis en corrigeant /etc/group. Supposons que ton login soit mando et que tu sois propriétaire des fichiers du projet.
Alors :
1) tous les fichiers appartiennent à mando
2) les fichiers protégés appartiennent au groupe admin, les autres au groupe developer
3) les droits en exécution sont activés uniquement pour le propriétaire et le groupe.
En notation octale voici comment fonctionnent les droits :
- r (read) droits en lecture : vaut 4
- w (write) droits en écriture (supprimer, modifier...) : vaut 2
- x (execute) droits en exécution (pour un répertoire, ceci correspond à pouvoir rentrer dedans) : vaut 1.
Ainsi :
- les droits rwx correspondent en notation octale à 4+2+1=7
- les droits rx correspondent en notation octale à 4+1=5
- aucun droit correspond à 0 en notation octale
Comme tu le sais, les droits sont linux se déclinent en trois jeux de droits rwx, comme le montre la commande "ls -l". Le premier triplet correspond au droit de l'utilisateur, le second au groupe propriétaire, et le troisième aux autres. Comme il y a trois jeux de droits, en theorie ta notation octale devrait comporter 3 chiffres.
Résumons tout ça. Quand tu écris :
Ceci revient à donner des droits rwx à l'utilisateur, au groupe, et au aucun droit aux autres.
En espérant que ce soit plus clair pour toi...
@sarat92 : idem. Et le chmod est faux. Supposons que tu aies un groupe developer (auquel tu appartiens avec presta) et un groupe admin (auquel tu appartiens avec tes collègues ayant le droit d'aller dans le répertoire protégé, mais pas presta). Ces deux groupes devront être créés avec la commande addgroup et remplis en corrigeant /etc/group. Supposons que ton login soit mando et que tu sois propriétaire des fichiers du projet.
Alors :
1) tous les fichiers appartiennent à mando
2) les fichiers protégés appartiennent au groupe admin, les autres au groupe developer
3) les droits en exécution sont activés uniquement pour le propriétaire et le groupe.
En notation octale voici comment fonctionnent les droits :
- r (read) droits en lecture : vaut 4
- w (write) droits en écriture (supprimer, modifier...) : vaut 2
- x (execute) droits en exécution (pour un répertoire, ceci correspond à pouvoir rentrer dedans) : vaut 1.
Ainsi :
- les droits rwx correspondent en notation octale à 4+2+1=7
- les droits rx correspondent en notation octale à 4+1=5
- aucun droit correspond à 0 en notation octale
Comme tu le sais, les droits sont linux se déclinent en trois jeux de droits rwx, comme le montre la commande "ls -l". Le premier triplet correspond au droit de l'utilisateur, le second au groupe propriétaire, et le troisième aux autres. Comme il y a trois jeux de droits, en theorie ta notation octale devrait comporter 3 chiffres.
Résumons tout ça. Quand tu écris :
chmod 770 mon_repertoire
Ceci revient à donner des droits rwx à l'utilisateur, au groupe, et au aucun droit aux autres.
En espérant que ce soit plus clair pour toi...
sarat92
Messages postés
16
Date d'inscription
lundi 18 août 2008
Statut
Membre
Dernière intervention
27 novembre 2012
3
5 nov. 2009 à 20:37
5 nov. 2009 à 20:37
baleze mamiemando.
je suis en train d'essayer de comprendre ta logique .Je crois avoir compris .Il me faut plusieurs heures avant d'êtr bien sur d'avoir .Je répondrais par la suite
je suis en train d'essayer de comprendre ta logique .Je crois avoir compris .Il me faut plusieurs heures avant d'êtr bien sur d'avoir .Je répondrais par la suite
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jerem1985
Messages postés
65
Date d'inscription
lundi 17 novembre 2008
Statut
Membre
Dernière intervention
19 novembre 2009
2
5 nov. 2009 à 19:01
5 nov. 2009 à 19:01
meacoulpa
j'avais compris que seul presta et son group devait accèder au repertoire
j'avais compris que seul presta et son group devait accèder au repertoire
mamiemando
Messages postés
33274
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 septembre 2024
7 783
6 nov. 2009 à 00:59
6 nov. 2009 à 00:59
je suis en train d'essayer de comprendre ta logique .Je crois avoir compris .Il me faut plusieurs heures avant d'êtr bien sur d'avoir .Je répondrais par la suite
C'est pas ma logique, c'est celle de linux ^^. Je te rappelle que tu peux voir les droits, le propriétaire et le groupe propriétaire avec la commande ls -l :
Ici :
- le propriétaire est mando et il a les droits en lecture et écriture (4+2)
- Le groupe propriétaire est users il a juste les droits en lecture (4)
- Les autres ont juste les droits en lecture (4)
... soit 644 en octal.
Comme tu le vois tu as trois niveaux de permission.
- le propriétaire (qui en général peut faire tout ce qu'il y a à faire) ie lire, modifier, supprimer le fichier et l'exécuter s'il s'agit d'un exécutable ou d'un répertoire. Ainsi sur un répertoire ou un exécutable il aura en général les droits rwx, et sinon les droits rx.
- le groupe utilisateur a généralement des droits égaux ou moindres
- les autres ont généralement des droits encore moindres.
Dans ton cas le but on pourrait imaginer :
Ainsi :
- seul mando peut tout faire (ainsi que root bien sûr) (4+2+1),
- les membres du groupe admin peuvent juste lire et aller dans le répertoire (car les ils ont les droits en exécution) mais pas le supprimer (car ils n'ont pas les droits en écriture) (4+1),
- les autres ne peuvent rien faire (0).
... ce qui donne des droits 650.
En espérant que
C'est pas ma logique, c'est celle de linux ^^. Je te rappelle que tu peux voir les droits, le propriétaire et le groupe propriétaire avec la commande ls -l :
(mando@aldur) (~) $ ls -l plop.cpp
-rw-r--r-- 1 mando users 1711 sep 25 11:16 plop.cpp
Ici :
- le propriétaire est mando et il a les droits en lecture et écriture (4+2)
- Le groupe propriétaire est users il a juste les droits en lecture (4)
- Les autres ont juste les droits en lecture (4)
... soit 644 en octal.
Comme tu le vois tu as trois niveaux de permission.
- le propriétaire (qui en général peut faire tout ce qu'il y a à faire) ie lire, modifier, supprimer le fichier et l'exécuter s'il s'agit d'un exécutable ou d'un répertoire. Ainsi sur un répertoire ou un exécutable il aura en général les droits rwx, et sinon les droits rx.
- le groupe utilisateur a généralement des droits égaux ou moindres
- les autres ont généralement des droits encore moindres.
Dans ton cas le but on pourrait imaginer :
-rwxr-x--- mando admin mon_repertoire
Ainsi :
- seul mando peut tout faire (ainsi que root bien sûr) (4+2+1),
- les membres du groupe admin peuvent juste lire et aller dans le répertoire (car les ils ont les droits en exécution) mais pas le supprimer (car ils n'ont pas les droits en écriture) (4+1),
- les autres ne peuvent rien faire (0).
... ce qui donne des droits 650.
En espérant que
sarat92
Messages postés
16
Date d'inscription
lundi 18 août 2008
Statut
Membre
Dernière intervention
27 novembre 2012
3
6 nov. 2009 à 15:49
6 nov. 2009 à 15:49
- seul mando peut tout faire (ainsi que root bien sûr) (4+2+1), - les membres du groupe admin peuvent juste lire et aller dans le répertoire (car les ils ont les droits en exécution) mais pas le supprimer (car ils n'ont pas les droits en écriture) (4+1), - les autres ne peuvent rien faire (0). ... ce qui donne des droits 650.
ca m'a l'air tres cohérent tout ca .Du coup le groupe developper qui n'est pas propriétaire du repertoire en question ne peut rien faire (ni voir le code, ni modifier )
Par contre il est préférable qu'il puisse executer et donc plutot 651 car sinon le fichier ne pourra même plus être lu par apache
je suis bon là ou pas ?
mamiemando
Messages postés
33274
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 septembre 2024
7 783
6 nov. 2009 à 16:33
6 nov. 2009 à 16:33
Du coup le groupe developper qui n'est pas propriétaire du repertoire en question ne peut rien faire (ni voir le code, ni modifier ) .
Voilà :-)
Par contre il est préférable qu'il puisse executer et donc plutot 651 car sinon le fichier ne pourra même plus être lu par apache je suis bon là ou pas ?
Il faut effectivement que le fichier appartienne à apache ou que apache appartienne au groupe propriétaire, sinon tu vas avoir un "permission denied" ou message d'erreur voisin.
Bonne chance
Voilà :-)
Par contre il est préférable qu'il puisse executer et donc plutot 651 car sinon le fichier ne pourra même plus être lu par apache je suis bon là ou pas ?
Il faut effectivement que le fichier appartienne à apache ou que apache appartienne au groupe propriétaire, sinon tu vas avoir un "permission denied" ou message d'erreur voisin.
Bonne chance
sarat92
Messages postés
16
Date d'inscription
lundi 18 août 2008
Statut
Membre
Dernière intervention
27 novembre 2012
3
6 nov. 2009 à 16:39
6 nov. 2009 à 16:39
merci mamiemando pour ton aide et ta patience
et comment faire en shell pour que apache appartienne au groupe propriétaire ?
donc 651 t'es d'accord avec moi ?j'aimerais une confirmation de la part d'un connaisseur comme toi
et comment faire en shell pour que apache appartienne au groupe propriétaire ?
donc 651 t'es d'accord avec moi ?j'aimerais une confirmation de la part d'un connaisseur comme toi
jerem1985
Messages postés
65
Date d'inscription
lundi 17 novembre 2008
Statut
Membre
Dernière intervention
19 novembre 2009
2
6 nov. 2009 à 18:08
6 nov. 2009 à 18:08
je sais pas ce que t'appel connaisseur
donc pour confirmer voici une copie du man
DESCRIPTION
La commande usermod modifie les fichiers d´administration des comptes
du système selon les modifications qui ont été indiquées sur la ligne
de commande.
-a, --append
Ajouter l´utilisateur aux groupes supplémentaires. N´utilisez cette
option qu´avec l´option -G.
-G, --groups GROUPE1[,GROUPE2,...[,GROUPEN]]]
A list of supplementary groups which the user is also a member of.
Each group is separated from the next by a comma, with no
intervening whitespace. The groups are subject to the same
restrictions as the group given with the -g option. If the user is
currently a member of a group which is not listed, the user will be
removed from the group. This behaviour can be changed via the -a
option, which appends the user to the current supplementary group
list.
donc si tu fais sa se sera bon
usermod -aG nom-du-group nom-user-a-ajouter-au-group
usermod -aG proprietaire apache
si tu veux vérifier
vi /etc/group
donc pour confirmer voici une copie du man
DESCRIPTION
La commande usermod modifie les fichiers d´administration des comptes
du système selon les modifications qui ont été indiquées sur la ligne
de commande.
-a, --append
Ajouter l´utilisateur aux groupes supplémentaires. N´utilisez cette
option qu´avec l´option -G.
-G, --groups GROUPE1[,GROUPE2,...[,GROUPEN]]]
A list of supplementary groups which the user is also a member of.
Each group is separated from the next by a comma, with no
intervening whitespace. The groups are subject to the same
restrictions as the group given with the -g option. If the user is
currently a member of a group which is not listed, the user will be
removed from the group. This behaviour can be changed via the -a
option, which appends the user to the current supplementary group
list.
donc si tu fais sa se sera bon
usermod -aG nom-du-group nom-user-a-ajouter-au-group
usermod -aG proprietaire apache
si tu veux vérifier
vi /etc/group
mamiemando
Messages postés
33274
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 septembre 2024
7 783
7 nov. 2009 à 01:25
7 nov. 2009 à 01:25
et comment faire en shell pour que apache appartienne au groupe propriétaire ?
La commande groups permet de retourner le groupe auquel appartient l'utilisateur courant. On peut changer d'utilisateur avec la commande su :
Les groupes et membres des groupes sont définis dans /etc/group dont la syntaxe est détaillée ici :
Tu peux sois modifier directement ce fichier, soit utiliser la commande usermod, comme vient de l'indiquer jerem1985.
Bonne chance
La commande groups permet de retourner le groupe auquel appartient l'utilisateur courant. On peut changer d'utilisateur avec la commande su :
su - apache groups
Les groupes et membres des groupes sont définis dans /etc/group dont la syntaxe est détaillée ici :
man 5 group
Tu peux sois modifier directement ce fichier, soit utiliser la commande usermod, comme vient de l'indiquer jerem1985.
Bonne chance
5 nov. 2009 à 16:01
je reflechis à tes réponses pour voir si j'ai compris