Topic: Violation de droits

Bonjour,

j'administre depuis quelques années un serveur MSS sur Debian Lenny (utilisé par plus de mille personnes) qui ne me donne jamais de souci (merci !) ... sauf aujourd'hui.

Je constate en effet un comportement bizarre pas très "secure", peut-être lié à la gestion par MSS des droits étendus, reproductible à 100% de la façon suivante :

- on a besoin d'un administrateur "admin" et de deux utilisateurs "user1" et "user2" ayant le groupe principal "groupe".

- créer un dossier "Test" appartenant à admin:groupe de droits 2777 (donc avec le bit étendu setgid).

- user1 crée un fichier "document" dans ce dossier puis se déconnecte. L'admin voit alors (en abrégeant)

$ ls -l Test
-rw-r--r-- user1 groupe document

et il se dit que personne d'autre que user1 ne peut modifier ce fichier...

- user2 se connecte alors, édite le document et le sauvegarde sans problème !! L'admin voit à ce moment

$ ls -l Test
-rw-r--r-- user2 groupe document

donc une belle violation de droits, non ? Pour information, voici mon sftp_config, ou du moins la partie qui me semble pertinente :

<Default>
        Home                           /home
        StayAtHome                     true
        HideNoAccess                   true
        IgnoreHidden                   false
        VirtualChroot                  false
        MinimumRights                  0640 0770
        DefaultRights                  0644 0775
        MaximumRights                  0666 0777
</Default>

Est-ce que vous avez le même comportement ?

2 (edited by teka 2011-10-15 12:41:02)

Re: Violation de droits

Bonjour,

Je suis flatté de savoir que MSS est vraiment utilisé sur des gros systèmes  big_smile

Maintenant les droits sont gérés par le système d'exploitation, les directives MinimumRights/DefaultRights/MaximumRights modifient sur les droits transmis par le client SFTP.

Alors après test en mode console (en reproduisant le cas):
- user2 ne peut pas modifier le fichier de user1
- user2 PEUT supprimer le fichier de user1 (et comme il pouvait le lire alors il peut le modifier)

Donc que raconte les logs MSS à ce sujet ? smile

Peut être un chmod "1777" (comme le /tmp) correspond mieux aux besoins ?

Re: Violation de droits

Effectivement, le bon réflexe, que je n'ai pas eu (tiens je ne vois pas de smiley "shame on me"), était de regarder les logs de MSS...

En fait la modification du fichier de user1 par user2 se fait en 3 étapes :

  • le fichier modifié est enregistré sous un nom temporaire

  • le fichier original est supprimé (effectivement, user2 en a le droit dans cette configuration)

  • le fichier modifié est renommé avec le nom initial

Je n'avais pas conscience de ce processus qui fait que, de facto, un fichier ouvert en lecture aux autres l'est aussi en écriture !

Il est vrai que la solution passe par le sticky bit : avec les droits 3777 ça fonctionne bien comme je le souhaite.

Désolé pour le dérangement et merci pour votre réactivité/enthousiasme toujours intacts !

Re: Violation de droits

Pas de soucis, on est toujours là pour répondre aux questions wink

(effectivement niveau smileys, je ne voulais pas trop de "kikou lol" donc c'est le strict minimum  tongue)