[thelist] Site Root & Document Root

Keith cache at dowebs.com
Wed Jul 4 17:05:43 CDT 2001


> Keith  
>  
> One quick thought/question ... 
>  
> <SNIP> 
> > ...siteAdmin and the site's CGI, no one not even the serverAdmin. If 
> > you use 0666 to store files outside the domain path on a RaQ those 
> > files can be accessed by the serverAdmin, not a good thing if the 
> > serverAdmin is different from the siteAdmin. 
> </SNIP> 
>  
> can cgiWrap not read a files outside domain path with 0600 ? 
>  

That depends, Marcus. Unix permissions are not global,  0600 set by user xyz 
is a different set of permissions than  0600 set by user abc.  

Permissions are set for 0-owner-group-other. Suppose user  xyz can create, and 
therefore own, a file in the /root/  directory (the user named "root" would of 
course have to  give /root/ permissions for that). A CGI owned by user xyz  
would then be able to r/w that file in /root/ because xyz owns  both files. This 
logic extends throughout the entire server. A  CGI owned by xyz can r/w any file 
anywhere on the server if  the file is owned by xyz and has 0600 permissions. 

So the answere is, yes, IF the file outside of the domain  path is owned by the 
same user that owns the CGI that is  attempting to r/w that file. But the answere 
is no, IF the file is  owned by a user other than the owner of the CGI that is  
attempting to r/w that file.  

Caveat: xyz cannot r/w a file created by abc if the file has  0600 permissions, or 
even 0666 permissions, even if that  file is inside the domain (That's why you 
never allow two  siteAdmins for one site, and never upload files to a site as  the 
serverAdmin, even though both are technically possible  on a RaQ) 

This may seem weird if you are used to a regular Unix  server. This all makes 
sense though if you understand why  a RaQ has to use CGIWrap.  

On most Unix/Apache servers Perl runs as the user  nobody, the same user 
that Apache runs as. Therefore a  CGI activity is controlled by the "other" 
permission. On a  RaQ Perl also runs the Cobalt GUI that runs the server.  
Therefore Perl needs to r/w config files that are owned by  the user named 
"root". This would be a catastrophy waiting  to happen if left that way since a 
script in any domain could  r/w such files as httpd.conf.  

By forcing CGI through CGIWrap a CGI runs as the owner  of the file and by 
Cobalt/Apache config that owner must be a  siteAdmin. Therefore, CGI activity 
is controlled by the  "owner" permissions instead of by the "other" permissions.  
Although I don't use ASP or PHP, I understand that their  permission set on a 
RaQ is also through the "owner"  instead of "other".  

keith 

cache at dowebs.com
WebSitePad.com  
edit and manage your site from your browser




More information about the thelist mailing list