Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
droit d'accès
Envoyé par: keld

Bonjour tout le monde,
Je ne savais pas trop ou poster ce message, donc désoler si ce n'est pas le bon endroit.

Voila mon soucis, j'ai installer apache sur mandrake, je met mes pages *.html dans le dossier /var/www/html/, jusqu'ici tout va bien, par contre quand j'essaye de me connecter avec mon navigateur a la page d'index j'ai ce message "You don't have permission to access /index.htm on this server.", donc je passe en root dans une console et je met chmod 777 /var/www/html/index.htm . et la je retourne dans mon navigateur et la ca marche. Par contre c'est top coté sécurité de faire ça...
Alors je vous pose la question, comment faire pour que n'importe qui puisse acceder a mon site sans que j'ai a donné des droit a chaque fois a mes nouvelles pages que je crée, et surtout garder une sécurité maximum sur mon serveur?


Poste le Wednesday 2 March 2005 12:34:09
Répondre     Citer    
Re: droit d'accès
Envoyé par: patrick HARMEL

Le serveur apache tourne sous une certaine identité.
Pour le voir:

#ps alx |grep apache
5 0 2972 1 16 0 12212 5040 - S ? 0:00 /usr/sbin/apache
5 1000 2976 2972 16 0 12348 5120 - S ? 0:00 /usr/sbin/apache
5 1000 2977 2972 17 0 12348 5132 - S ? 0:00 /usr/sbin/apache
5 1000 2978 2972 20 0 12212 5036 - S ? 0:00 /usr/sbin/apache
5 1000 2979 2972 20 0 12212 5036 - S ? 0:00 /usr/sbin/apache
5 1000 2980 2972 25 0 12212 5036 - S ? 0:00 /usr/sbin/apache
5 1000 18649 2972 17 0 12212 5056 - S ? 0:00 /usr/sbin/apache

ici, c'est l'utilisateur dont l'uid est 1000.

Pour connaitre son nom:

#grep 1000 /etc/passwd
pharmel:x:1000:1000tongue sticking out smileyatrick HARMEL,,,:/home/pharmel:/bin/bash

Cet utilisateur correspond au parametrage du serveur:

#grep ^User /etc/apache/httpd.conf
User pharmel

il s'agit ici d'un exemple. Il serait préférable de créer un utilisateur spécifique (par exemple "apache", qui existe peut-être déjà sur ta machine), et de modifier le fichier /etc/apache/httpd.conf (User apache)


Il faut donc que l'utilisateur en question ait le droit de lecture sur les fichiers que le serveur propose. Ces fichiers se trouvent dans le répertoire spécifié par la directive DocumentRoot dans le fichier de configuration du serveur.

# grep ^DocumentRoot /etc/apache/httpd.conf
DocumentRoot /var/www

Cordialement

Poste le Wednesday 2 March 2005 14:19:18
Répondre     Citer    
Re: droit d'accès
Envoyé par: iantra

Tu mets les droits à 700 ou bie 500.
rwx pour toi et lecure seule opour tout le monde;deye rolling smiley

Poste le Wednesday 2 March 2005 14:37:33
Répondre     Citer    
Re: droit d'accès
Envoyé par: keld

Je commence par vous dire merci de me repondre.
Pour la methode de "patrick HARMEL", c'est pas mal, mais l'inconvenient c'est qu'il n'y a que moi qui est acces a mon site avec cette methode, comment je fais pour qu'un pote, qui se trouve chez lui et qui veut venir voir mon site? Je vais pas lui donner mon login et mdp de mon ordinateur?
Y'a pas moyen de faire un user guest squi pourrait se connecter de n'importe ou avoir juste un acces lecture seule, sans entrer de mot de passe?

Pour la methode de iantra, j'ai testé:
#chmod 700 /var/www/html
ça n'as pas marcher, j'ai remplacer 700 par 500, idem, j'ai tjrs le meme message.#%b

Poste le Wednesday 2 March 2005 15:19:14
Répondre     Citer    
Re: droit d'accès
Envoyé par: ZeLinuxienFou

Il me semble que les dossiers qui contienent ton site (cad /var, /var/www et /var/www/html) doivent être en executable (711) pour que tout le mond y ai accés

