CGI File Permissions

CGI stands for “Common Gateway Interface,” a fancy name meaning computer programs running on the web server that can be invoked from a www page at the browser. Simply uploading a cgi script will not make it work, you must set the correct permissions.

The “bin” part alludes to the binary executables that result from compiled or assembled programs. It is a bit misleading because cgi’s can also be Unix shell scripts or interpreted languages like Perl. CGI scripts need to be saved in ASCII format and uploaded to your server’s cgi-bin in ASCII or text format. This is very important.

All files on UNIX (including Linux and other UNIX variants) machines have access permissions. These tell the operating system how to deal with requests to access these files. There are three types of access:

  • Read – Denoted as r, files with read access can be displayed to the user.
  • Write – Denoted as w, files with write access can be modified by the user.
  • Execute – Denoted as x, files with execute access can be executed as programs by the user.

Access types are set for three types of user group:

  • User – the owner of the file.
  • Group – other files which are in the same folder or group.
  • World – everyone else.

The web server needs to be able to read your web pages in order to be able to display them in a browser. The following permissions need to be set in order for your web site to function properly.

  • All HTML files and images need to be readable by others. The setting for this is 644 (readable by User, Group, and World, and writable by User), and is set automatically when you upload files.
  • All folders need to be executable by others. The setting for this is 755 (readable by User, Group, and World, writable by User, executable by User, Group, and World), and is set automatically when you create a folder.
  • All CGI files (all files in the cgi-bin folder) need to be executable by other. The setting for this is 755 (readable by User, Group, and World, writable by User, executable by User, Group, and World), and is not set automatically when you upload files. You need to change file permissions manually. Refer to the Introduction to CGI topic for more information.

Warning: It is important that none of your files or folders are writable by anyone else. Any file or folder which is writable by others can be erased by them. Generally there is no problem, just be careful in how you set your permissions.

To change file or folder permissions:

  1. Navigate to the file or folder that you need to change.
  2. Click on the name of the file or folder.
  3. Click on the Change Permissions link in the top-right corner of the window.
  4. Click on as many tick boxes as you require to create the right permission. The permission numbers underneath the tick boxes will update automatically.
  5. Click on the Change button button when you have finished setting the permission. The new permission level has now been saved and the display updated to show the modified file.
Changing file or folder permissions

Setting Permissions using Fetch for MAC:

If you have Fetch for the Mac, you have an easy way to change permissions. Goto the file you want to change the permissions on, and highlight it. Under the Remote menu, select Change Permissions. A window will pop up showing the current permissions for the file you had highlighted, as shown in the screenshot below. Click on the boxes to change permissions as needed. (Refer tothe Permission Definitions further down this page for an explanation ofsettings.

Setting Permissions Using WS_FTP for Windows:

WS_FTP accomplishes the same task as above. Just highlight the file you want to check, and right-click on it. A menu will pop up, then select CHMOD. You will see the window as shown below in the screenshot we’ve provided. Click on the appropriate settings as needed. (Refer to the Permission Definitions further down this page for an explanation of settings.