Slight Technical Difficulties

From the “I am so Dumb” Dept.

Warning: The contents of this blog are highly technical

My weblog was down for about 12 hours lastnight and today. This morning I went into my webjournal admin page to edit only to find this:

CGIWrap Error: Execution of this script not permitted

Execution of (investig8) is not permitted for the following reason:

User not Privileged.


Local Information and Documentation:

 

Contact Name: AdministratorContact EMail: admin

 

Server Data:
Server Administrator/Contact: admin
Server Name: www.pixelsandwidgets.com
Server Port: 80
Server Protocol: HTTP/1.1

 

Request Data:
User Agent/Browser: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; T312461)
Request Method: GET
Remote Address: xx.xxx.xxx.xxx
Remote Port: xxxx
Extra Path Info: /xxxxxx/xx.cgi

 

WTF?

So out comes some command line goodness via terminal to check the user permisions. I was looking at the CHMOD (CHange file MODe) values and they all seemed correct (Column 1). Lo and behold, all my files have the same properties, or do they?

Terminal screen

However, what I failed to notice, was the “Investig8” moniker in Column 3. I apparently had lost ownership.

Dumb, Dumb, Dumb!

Yesterday I deleted an old user account that I didn’t use. Since the files no longer had an owner, they had no reference as to who could use it. If you know unix, you know what I mean, but if you don’t, I’ll try to explain.

Every file in a unix file system requires a specific set of permissions: Read, Write and Execute. These permisions are repeated 3 times in hiearchical fashion, beginning with the OWNER, then the GROUP that the file belongs to, and then Other people. When you upload a file, the FTP user account that you use becomes the owner. When I had deleted the old account (pixelswidget), I deleted the owner of those files (all my cgi-scripts). The result was that the files, having no owner, could not determine which group it was associated with (hence the site410 in column 4), and hence had no bearing as to how to execute when a user outside of the owner and group tried to execute the file.

It’s interesting. It was so basic of a mistake, I didn’t realise it.

Tai