________________________________________________________________________________
Si nous avons deux oreilles et une bouche, c'est pour écouter deux fois plus que nous parlons.
Heureusement que nous avons dix doigts...

Poste le Wednesday 2 March 2005 15:36:25
Répondre     Citer    
Re: droit d'accès
Envoyé par: keld

niet toujours pareil, j'ai fait:
#chmod 711 /var/
#chmod 711 /var/www/
#chmod 711 /var/www/html/
et rien n'y change.
y'as pas un fichier *.conf qu'il faudrait que j'édite pour laisser passer les guest?

Poste le Wednesday 2 March 2005 15:57:49
Répondre     Citer    
Re: droit d'accès
Envoyé par: ZeLinuxienFou

Peut-être dans httpd.conf alors...

tu devrait avoir un truc du genre :

<Directory "/var/html/www/">

</Directory>

avec, entre autre, un "Allow all" ou un "Deny all" dedans.
Si tu as un Allow all (ce qui me semble être ton cas), bah, je sais pas quoi te dire :-/
par contre, si tu as un Deny all, change le

Poste le Wednesday 2 March 2005 16:34:32
Répondre     Citer    
Re: droit d'accès
Envoyé par: patrick HARMEL

Il faut bien comprendre comment fonctionnent les droits.

Quand un de tes potes se connecte sur ton serveur, il n'a pas besoin de droits particuliers. Ce n'est pas lui qui accède aux fichiers, mais ton serveur apache.

Ainsi, si avec ton navigateur, tu peux consulter tes pages, cela veux dire que ton serveur peut les lire. Et cela sera toujours le cas, quelque soit celui qui se connecte à ton serveur.

Dans l'exemple que je t'ai donné, je n'ai pas de serveur http en production. C'est juste une config de test. C'est pour cette raison que le serveur tourne sous l'identité pharmel.
En production, comme je te l'ai dit, il vous mieux créer un utilisateur spécifique. Dans la plupart des distributions, il est créé à l'installation du serveur apache, et s'appelle apache.

Si ton serveur tourne sous l'identité apache (User apache dans le httpd.conf), il suffit que tes pages soient accessibles par l'utilisateur apache.

Le problème que pourrait avoir un de tes potes pour se connecter à ton serveur est un autre problème.

Cordialement

Poste le Thursday 3 March 2005 10:23:04
Répondre     Citer    
Re: droit d'accès
Envoyé par: keld

et ou je trouve ce fameux fichier httpd.conf

Poste le Thursday 3 March 2005 15:08:18
Répondre     Citer    
Re: droit d'accès
Envoyé par: Patrick HARMEL

normalement sous /etc, ou /etc/apache.

Si la commande
grep ^User /etc/apache/httpd.conf
que je t'ai indiquée dans ma première réponse a marché, c'est qu'il est dans /etc/apache.

Sinon, pour le trouver:
find /etc -name httpd.conf 2>/dev/null

Poste le Thursday 3 March 2005 15:24:06
Répondre     Citer    
Re: droit d'accès
Envoyé par: keld

Bon j'ai fait un:
#chown apache.apache /www/var/html/

et la ca marche!!! Logique vous allez me repondre, mais bon je ne le savais poyawning smiley)
Merci a tous de votre aide (vraiment cool ce phorum)

Par contre j'ai une derniere question:
Etant donner que je fais mes pages web sur dreamweaver sur mon poste WinXP, la methode de transfert vers mon serveur apache est un peu lourd, je dois me connecter sur samba, envoyer mon fichier html sur mon partage réseau, puis apres avec putty je fais une session ssh pour copier le fichier vers /var/www/html/, et tout ça en mode root (ça craint). y'as pas un moyen plus simple?

Poste le Thursday 3 March 2005 15:24:56
Répondre     Citer    
Re: droit d'accès
Envoyé par: Patrick HARMEL

D'abord, il faut laisser tomber windaube. Il y a des logiciels sous linux qui permettent de faire la même chose.

Pour l'instant, tu peux installer un serveur ftp sur ta machine linux, si tu n'en a pas déjà un.
Ensuite, tu édites le fichier /etc/password pour que l'utilisateur apache ait comme répertoire personnel /var/www/html/
la ligne dans ton /etc/password doit ressembler à ça:
apache:x:102:65534::/var/www/html:/bin/false

ensuite, tu mets un mot de passe pour ton utilisateur apache (c'est pas obliger, mais c'est mieux)
en root:
#passwd apache

enfin tu configures ton serveur ftp pour qu'il ne soit opérationnel que sur ton réseau local (c'est toujours pas obligatoire, mais c'est mieux). Dans le fichier de configuration de ton serveur ftp, tu dois avoir une directive "bind" qui doit être suivie de l'adresse IP de ta carte réseau de ton réseau local.

Ne sachant pas quel serveur tu utilise, je ne peux malheureusement être plus précis.

Une fois cela fait, avec n'importe quel client ftp sur ton winmachin, tu te connecte sur ton serveur en utilisateur apache, avec le mot de passe que tu aura définit précédemment. Ainsi, tu seras sous le bon répertoire, et les fichiers copiés auront les bon droits


Poste le Thursday 3 March 2005 15:42:31
Répondre     Citer    
Re: droit d'accès
Envoyé par: Clawangel

Salut!
Essaye de mettre les droits d'accès avec le module ACL (access control list). Sous linux, les droits d'accès se limitent à User Group Other (UGO). Les commandes ACL permettent de mettre des droits aussi poussé que sous Windows.

@bientot!

Poste le Thursday 3 March 2005 16:54:42
Répondre     Citer    
Re: droit d'accès
Envoyé par: keld

qu'est ce que tu me conseille comme serveur ftp sur linux, j'ai proftp d'installer je crois mais chui pas sur.
Par contre je ne peut pas trop lacher windows, je suis aussi un gamer, donc... et en plus va expliquer a ma femme (qui est infographiste) de quitter photoshop pour gimp... Enfin bref deja j'ai une machine sous linux qui me sert de routeur et de garde du corps de mon réseau, c'est deja pas mal (par contre si tu connais un bon antivirus qui fait serveur sur linux et client pour windows je suis preneur).

Poste le Thursday 3 March 2005 19:02:05
Répondre     Citer    
Re: droit d'accès
Envoyé par: Patrick HARMEL

proftpd est trés bien.

Pour windows, ma femme à moi est trés contente de ne plus avoir de plantage inopinés, et elle ne reviendrait pour rien au monde en arrière. Elle te fait une pub pour linux, c'est dingue.

Pour l'anti-virus, j'ai pas taté encore. Il semblerait que clamAV soit une bonne solution. Bitdefender peut aussi être intéressant.

Mais revenons à nos moutons.

Si proftpd est installé, tu dois avoir un fichier /etc/proftpd.conf.
Commence par :

#ps ax |grep proftpd
1793 ? Ss 0:00 proftpd: (accepting connections)
1909 pts/2 R+ 0:00 grep proftpd

Si tu as quelque chose qui ressemble à la première ligne, c'est qu'il tourne.
Si tu n'as pas, cela ne veux pas dire qu'il n'est pas installé, mais qu'il ne tourne pas.
Regarde si tu as un script de démarrage pour proftpd :

# ls /etc/init.d/proftpd
/etc/init.d/proftpd

Si tu as cette réponse, c'est que proftpd est installé. Sinon, il faut l'installer.

Une fois proftpd installé, edite le fichier /etc/proftpd.conf.

Il faut que tu désactive le serveur sur toutes les interfaces sauf celle de ton réseau local.
Dans le fichier de configuration que j'ai, la ligne :

DefaultServer on

fait que ton serveur sera accessible sur toutes les interfaces. Remplace le on par off. Ainsi, ton serveur sera actif, mais inaccessible.

Il faut donc ensuite explicitement lui dire qu'il doit accepter les connections sur ton réseau local. Si ,par exemple, ton adresse IP sur ton réseau local (celle du linux) est 192.168.1.1, alors rajoute :

DefaultAddress 192.168.1.1

Pour activer ce nouveau paramétrage, il faut redémarrer le serveur, avec la commande :

# /etc/init.d/proftpd restart
Restarting ProFTPD ftp daemon.proftpd.
.. - setting default address to 192.168.1.1
proftpd.
done.

Voilà, ton serveur est actif, tu peux t'y connecter avec n'importe quel nom d'utilisateur définit sur ta machine, mais seulement depuis ton réseau local (pas depuis l'internet). C'est plus sur.

A+


Poste le Thursday 3 March 2005 20:24:49
Répondre     Citer    
Re: droit d'accès
Envoyé par: keld

Franchement MERCI pour tout, tout marche nickel, encore merci de ton aide.
Je ne voudrait pas trop abuser de ta gentillesse, promis c la derniere question apres je t'embete plus.
Tu peux m'expliquer a quoi correspond les differentes commandes de cettes ligne s'il te plait:
apache:x:102:65534::/var/www/html:/bin/false

ENCORE UN GRAND MERCI!!!!!!

Poste le Thursday 3 March 2005 21:30:38
Répondre     Citer    
Re: droit d'accès
Envoyé par: Patrick HARMEL

Primo, c'est d'abord à moi que je fais plaisir en te répondant.

Je te demanderais donc de renier ta promesse. Si tu as d'autres questions, n'hésite pas.

apache, c'est le nom de l'utilisateur, tel qu'il est vu par l'humain.

x, c'est, à l'origine, l'emplacement du mot de passe (crypté). Le pb, c'est que le fichier /etc/passwd doit être lisible par n'importe qui, puisque quand tu t'authentifies, tu n'as aucune identité sur le système, et pourtant, c'est en référence à ce fichier que le système sait si tu es référencé. Ce fichier étant lisible, tu peux récupérer les mot de passe cryptés, et chercher le mot de passe en clair qui correspond (le méchanisme qui permet d'obtenir le mot de passe crypté à partir du mot de passe en clair est connu de tous et toujours le même).
Ton système, comme tous les systèmes actuels, utilise les mots de passe cachés (shadow).
Si tu consultes le fichier /etc/shadow, tu trouveras le mot de passe crypté tel qu'on pouvait le trouver dans le fichier /etc/passwd. Sauf que /etc/password est "system wide readable", /etc/shadow ne l'est pas:

# ls -l /etc/passwd /etc/shadow
-rw-r--r-- 1 root root 1192 Dec 10 17:31 /etc/passwd
-rw-r----- 1 root shadow 856 Dec 10 17:31 /etc/shadow

102 est l'UID: le User IDentifier, c'est la syntaxe système pour désigner un utilisateur (les machines adorent les chiffres, les humains les détestent).

65534, c'est le GID, le Group IDentifier, le numero qui identifie le groupe principal de l'utilisateur apache (pour l'humain), ou de l'utilisateur 102 (au sens machine).
Consulte le fichier /etc/group pour connaitre le nom humain du groupe principal de l'utilisateur, groupe dont le nom machine est 65534. Chez moi, c'est "nogroup". Je suppose que chez toi c'est pareil.

:: il n'y a aucune information entre les :, c'est un champ vide. C'est l'emplacement pour les informations supplémentaires concernant l'utilisateur en question. Son nom complet, son numéro de tél, etc...

/var/www/html est le répertoire personnel. Quand l'utilisateur se connecte sur la machine, il est automatiquement placé dans ce répertoire.

/bin/false est le shell, l'interpréteur de commande, le programme interface entre l'homme et la machine. Pour un utilisateur normal, tu trouveras ici /bin/bash, l'interpréteur de commande standard de linux. /bin/false est un programme qui ne fait rien d'autre que se terminer immédiatement, en signalant une erreur. Il est donc impossible de se connecter sur ta machine (en local, en telnet ou en ssh) avec ce compte.

Pour plus d'informations :

#man 5 passwd

A +


Poste le Thursday 3 March 2005 22:45:42
Répondre     Citer    
Re: droit d'accès
Envoyé par: keld

Tu m'as enormement aider, merci encore, promis si j'ai d'autre questions, je n'hesiterai pas a te demander, par contre vue que tu est assez calé donc je ne sait pas comment je pourrais te rendre la pareil. Si tu as besoins d'aide pour faire un poulet massala ou des cheese naan n'hésite pas je serai enchanté de te donner quelque conseil @:-) .
Encore mille fois merci.

ps: si tu as des infos sur l'antivirus client/serveur fait moi signe, si j'en ai de mon coté, je le posterai ici.

Poste le Thursday 3 March 2005 22:59:19
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
droit d'accès
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons