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

Linux Discussion :

Langage C/POSIX - Droits utilisateurs !


Sujet :

Linux

  1. #1
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut Langage C/POSIX - Droits utilisateurs !
    Bonjour,

    Je suis sur un projet où il faut que je connaisse à n'importe quel moment les droits utilisateur de la sesion en cours ou voir même mieux, du processus (mon programme) pour pouvoir déterminer si l'utilisateur à le droit de parcours, modification, suppression, déplacements sur des répertoires et/ou fichiers !

    Y'a-t-il des fonctions pour pouvoir déterminer ceci ?
    Merci d'avance

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    la commande stat ou fstat (man 2 stat)

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Ok c'est bon, merci

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Mais comment je peut savoir si le programme est appelé avec les droits root ou ceux d'un simple utilisateur ?

  5. #5
    Membre éprouvé
    Avatar de Pouic
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Points : 977
    Points
    977
    Par défaut
    man getuid
    man geteuid
    man setuid

    Et c'est Posix...

  6. #6
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    Bonjour

    Citation Envoyé par CSoldier
    Mais comment je peut savoir si le programme est appelé avec les droits root ou ceux d'un simple utilisateur ?
    Fatalement, ce que tu désire faire est déjà géré par ton système. Si tu as une gestion correcte des erreurs, l'utilisateur se rendra vite compte qu'il n'est pas admin s'il se mange une "permission non accordée"

    Au pire, un test du gid / uid pour prévenir ... comme l'a dit Pouic

  7. #7
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Oui ok merci pour les remarques, en faits c'est que dans un avenir proche, dans mon programme, je veut déterminer par avance les droits pour pouvoir proposer un passage temporaire en root, juste le temps d'une manip, tout en demandant biensur le password root c'est sur.

    D'ailleurs, à ce sujet, est-ce une pratique courante ou bien c'est à éviter de permettre au programme de changer ses uid temporairement ?

  8. #8
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    c'est une pratique potentielement tres dangereuse et peut conseillée, la commande sudo est la pour cela, il existe aussi les ACL's pour gérer des droit plus fin que le standard.

  9. #9
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par Smortex
    Au pire, un test du gid / uid pour prévenir ... comme l'a dit Pouic
    C'est justement là mon plus gros souci, comment d'apres un uid et gid déterminer quels sont les droits sur un fichier ? Je présume que ces fonctions renvoient un identifiant sous la forme d'un entier non ?

  10. #10
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par MarcG
    c'est une pratique potentielement tres dangereuse et peut conseillée, la commande sudo est la pour cela, il existe aussi les ACL's pour gérer des droit plus fin que le standard.
    Oui certes j'en suis conscient mais mon programme est un file manager donc je veut tout de meme proposer un passage temporaire sous l'UID effectif root le temps d'une manip en demandant le password root puis de rendre l'UID effectif original de l'UID de l'utilisateur qui a appelé le programme !

  11. #11
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    oui mais les stat des fichiers sont aussi des entier donc pas de problème de comparaison .....

  12. #12
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par MarcG
    oui mais les stat des fichiers sont aussi des entier donc pas de problème de comparaison .....
    Tu peut me faire un ptit dessin ... enfin façon de parler parce que là je vois pas comment comparer l'UID d'un utilisateur ou d'un groupe avec les autorisations sur les fichiers !

  13. #13
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Juste une simple supposition:

    Est-ce qu'il serais suffisant (pour ce que je veut faire) de récupérer la valeur du membre st_uid et/ou st_gid de la structure stat d'un fichier et de les comparer avec celle d'un retour de getuid et/ou getgid ?

    En fait c'est que j'avais pas remarqué que la structure stat contenais ces deux membres, je viens tout juste de le voir et puis c'est mon premier programme uniquement conçu pour des Unixoïdes


    AJOUT:

    Dernière petite question subsidiaire, un fichier appartenant à un utilisateur, est-il possible que dans certains cas, celui-ci n'est tout de même pas les droits nécessaires pour par exemple ouvrir le fichier ou le déplacer ou bien ce cas n'existe pas ?

  14. #14
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    Citation Envoyé par CSoldier
    Citation Envoyé par MarcG
    oui mais les stat des fichiers sont aussi des entier donc pas de problème de comparaison .....
    Tu peut me faire un ptit dessin ... enfin façon de parler parce que là je vois pas comment comparer l'UID d'un utilisateur ou d'un groupe avec les autorisations sur les fichiers !
    Ben c'est pas compliqué... L'algo c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    si l'utilisateur est le proprio alors
    bebut
      les droits sont ceux du proprio
    fin
    sinon
    debut
      fi l'utilisateur est dans le groupe du fichier alors
      debut
       les droits sont ceux du groupe
      fin
      sinon
      debut
        les droits sont ceux des "autres"
      fin
    fin
    Citation Envoyé par CSoldier
    un fichier appartenant à un utilisateur, est-il possible que dans certains cas, celui-ci n'est tout de même pas les droits nécessaires pour par exemple ouvrir le fichier ou le déplacer ou bien ce cas n'existe pas ?
    Oui... chmod o-rwx fichier... Mais en temps que propriétaire, tu peux reéaranger al situation (C'est une bonne blague ca, d'enlever tous les droits sur le dossier ~ d'un utilisateur ).

  15. #15
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Ok merci pour ses explications, ca va me permettre d'avancer dans mes fonctions. Je pense qu'il serais tout de meme prudent de vérifier les droits suivant le propriétaire ! Je trouve que c'est un peu lourd tout de même car les droits ne sont pas forcés d'êtres les mêmes suivant l'action qu'on faire sur un répertoire ou un fichier !

    En fait il faut tester au cas par cas non ?

  16. #16
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    oui il faut tester soit par anticipation -> fstat ou stat et controle soit en essayant la manipulation sur le fichier (le code retour des fonctions sur les fichiers indique si l'erreur est du a un droit.

  17. #17
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    En fait mon but est de tout tester par anticipation comme ca je peut proposer des solutions alternatives et en laisser le choix à l'utilisateur !
    Y'a-t-il un documents qui existe sur les droits que doivent avoir les fichiers et dossiers suivant l'action qu'on veut entreprendre ? Ou bien je doit tester toutes les combinaisons moi meme ?

  18. #18
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    mon cours ksh explique les droit. ATTENTION si la machines est configurer avec le support des ACL (Acces Controle Liste) la procedure est differente .... (man acl)

  19. #19
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Ok merci, moi je gère ca de façon traditionnelle pour être le plus portable possible sur les distrib Linux

  20. #20
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    Citation Envoyé par CSoldier
    Ok merci, moi je gère ca de façon traditionnelle pour être le plus portable possible sur les distrib Linux
    Oui ... mais si un utilisateur veux utiliser ton programme alors qu'il utilise les ACL ? Ton programme peut se tromper, lui dire "Vous ne pourrez pas" alors que ... si

    Ca fait une foule de choses a verifier ... qui le sont deja par nature ! Une bonne gestion des erreurs, avec l'usage de fonctions telle perror te permette de gerer toutes les exceptions de maniere souple, directement dans la langue de l'utilisateur... C'est comme cela que fonctionnent toutes les applications Unix* (en ligne de commande ! Je parle pas de GUI pour rendre l'utilisateur administrateur de sa machine) et changer ce mode de fonctionnement risque de surprendre, voir embeter !

    * Par exemple ifconfig :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    romain@p1.marvin ~> ifconfig rl0                                          18:25
    rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
            options=8<VLAN_MTU>
            inet 192.168.0.42 netmask 0xffffff00 broadcast 192.168.0.255
            inet6 fe80::208:a1ff:fe4d:bca1%rl0 prefixlen 64 scopeid 0x1 
            ether 00:08:a1:4d:bc:a1
            media: Ethernet autoselect (100baseTX <full-duplex>)
            status: active
    romain@p1.marvin ~> ifconfig rl0 192.168.75.20                            18:25
    ifconfig: ioctl (SIOCDIFADDR): permission denied

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/05/2005, 14h52
  2. Utiliser MySqlAdmin avec des droits utilisateurs sur XP
    Par thorgal85 dans le forum Outils
    Réponses: 2
    Dernier message: 18/03/2005, 12h19
  3. [langage] afficher heure et utilisateur
    Par caro_du_94 dans le forum Langage
    Réponses: 14
    Dernier message: 21/10/2004, 19h05
  4. [SQL Server 2k] Droits utilisateurs + tables système
    Par guignol dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 05/07/2004, 09h12
  5. [langage] fin de saisie utilisateur
    Par Kinethe dans le forum Langage
    Réponses: 4
    Dernier message: 24/06/2004, 14h19

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