os.chmod() question ?

Anand B Pillai abpillai at lycos.com
Mon Apr 7 07:01:35 EDT 2003


Yeah yeah. I was prefixing an 'o' instead of a '0'. 
Stupid me. No wonder I never got it right ! :-O

Thanks
Anand Pillai
Ben Hutchings <do-not-spam-ben.hutchings at businesswebsoftware.com> wrote in message news:<slrnb8oqd5.174.do-not-spam-ben.hutchings at tin.bwsint.com>...
> In article <bd993a2f.0304022308.19f36fec at posting.google.com>,
> Anand B Pillai wrote:
> > Hi pythonfolks,
> >  
> >     What numerical argument does os.chmod() accept on windoze .
> > For a unix box, I used to give the following for files:
> > 
> > chmod - 777 => All rwx permissions enabled (-rwxrwxrwx)
> > chmod - 644 => RW for owner, r for group/world (-rw-r--r--)
> > 
> > I attempted os.chmod() command on Windoze on similar lines
> > on a read-only file.
>  <snip> 
> >     Apparently, os.chmod() works differently from original chmod() command.
> > On a unix box, the results were totally different.
> > 
> > Do I need to pass an octal integer as the second argument ?
> 
> The Python interpreter can't interpret literals in different bases
> according to which function you call, so you must put a '0' at the
> beginning of octal numbers.
> 
> Anyway, Windows file permissions work in a totally different way
> from Unix permissions.  The only simple flag is the R (read-only)
> attribute.  In NT/2000/XP all other permissions are controlled by
> an ACL.  In toy Windows everything else is always permitted.
> 
> Under Windows, I think os.chmod() ignores everything except the
> owner-writable flag (0200) and sets the R attribute to the inverse
> of that.  Cygwin will show permissions as either 0777 or 0555
> depending on the state of the R attribute.
> 
> So 777 decimal = 01411 octal which means the R attribute is set
> and the permissions read as 0555, and 644 decimal = 01204 octal
> which means the R bit is cleared and the permissions read as 
> 0777.  All clear?




More information about the Python-list mailing list