chmod g+ Equivalent

milan_sanremo hancock.robert at gmail.com
Wed Aug 22 17:39:23 CEST 2007


On Aug 14, 7:30 pm, Steve Holden <st... at holdenweb.com> wrote:
> milan_sanremo wrote:
> > On Aug 13, 8:06 pm, Steve Holden <st... at holdenweb.com> wrote:
> >> milan_sanremo wrote:
> >>> I've read the documentation on os.chmod() and can implement all the
> >>> standard commands, but what is the syntax for the equivalent of chmod g
> >>> + to set the group id?
> >> I assume when you say "to set the group id" you actually mean "to assert
> >> the setgid bit"? I further presume that when you say "chmod g+" you
> >> actually mean "chmod g+s".
>
> > The g+s was an omission on my part.  I can see how it would confuse
> > the issue.
>
> > I'm not sure if I mean "to assert the setgid bit".  My SUN docs refer
> > to it being 'on'.
> >http://docs.sun.com/app/docs/doc/819-3321/6n5i4b767?l=en&a=view&q=set...
>
> >> You can't have read the documentation very thoroughly. It says right at
> >> the top:
>
> >> S_ISUID
> >> S_ISGID
>
> > I did see this in the documentation:
>
> > Change the mode of path to the numeric mode. mode may take one of the
> > following values (as defined in the stat module) or bitwise or-ed
> > combinations of them:
>
> >     * S_ISUID
> >     * S_ISGID
>
> > Which refers to:
> >http://docs.python.org/lib/module-stat.html
>
> > After which it was still unclear.
>
> > My question is in the command os.chmod(myDirectory, ?) what is the
> > value for ? to turn on the setgid bit.
>
> > Contrary to your presumption, I did read the documentation
> > thoroughly.  It is inability to understand the concept which prompted
> > me to post the question here.
>
> Well, you don't tell us what (if anything) you have tried so far. Python
> has an interpreter that's very easy to use interactively. Why don't you try
>
>      os.chmod(my_directory, os.S_ISGID)
>
> and see if it does what you want? You can often save time by trying such
> things for yourself. Though it needn't be a substitute for asking
> questions on this list, it can make your questions better-informed.
>
> In this particular case, now I understand your needs a little better,
> since you want to *add* a bit setting you will likely have to use
> something like
>
>      current_permissions = os.fstat(my_directory).ST_MODE
>
> to read the directory's current permission bits. Then you will need to
> execute
>
>      os.chmod(my_directory, current_permissions | stat.S_ISGID)
>
> Please don't take this as gospel, though, as I am currently on the road
> with only a Windows computer available, but I think it should get you
> closer to where you want to be.
>
> regards
>   Steve
> --

os.chmod(my_directory, cur_permissions | (stat.S_ISGID | 8)) gave the
equivalent of chmod g+s.




More information about the Python-list mailing list