Re: Why does os.stat() tell me that my file-group has no members?

2012-12-19 Thread Kushal Kumaran
saqib.ali...@gmail.com writes:

> Thanks!! This was very helpful. It worked perfectly.
> I had no clue about the intricacies of how python represents the group data 
> from the underlying OS.
>
> This page doesn't go into to detailed explanation like you did: 
> http://docs.python.org/2/library/grp.html
>

That's mostly because it represents the group data almost exactly as the
underlying OS, including using the same structure member names as
defined in pwd.h.  The unix-specific modules often assume the user is
familiar with the underlying library calls and data structures, and is
looking for a way to use them from python.

> 

-- 
regards,
kushal
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Why does os.stat() tell me that my file-group has no members?

2012-12-19 Thread Chris Angelico
On Thu, Dec 20, 2012 at 12:23 PM,   wrote:
>
> Thanks!! This was very helpful. It worked perfectly.
> I had no clue about the intricacies of how python represents the group data 
> from the underlying OS.
>
> This page doesn't go into to detailed explanation like you did: 
> http://docs.python.org/2/library/grp.html

Want to show your appreciation in a lasting way? Write up a patch, or
a new paragraph or so of text for the page, and open a tracker issue
to improve the docs!

http://bugs.python.org/

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Why does os.stat() tell me that my file-group has no members?

2012-12-19 Thread saqib . ali . 75

Thanks!! This was very helpful. It worked perfectly.
I had no clue about the intricacies of how python represents the group data 
from the underlying OS.

This page doesn't go into to detailed explanation like you did: 
http://docs.python.org/2/library/grp.html



On Wednesday, December 19, 2012 6:17:16 PM UTC-5, Hans Mulder wrote:
> On 19/12/12 22:40:00, saqib.ali...@gmail.com wrote:
> 
> > 
> 
> > 
> 
> > I'm using python 2.6.4 on Solaris 5-10.
> 
> > 
> 
> > I have a file named "myFile". It is owned by someone else, by
> 
> > I ("myuser") am in the file's group ("mygrp"). Below is my python
> 
> > code. Why does it tell me that mygrp has no members???
> 
> > 
> 
> > 
> 
>  import os, pwd, grp
> 
>  stat_info = os.stat("myFile")
> 
>  fileUID = stat_info.st_uid
> 
>  fileGID = stat_info.st_gid
> 
>  fileGroup = grp.getgrgid(fileGID)[0]
> 
>  fileUser = pwd.getpwuid(fileUID)[0]
> 
>  print "grp.getgrgid(fileGID) = %s" % grp.getgrgid(fileGID)
> 
> > 
> 
> > grp.getgrgid(fileGID) = grp.struct_group(gr_name='mygrp', gr_passwd='', 
> > gr_gid=100, gr_mem=[])
> 
> 
> 
> It doesn't say that your group has no members.
> 
> 
> 
> Every account has a primary group, and some accounts also
> 
> have addtional groups.  The primary group is the one in the
> 
> .pw_gid attribute in the pwd entry.  The additional groups
> 
> are those that mention the account in the .gr_mem attribute
> 
> in their grp entry.
> 
> 
> 
> Your experiment shows that nobody has "mygrp" as an additional
> 
> group.  So if you're a member of mygrp, then it must be your
> 
> primary group, i.e. os.getgid() should return 100 for you.
> 
> 
> 
> You can get a complete list of members of group by adding
> 
> two lists:
> 
> 
> 
> def all_members(gid):
> 
> primary_members = [ user.pw_name
> 
> for user in pwd.getpwall() if user.pw_gid == gid ]
> 
> additional_members = grp.getgrgid(gid).gr_mem
> 
> return primary_members + additional_members
> 
> 
> 
> 
> 
> Hope this helps,
> 
> 
> 
> -- HansM
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Why does os.stat() tell me that my file-group has no members?

2012-12-19 Thread Hans Mulder
On 19/12/12 22:40:00, saqib.ali...@gmail.com wrote:
> 
> 
> I'm using python 2.6.4 on Solaris 5-10.
> 
> I have a file named "myFile". It is owned by someone else, by
> I ("myuser") am in the file's group ("mygrp"). Below is my python
> code. Why does it tell me that mygrp has no members???
> 
> 
 import os, pwd, grp
 stat_info = os.stat("myFile")
 fileUID = stat_info.st_uid
 fileGID = stat_info.st_gid
 fileGroup = grp.getgrgid(fileGID)[0]
 fileUser = pwd.getpwuid(fileUID)[0]
 print "grp.getgrgid(fileGID) = %s" % grp.getgrgid(fileGID)
> 
> grp.getgrgid(fileGID) = grp.struct_group(gr_name='mygrp', gr_passwd='', 
> gr_gid=100, gr_mem=[])

It doesn't say that your group has no members.

Every account has a primary group, and some accounts also
have addtional groups.  The primary group is the one in the
.pw_gid attribute in the pwd entry.  The additional groups
are those that mention the account in the .gr_mem attribute
in their grp entry.

Your experiment shows that nobody has "mygrp" as an additional
group.  So if you're a member of mygrp, then it must be your
primary group, i.e. os.getgid() should return 100 for you.

You can get a complete list of members of group by adding
two lists:

def all_members(gid):
primary_members = [ user.pw_name
for user in pwd.getpwall() if user.pw_gid == gid ]
additional_members = grp.getgrgid(gid).gr_mem
return primary_members + additional_members


Hope this helps,

-- HansM
-- 
http://mail.python.org/mailman/listinfo/python-list


Why does os.stat() tell me that my file-group has no members?

2012-12-19 Thread saqib . ali . 75


I'm using python 2.6.4 on Solaris 5-10.

I have a file named "myFile". It is owned by someone else, by I ("myuser") am 
in the file's group ("mygrp"). Below is my python code. Why does it tell me 
that mygrp has no members???


>>> import os, pwd, grp
>>> stat_info = os.stat("myFile")
>>> fileUID = stat_info.st_uid
>>> fileGID = stat_info.st_gid
>>> fileGroup = grp.getgrgid(fileGID)[0]
>>> fileUser = pwd.getpwuid(fileUID)[0]
>>> print "grp.getgrgid(fileGID) = %s" % grp.getgrgid(fileGID)

grp.getgrgid(fileGID) = grp.struct_group(gr_name='mygrp', gr_passwd='', 
gr_gid=100, gr_mem=[])
-- 
http://mail.python.org/mailman/listinfo/python-list