OVH Cloud OVH Cloud

fonction stat sur windows

5 réponses
Avatar
GERBIER Eric
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

bonjour

j'ai un code que j'esperais portable, dans lequel j'utilise la fonction stat
pour recuperer des informations sur les fichiers.

sur windows (XP, 2000), je viens d'avoir la mauvaise surprise de constater que
les champs uid et gid ( 4 et 5 ) sont toujours a 0 quel que soit le proprietaire
du fichier !

y-a-t-il une methode portable (unix/windows) pour recuperer ces informations ?

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFAA8L2Nzh6q8tvpCoRAvfcAJ9BD08rSK4B9rGccwQ7UTZnF9mcPgCdFmUe
saUnvYZ1YPZ6lCNGk/WDu44=
=FgWY
-----END PGP SIGNATURE-----

5 réponses

Avatar
GERBIER Eric
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

GERBIER Eric wrote:
bonjour

j'ai un code que j'esperais portable, dans lequel j'utilise la fonction stat
pour recuperer des informations sur les fichiers.

sur windows (XP, 2000), je viens d'avoir la mauvaise surprise de constater que
les champs uid et gid ( 4 et 5 ) sont toujours a 0 quel que soit le proprietaire
du fichier !

y-a-t-il une methode portable (unix/windows) pour recuperer ces informations ?


je me reponds a moi-meme. je viens de faire quelques essais avec differents
interpreteurs perl :
activestate 5.6.1 et 5.8.2 me renvoient tous les deux un champ a 0

par contre l'interpreteur perl distribue avec cygwin affiche bien des uid
differents
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFABB1yNzh6q8tvpCoRAlteAJ4/vTe0fjAG59uXp0jdRVkiTlMZGwCdECnN
pIY9K95W/22SU9I+Yfe8FQ0 =I0Qj
-----END PGP SIGNATURE-----

Avatar
Paul GABORIT
Si mes souvenirs sont bons...

À (at) Tue, 13 Jan 2004 17:31:46 +0100,
GERBIER Eric écrivait (wrote):
je me reponds a moi-meme. je viens de faire quelques essais avec differents
interpreteurs perl :
activestate 5.6.1 et 5.8.2 me renvoient tous les deux un champ a 0


...ça s'explique : Windows ne connait pas la notion de uid, gid. En
remplacement de l'uid, Windows (NT,2000,XP Pro) propose le SID (je ne sais pas
si Windows connait la notion de gid). Ça, c'est pour un utilisateur. Pour un
fichier (sur une filesystem NTFS), c'est encore plus délicat puisqu'il faut
gérer les access_list (ou équivalent de Windows). Et là, je ne peux plus vous
aider car je ne connais pas assez bien. Je ne suis pas sûr que la notion de
d'utilisateur et de groupe propriétaire est vraiment un sens....

Ceci étant dit, c'est surprenant car dans 'perlport', nul part n'est évoqué un
éventuel problème entre 'stat' et Windows (si ce n'est pour les champs device
et inode ;-). Peut-être la remarque suivante au sujet de 'chmod' : « Only good
for changing "owner" read-write access, "group", and "other" bits are
meaningless. (Win32) »

Personnellement, lorsque j'utilise des fonctionnalités où le comportement de
Windows s'éloigne trop de celui d'Unix (FileSystem, Multi-process, etc.),
j'utilise les modules spécifiques Win32::*.

par contre l'interpreteur perl distribue avec cygwin affiche bien des uid
differents


...ce sont de faux uid, gid créés virtuellement par cygwin (qui a son propre
fichier passwd créé à partir de la base d'utilisateur de Windows). Dans la doc
de cygwin, il faut lire le chapitre concernant ntsec.

--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>
Perl en français - <http://www.enstimac.fr/Perl/>

Avatar
GERBIER Eric
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Paul GABORIT wrote:
Si mes souvenirs sont bons...

Ceci étant dit, c'est surprenant car dans 'perlport', nul part n'est évoqué un
éventuel problème entre 'stat' et Windows (si ce n'est pour les champs device
et inode ;-). Peut-être la remarque suivante au sujet de 'chmod' : « Only good
for changing "owner" read-write access, "group", and "other" bits are
meaningless. (Win32) »


je vais poser la question sur la mailing list d'activeperl pour voir ce qu'ils
en pensent

Personnellement, lorsque j'utilise des fonctionnalités où le comportement de
Windows s'éloigne trop de celui d'Unix (FileSystem, Multi-process, etc.),
j'utilise les modules spécifiques Win32::*.


c'est bien ce que j'aurais voulu eviter ...

par contre l'interpreteur perl distribue avec cygwin affiche bien des uid
differents


...ce sont de faux uid, gid créés virtuellement par cygwin (qui a son propre
fichier passwd créé à partir de la base d'utilisateur de Windows). Dans la doc
de cygwin, il faut lire le chapitre concernant ntsec.


de toute maniere, cygwin ne fournit pas le module Tk, dont j'ai besoin pour mon
application, et comme je n'ai pas de compilateur sur XP pour le refaire ...

merci pour cette tres bonne reponse (comme toujours)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFABQloNzh6q8tvpCoRAkL6AJ9JARJlW6p1TQUC0PObVsW7PJYPAACeIO39
LsnnXyZqVwcUpm2XLwXdZfg =tSd6
-----END PGP SIGNATURE-----


Avatar
Emmanuel.Schreque
Dans un article précédent, écrivait...

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

bonjour

j'ai un code que j'esperais portable, dans lequel j'utilise la fonction stat
pour recuperer des informations sur les fichiers.

sur windows (XP, 2000), je viens d'avoir la mauvaise surprise de constater
que les champs uid et gid ( 4 et 5 ) sont toujours a 0 quel que soit le
proprietaire du fichier !


C'est normal UID et GID n'existe pas sous windows.
La notion de propriétaire est de plus différente sous windows. Il peut s'agir
d'un user ou d'un groupe et cela ne préjuge en rien sur les droits d'accès à
un fichier qui peut etre affecté à de multiples users ou groups.
y-a-t-il une methode portable (unix/windows) pour recuperer ces informations
?


Non.
Pour la gestion système des fichiers sous windows voir le très complet
www.roth.neth

--
Emmanuel SCHREQUE - CRDP de l'ACADEMIE de VERSAILLES
http://www.ac-versailles.fr http://news.ac-versailles.fr

Avatar
GERBIER Eric
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Emmanuel Schreque wrote:
Dans un article précédent, écrivait...


C'est normal UID et GID n'existe pas sous windows.
La notion de propriétaire est de plus différente sous windows. Il peut s'agir
d'un user ou d'un groupe et cela ne préjuge en rien sur les droits d'accès à
un fichier qui peut etre affecté à de multiples users ou groups.


j'ai fini par utiliser le module Win32::FileSecurity pour recuperer la liste des
acl associees a un fichier.
par contre, je ne sais toujours pas reconnaitre le sid proprietaire :)

Pour la gestion système des fichiers sous windows voir le très complet
www.roth.net


merci pour l'adresse, je ne connaissais pas ce site

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFADRm6Nzh6q8tvpCoRAseoAJwNYvjmu6SFvP9t2nuKGTHTfEfRAACfaVQW
X/48KPa9Y2wzZqCAK8BuDes =AqsC
-----END PGP SIGNATURE-----