There is a difference between how the .py files get installed and how the scripts get installed. umask was 22. The files have just read permissions as they sit in the distribution (source control makes them read only unless you are changing them. But distutils is smart enough to make them writeable in the build directory or a rebuild would die. Here after an install is a portion of what is in the build directory: build/lib/browser: total 565 drwxr-xr-x 2 dubois climate 1024 Aug 5 10:06 ./ drwxr-xr-x 3 dubois climate 1024 Aug 5 10:06 ../ -rw-r--r-- 1 dubois climate 15 Jan 4 2001 __init__.py -rw-r--r-- 1 dubois climate 2593 May 17 13:43 gui_about.py -rw-r--r-- 1 dubois climate 50113 May 17 13:43 gui_alter_plot.py ... -rw-r--r-- 1 dubois climate 57129 Aug 1 09:32 vcs_function.py It is not smart enough to do this to the scripts: build/scripts: total 1108 drwxr-xr-x 2 dubois climate 1024 Aug 5 10:06 ./ drwxr-xr-x 4 dubois climate 1024 Aug 5 10:06 ../ -r-xr-xr-x 1 dubois climate 61224 May 2 09:04 ASD.scr* -r-xr-xr-x 1 dubois climate 5150 May 17 13:43 HARD_COPY* -r-xr-xr-x 1 dubois climate 232 Apr 4 09:08 cdat* -r-xr-xr-x 1 dubois climate 90 Feb 12 10:58 cdatnews* -r-xr-xr-x 1 dubois climate 200 Apr 3 13:47 vcdat* [dubois@almanac browser]$ After .py files installed, they have group write. [dubois@almanac browser]$ ls -l /home/dubois/linux/lib/python2.2/site-packages/browser total 982 drwxrwxr-x 2 dubois climate 2048 Aug 1 09:42 ./ drwxr-xr-x 20 dubois climate 1024 Aug 3 15:33 ../ -rw-rw-r-- 1 dubois climate 15 Jan 4 2001 __init__.py -rw-rw-r-- 1 dubois climate 175 Aug 1 09:42 __init__.pyc -rw-rw-r-- 1 dubois climate 2593 May 17 13:43 gui_about.py -rw-rw-r-- 1 dubois climate 1332 Aug 1 09:42 gui_about.pyc -rw-rw-r-- 1 dubois climate 50113 May 17 13:43 gui_alter_plot.py -rw-rw-r-- 1 dubois climate 57129 Aug 1 09:32 vcs_function.py -rw-rw-r-- 1 dubois climate 37090 Aug 1 09:42 vcs_function.pyc [dubois@almanac browser]$ But scripts installed are not writeable: [dubois@almanac browser]$ ls -l /home/dubois/linux/bin total 3672 drwxr-xr-x 3 dubois climate 1024 Aug 5 10:10 ./ drwxrwxr-x 7 dubois climate 1024 Aug 1 09:42 ../ -r-xr-xr-x 1 dubois climate 61224 May 2 09:04 ASD.scr* -r-xr-xr-x 1 dubois climate 5150 May 17 13:43 HARD_COPY* -r-xr-xr-x 1 dubois climate 232 Apr 4 09:08 cdat* -r-xr-xr-x 1 dubois climate 90 Feb 12 10:58 cdatnews* -r-xr-xr-x 1 dubois climate 200 Apr 3 13:47 vcdat* [dubois@almanac browser]$ This causes an error if I change cdatnews, for example, and try to reinstall. It happens in either the build directory or where I install it. copying Scripts/cdatnews -> build/scripts error: build/scripts/cdatnews: Permission denied [dubois@almanac browser]$