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

Python Discussion :

Savoir si on est en mode Super Utilisateur


Sujet :

Python

  1. #1
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 752
    Points
    1 752
    Par défaut Savoir si on est en mode Super Utilisateur
    Bonjour,
    tout est dans le titre. Comment peut-on savoir si le script Python a été lancé ou non en mode Super Utilisateur ?

    Existe-t-il une solution marchant sous Linux, Windaube et Mac O$ ?

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Sous les U*X, le group id devrait donner l'information.

    Pour Windows et les modèles de sécurité "modernes", le droit adhoc a été donné ou pas à l'utilisateur, au process,...
    Dans ce cas, vous avez aussi une primitive système permettant de savoir si vous avez le droit d'accès/modification de l'objet X.
    Normalement, try...except... et un message d'erreur "suffisent".

    Pourquoi voulez vous faire plus que "good enough"?
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    Sous linux/unix/macOsX, tu vas avoir l'info via os.getuid.

    Mais attention : 'super utilisateur', c'est vague. Sous MacOSX, beaucoup de taches d'administration se font sous le username 'admin' et pas forcément 'root'.

    De plus, getuid te retourne un entier : 0 pour root, mais pour admin ? (pas de macosx sous la main, là, tout de suite). Si, pour admin, ça peut varier d'une machine à l'autre, il te faudra faire l'association entre le no retourné et le username 'admin'

    Et comment réagit os.getuid lors d'un lancement via "sudo" ? faut essayer

    sous ubuntu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    plx@satellite:~$ more getuid.py
    import os
    print os.getuid()
    plx@satellite:~$ 
    plx@satellite:~$ python getuid.py 
    1000
    plx@satellite:~$ id
    uid=1000(plx) gid=1000(plx) groupes=1000(plx),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lpadmin),123(sambashare)
    plx@satellite:~$ 
    plx@satellite:~$ sudo python getuid.py 
    [sudo] password for plx:
    0
    plx@satellite:~$
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,
    Citation Envoyé par plxpy Voir le message
    Mais attention : 'super utilisateur', c'est vague. Sous MacOSX, beaucoup de taches d'administration se font sous le username 'admin' et pas forcément 'root'.
    Sous UNIX/Posix le super user est root et son (uid, gid) est (0, 0).
    Tout le reste est "customisé" en fonction de la distro (OSX est un parent lointain de BSD) ou d'un historique de la "sécurité" spécifique à chaque client.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Dans les linux traditionnels, root a un uid de 0. Mais il me semble que dans les OS actuels, la mode est plutôt à attribuer ou pas les privilèges d'administrateur à un utilisateur "normal". Ce qui explique que sous Windows, Linux Ubuntu (et dérivés) et Mac OX X, les tâches d'administrations ne demande que le mot de passe utilisateur.

    Sous Ubuntu, je crois que les privilèges administrateur sont donnés à un utilisateur "normal" par son appartenance au groupe "sudo", et c'est le fichier /etc/sudoer qui définit les droits.

    Avec Ubuntu, il faudrait donc tester si l'utilisateur est soit root (qui peut exister sous Ubuntu), soit appartient au groupe sudo.

    Pour Windows ou Mac OS X je ne sais pas, mais il y a peut-être des astuces similaires.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  6. #6
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonsoir,

    Pourquoi ne pas tester "l'interdit" ?
    touch /root/test.txt
    touch: impossible de faire un touch «/root/test.txt»: Permission non accordée
    Il suffit de définir ce qui est 'only root' pour chaque système et try/except passeras très bien (Bien que... sudo rm /root/test.txt).

    @+
    Merci d'utiliser le forum pour les questions techniques.

  7. #7
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 752
    Points
    1 752
    Par défaut
    Merci pour vos réponses.

    Citation Envoyé par wiztricks Voir le message
    Normalement, try...except... et un message d'erreur "suffisent". Pourquoi voulez vous faire plus que "good enough"?
    A la base je cherchais une méthode propre en espérant qu'un module ad hoc proposerait cela.

    Citation Envoyé par PauseKawa Voir le message
    Pourquoi ne pas tester "l'interdit" ?

    Il suffit de définir ce qui est 'only root' pour chaque système et try/except passeras très bien (Bien que... sudo rm /root/test.txt).
    Pas idiot car là on peut passer par subprocess pour voir si une erreur est renvoyée. Dans ce cas, quelle commande interdite et non invasive peut-on utiliser sous Windaube ? Cette question m'intéresse même si j'ai dû opter pour des try... except... en particularisant mes messages d'erreur ce qui est pénible à gérer.

  8. #8
    Membre éprouvé
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Points : 1 006
    Points
    1 006
    Par défaut
    Sous Win-Vista/7, l'écriture sur la partition <C> est réservé aux Admins.
    Alors un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    open("C:/est_tu_admin", "w")
    devrais le faire savoir.
    Je suppose que l'idéal serait de le faire avec un nom de fichier temporaire, juste au cas où...

    Sous Xp... rien de mémoire, pas d'os sous la main pour jouer à Mr. Taton.
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  9. #9
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonsoir,

    Merci pour le pas idiot

    Changer d'utilisateur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    patrice@Zeus:~$ sudo su
    [sudo] password for patrice: 
    root@Zeus:/home/patrice# su
    root@Zeus:/home/patrice#
    Sous Windows XP (2000/2003) cela devrais le faire avec un runas /user:... (rien pour tester ce soir)
    Comme le dit afranck64 sous 'Sous Win-Vista/7' il existe des restrictions sur c:\ (et surtout sur le répertoire 'root' de windows > 'c':\windows. Pas de quoi tester ce soir.
    Sous Mac cela doit exister comme sous Tux.

    A spécifier tout cela.

    @+
    Merci d'utiliser le forum pour les questions techniques.

  10. #10
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    A tester (surtout sous windows, rien pour tester)

    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
    16
    17
    18
    19
    20
    21
    import os
    from sys import platform
     
    if platform == 'win32':
        import win32api
        import win32con
        import win32security
        user = win32api.GetUserNameEx(win32con.NameSamCompatible)
        # ou user = os.environ.get("USERNAME") ?
        sd = win32security.GetFileSecurity(os.environ['WINDIR'], win32security.OWNER_SECURITY_INFORMATION)
        nom, domaine, tp = win32security.LookupAccountSid(None, sd.GetSecurityDescriptorOwner())
        isroot = (user == nom)
        import ctypes
        isadmin = ctypes.windll.shell32.IsUserAnAdmin()
        # ou isadmin = os.access(os.environ['WINDIR'], os.W_OK)
    else:
        isroot = (os.stat("/").st_uid == os.getuid())
        isadmin = (os.stat("/").st_gid == os.getegid())
     
    print("Is root ? %r" % isroot)
    print("Is admin ? %r" % isadmin)
    @+
    Merci d'utiliser le forum pour les questions techniques.

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut PauseKawa,

    Citation Envoyé par PauseKawa Voir le message
    Changer d'utilisateur.
    Cette méthode se résume à écrire un lanceur genre "su" qui va lancer le programme X sous le compte de l'utilisateur privilégié.

    Très bien mais comment X s'assure qu'il s'exécute effectivement dans le contexte de ce compte là? Nous avons un problème de poules et d’œufs qui demande plus de code.

    A mon sens, sécurité et protection ne sont pas des attributs qu'il faut traiter "dans" le développement mais "imposer via la configuration de l'environnement". Cela permet d'avoir des mécanismes de sécurité cohérents et plus facilement auditable d'une application à l'autre. Comme la sécurité est un attribut non fonctionnel, autant éviter d'écrire du code: si on doit changer la policy, il faudrait mettre à jour toutes les applications!

    Dans ce cadre, assurer que les scripts sont propriétés d'un administrateur et uniquement accessible par lui est une opération qui put être réalisée à l'installation du programme. Elle positionne uid, gid des scripts et les droits d'accès owner, group, world et permet d'interdire l'accès à d'autres membre du groupe ou à n'importe quel autre utilisateur.
    Cette configuration ne peut être changé que par un administrateur et on peut périodiquement s'assurer que ces attributs ont la valeur attendue.

    Comme il sera impossible de lancer le programme sans être l'utilisateur qui a les droits qui vont bien, le problème est réglé. Et nous n'avons pas eu à ajouter de ligne de code dans le programme.

    Mais rambc n'a toujours pas dit "pourquoi" il voulait récupérer cette information, ce qui n'aide pas trop à définir un "comment" adapté.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  12. #12
    Membre éprouvé
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Points : 1 006
    Points
    1 006
    Par défaut
    @Pausekawa: le test du admin tourne bien, mais celui du root non(Je me demande s'il est logique sous win car je ne capte pas vraiment).

    edit: oups, je suppose qu'il s'agit du test sur le premier compte Administrateur .
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  13. #13
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    C'est une comparaison entre le nom de l'utilisateur (os.environ.get("USERNAME")) et le propriétaire de os.environ['WINDIR'], j'ai supposé que c'était 'Administrateur' mais pas testé.
    Merci d'utiliser le forum pour les questions techniques.

  14. #14
    Membre éprouvé
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Points : 1 006
    Points
    1 006
    Par défaut
    hmm, bref, j'obtiens un:
    *** Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32. ***
    >>>
    Is root ? False
    Is admin ? 1
    >>> user
    u'Anna\\Franck Mario'
    >>> nom
    u'TrustedInstaller'
    >>>
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  15. #15
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Normal je pense: user c'est le nom du compte courant, TrustedInstaller le propriétaire de windir. Et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Is root ? False
    Is admin ? 1
    Anna\\Franck Mario est administrateur.
    Non ?
    Merci d'utiliser le forum pour les questions techniques.

  16. #16
    Membre éprouvé
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Points : 1 006
    Points
    1 006
    Par défaut
    si,
    il s'agit bien d'un admin.
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  17. #17
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Vu le TrustedInstaller os.environ['WINDIR'] n'est sans doute pas un bon choix.
    Utiliser os.environ['SYSTEMDRIVE'] ?
    Quel répertoire a pour propriétaire 'Administrateur' sous Windows ?

    Edit: Ceci dit la proposition de wiztricks est bien plus propre.
    Merci d'utiliser le forum pour les questions techniques.

  18. #18
    Membre éprouvé
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Points : 1 006
    Points
    1 006
    Par défaut
    pêché sur stackoverflow:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    from win32com.shell import shell
     
    if shell.IsUserAnAdmin():
        print ("i am admin")
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  19. #19
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Pour remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    isadmin = ctypes.windll.shell32.IsUserAnAdmin()
    ? Pourquoi pas vu import win32con et que cela évite un import.

    Il vas falloir attendre rambc pour poursuivre il me semble.
    Merci d'utiliser le forum pour les questions techniques.

  20. #20
    Membre éprouvé
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Points : 1 006
    Points
    1 006
    Par défaut
    Exact, pour le ctypes, je suis pris de court
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    import ctypes, os, sys
    if sys.platform == "win32":
        is_admin = ctypes.windll.shell32.IsUserAnAdmin() != 0
    else:
        is_admin = os.getuid() == 0
     
    print (is_admin)
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

+ 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/08/2007, 08h27
  2. Savoir si le kernel est en mode multicast
    Par lia dans le forum Administration système
    Réponses: 4
    Dernier message: 09/07/2006, 01h16
  3. Comment savoir si on est en Mode ajout ?
    Par GERO99 dans le forum Access
    Réponses: 3
    Dernier message: 11/05/2006, 10h00
  4. Réponses: 1
    Dernier message: 22/04/2006, 16h26

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