Re: Why does os.stat() tell me that my file-group has no members?
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?
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?
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?
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?
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