Web Developer's Virtual Library: Encyclopedia of Web Design Tutorials, Articles and Discussions


WDVL Newsletter

Active Server Pages
JSP/Java Servlets
Microsoft SQL Server
Daily Backup
Dedicated Servers
Streaming Audio/Video
24-hour Support    

jobs.webdeveloper.com

Hiermenus


e-commerce
Partner With Us















Developer Channel
FlashKit.com
JavaScript.com
JavaScriptSource
Developer Jobs
ScriptSearch
StreamingMediaWorld
Web Developer's Journal
Web Developer's Virtual Library
WebDeveloper.com
Webreference
Web Hosts
XMLfiles.com

internet.com
IT
Developer
Internet News
Small Business
Personal Technology

Search internet.com
Advertise
Corporate Info
Newsletters
Tech Jobs
E-mail Offers


The "chmod" Utility

July 19, 1998

The most commonly used permission modification utility is chmod. This utility allows you to modify the permission bits of a file or directory. It is also one of the most difficult utility for new web technicians to master because it is a little obtuse in design.

Essentially, the "chmod" utility breaks down the 9 fields into three numbers (owner rights, group rights and world rights) such that each number defines three fields (readable, writable, and executable).

The break down follows the following scheme. If a file is readable, it gets 4 points. If it is writable, it gets 2 points and if it is executable, it gets 1 point. The total number of points will define its access privileges.

But again, this is best seen by example. Consider the following:

Code Explanation
0 No permission for anything
1 executable only. Used rarely for executable application or directory
2 writable only. Rarely ever used
3 writable and executable only. Rarely, if ever, used.
4 Readable only. Good for HTML files. If you store them as read only, then they are rarely lost if someone accidentally or intentionally attempts to delete them. Not so useful for directories
5 Readable and executable but not writable. Used for CGI scripts that should not be modified or deleted after they work. Also good for directories
6 Readable and writable but not executable. Okay for files that you are working on, but it is best not to store files in a writable form for your own safety.
7 Readable, writable and executable. The wad. Just be very, very careful, especially if you have something writable AND executable in a CGI directory.

But wait, you are not done there. Once you have determined what numbers to assign, you must assign them to the correct groups. That is you must provide permission instructions for owner, group and world. To do that, you will use the "chmod" utility that takes a three digit number and a filename. The three-digit number will correspond to owner, group and world values and will be a number between 0-7 according to the formula explained above. Let's look at some examples...

Command Explanation
chmod 444 myfile.txt Sets the permission for myfile.txt such that owner, group and world have read permission only. This is a pretty secure way to store HTML files when they are not being currently edited.
chmod 644 *.html Sets the permission for all files with the .html extension such that the owner may read or write to the file but group and world may only read.
chmod 751 ../cgi-bin/*.cgi Sets the permission for all files with the .cgi extension in the cgi-bin directory (which is up one directory from the current directory) such that the owner may read or write and execute the script, group members can read and execute it, and world may only execute it. This is pretty good for CGI scripts but it is probably better to use 551 so that you don't accidentally modify or delete it

You can also use the alternate method for defining permissions that uses letters instead of numbers. In this system, you simply specify which permission field you are modifying (g=group and a=all), the permission type you are modifying (r=read, w=write, x=execute) and whether you are adding or removing rights (-=remove, +=add). Thus, for example, "chmod g+rw temp.txt" will give everyone in the group read and write privileges whereas chmod a-xw will take away write and execute privileges for everyone else.

Also, a cool trick for chmod is the -R option that allows you to change permissions recursively such as

chmod -R 444 *.html

Additional Resources:

Permission Bits
Introduction to UNIX for Web Developers | Table of Contents
The "chown" Utility


Up to => Home / Internet / UNIX / Intro




Jupiter Online Media: internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and Jupiter Online Media

Jupitermedia Corporate Info


Legal Notices, Licensing, & Permissions, Privacy Policy.

Web Hosting | Newsletters | Tech Jobs | Shopping | E-mail Offers