IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Droits sur répertoire et fichiers contenus dedans


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 44
    Points : 38
    Points
    38
    Par défaut Droits sur répertoire et fichiers contenus dedans
    Bonjour,
    je suis face à un problème que je n'arrive pas à résoudre.

    Sur un serveur, je suis l'utilisateur lm du groupe lm ; j'ai un répertoire CONTROLE dans lequel j'ai un script (monscript.sh) qui tourne et qui écrit des fichiers logs.

    Je veux rendre accessible en lecture ce répertoire à 3 utilisateurs u1 u2 et u3 qui ne font pas partie du groupe lm.

    Par ailleurs, je veux qu'ils puissent lire et lancer le script monscript.sh (pas d'écriture et pas de rm sur ce fichier !).
    Par contre les fichiers logs peuvent être effacés s'ils le veulent et ils doivent pouvoir écraser les fichiers logs existants s'ils relancent ce script.

    Je mets les droits x sur le répertoire pour qu'ils y accèdent par la commande cd => OK
    Si je ne mets pas les droits w sur le répertoire, ils ne pourront pas faire de rm sur le script, mais pas non plus sur les logs.
    Si je mets les droits w sur le répertoire, et uniquement r et x sur le script, le rm sera quand même autorisé.

    Comment faire?
    Merci pour votre aide.

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Le droit "w" sur un répertoire permet de créer des fichiers neufs ou d'effacer les fichiers anciens qui s'y trouvent. Tu ne peux pas alors faire en sorte qu'un user u1 puisse effacer un fichier X et ne pas effacer un fichier Y. Hormis si tu mets le droit "s" au répertoire. Dans ce cas, u1 pourra créer ce qu'il veut mais ne pourra effacer que ses fichiers persos. Ca règlerait "en partie" ton problème mais dans ce cas, le log de u1 ne pourrait pas être effacé par u2.

    Perso je pense que t'as mal conçu ton truc. Pourquoi en effet permettre à u1, u2 et u3 d'effacer les logs ? Effacer quelque chose fait perdre la trace de ce quelque chose...

    Perso moi je mettrais le répertoire CONTROLE (user lm, groupe lm) en rwxr-xr-x.
    Le script je le mettrais en rwxr-xr-x pour que tous puissent l'exécuter et les logs en rw-rw-rw- afin que tes u1, u2 et u3 puissent écrire dedans, les vider s'ils le veulent mais pas les effacer.

    Et même j'irais jusqu'à mettre u1, u2 et u3 invités du groupe lm comme ça je peux verrouiller le tout en --- pour other.

    Ou alors tu mets ton script dans un autre répertoire relatif et ton rep de logs en rwxrwxrwx. Le script (et tous ceux qui le lancent) peuvent accéder aux logs ou les supprimer mais le script reste non effaçable.

    PS: tu peux aussi supprimer le droit "r" de ton dossier "CONTROLE". On ne pourra plus faire de "ls" dans ce dossier mais le script qui accède aux logs "en aveugle" pourra quand-même y accéder...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Perso je pense que t'as mal conçu ton truc.
    Je dirais même plus... on pourrait envisager une "meilleure" conception...

    Pourquoi en effet permettre à u1, u2 et u3 d'effacer les logs ? Effacer quelque chose fait perdre la trace de ce quelque chose...
    Exact! J'utiliserais plutôt un système de rotation de logs.

    Ou alors tu mets ton script dans un autre répertoire relatif et ton rep de logs en rwxrwxrwx. Le script (et tous ceux qui le lancent) peuvent accéder aux logs ou les supprimer mais le script reste non effaçable...

    PS: le droit "r" que j'ai mis aux différents dossiers de cet exemple est facultatif. Tu peux très bien le supprimer. On ne pourra plus faire de "ls" dans ces dossiers mais le script qui accède aux logs "en aveugle" pourra quand-même y accéder...
    Conformément à la proposition précédente de Sve@r, je séparerais plus les choses.
    Regarde comment sont faits la plupart (je ne parle pas de matelas) des produits linux.

    Pour rester simple et au plus près de ton projet, dans le répertoire principal du projet, disons "/chemin/vers/mon/projet/", je créerais plusieurs répertoires:
    • src/ pour les sources du projet
    • data/ pour les données/ressources, si tu as besoin d'en stocker qui peuvent être séparées du code
    • logs/ pour les logs


    je donnerais:
    • l'accès "x" au répertoire "src" (pour qu'ils puissent accéder au contenu)
    • l'accès "rx" au source "src/mon_script.sh" (pour qu'ils puissent l'exécuter)
    • l'accès "x" au répertoire "data"
    • l'accès "r" aux fichiers contenus dans "data"


    Enfin, pour rester dans ce que tu as déjà fait, je donnerais
    • l'accès "rwx" au répertoire "logs"
    • l'accès "rw" aux fichiers contenus dans "logs"

Discussions similaires

  1. Problème de droits sur répertoires et fichiers
    Par cdsoft dans le forum Windows 7
    Réponses: 14
    Dernier message: 19/07/2012, 16h53
  2. Pb de droits sur répertoires/fichiers
    Par jcd dans le forum Windows Vista
    Réponses: 5
    Dernier message: 12/05/2008, 14h05
  3. droit sur dossier et fichiers
    Par samourai_alex dans le forum Sécurité
    Réponses: 3
    Dernier message: 29/01/2008, 12h35
  4. Droits sur répertoire
    Par tanaka_agape dans le forum Oracle
    Réponses: 1
    Dernier message: 07/09/2007, 08h34
  5. droits sur répertoire web
    Par emathieu13 dans le forum Serveurs (Apache, IIS,...)
    Réponses: 1
    Dernier message: 03/04/2006, 20h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo