Department of
Physics & Astronomy


Main Page
  • Computer System
    • Web Passwords

Got Protection?!!

Do you want to restrict access to information posted on your personal web pages?
It's easy!
* Here's how to do it...

Tutorial on Restricting Access to Web Pages

You can post web pages in your public_html directory that require passwd authorization for access. For instance, you can post problem sets and answers which will be accessible only to members of a particular class. Or a map to your favorite fishing hole...

Security Level: Mild

This mechanism should prove handy for casual use. However, it ranks very low on the security scale, and should not be used for highly confidential material. Passwords and the "protected" web pages alike are transmitted unencrypted and can easily be eavesdropped. Don't use passwords that even resemble passwords to important accounts!

Furthermore, be aware that anyone logged into a host in the P&A network can access files in your home directories, including your web directories. You can generally use chmod to restrict access to directories and files, but if you restrict access to web pages, the web server will also be blocked.

The up side is that your protected pages are unlikely to appear in a Google search...

Simple scheme, one user per directory

Although you cannot configure access authorization for individual files, you can restrict access to entire directories. You must decide which different people and/or groups of people will need access to different resources. Each grouping will need its own restricted-access directory.

For example, you can give all the students in your Tachyon Physics 414 class a single login name and password which will grant them access to class web pages. Here we'll set up a a directory for this group, and a different directory for the students of Cosmography 101. Finally, a Reference directory will be accessible to both classes.

I. Create directories for each access grouping

$ cd ~/public_html
$ mkdir t414 c101 ref

II. Create the password file

All of the passwords will be kept in a single file. This file should not be in the public_html hierarchy; let's create an "auth" directory in your home directory.

The htpasswd utility creates and manages a password file. You must enter the first user and password when you use the -c option to create the file. Here we're creating a user named tach414:

$ mkdir ~/auth	# The tilde (~) stands for your home directory
$ htpasswd -c ~/auth/ tach414

You will be prompted twice for the password. You will give this log name and this password to all of the students of Tachyon Physics 414. For the sake of this test, use "Z38r4" as the passwd.

When you repeat these steps for another class [user], you'll want to use the same password file. To enter additional users without erasing the previous users, or to change a password, leave out the "-c":

$ htpasswd ~/auth/ cosmo101

For the sake of this test, use "5pH3r3"" as the passwd.

III. Create a .htaccess file in each controlled directory

With your favorite text editor, create a file named t414/.htaccess containing the following lines:

AuthName "Access to Tachyon Physics 414"
AuthType Basic
AuthUserFile /Users/yourhomedirectory/auth/
Require user tach414

Then create the c101/.htaccess and ref/.htaccess similarly, with the appropriate changes. To make the Reference directory accessible to the students of all of the classes, all of the "users" can be listed on the Require line:

Require user tach414 cosmo101

...or access can be granted to any validated user:

Require valid-user

IV. Create Links

Now all that's left is to put an index.html and/or other web pages and documents in that directory, then create the normal hyperlinks to them from an openly accessible page...

For instance:

Class Room Time Privileged Pages
Tachyon Physics 414 Th043 TTH:4pm-2pm Classwork
Cosmographics 101 Th295 MWF:7pm-9pm Classwork
All Classes Reference

Go ahead, try these links! Remember that in the examples above, user tach414's password is Z38r4, and cosmo101's password is 5pH3r3.

After you create pages in your protected directories, and an unprotected page with links to them, you should be able to run the same test accessing your own protected directories.

V. One last item of caution:

Be sure and create an "index.html" file in each directory you create, or else any user who gains web access to that directory will be able to read the names of all of the files there. This may not be a problem for you, but if you "park" files there that you don't [yet] want read even by the password privileged users, they could be found and read anyway.

More Sophistication

If you're feeling ambitious, you can give each student a user name and password. You can also assign individual users to groups and authorize access to your directories according to the groups. Read the Apache Web Server documentation on Authentication, Authorization and Access Control for the full story.

* This mechanism only works if it's enabled in the web server. If the page you're configuring isn't at, then the server may not be configured to support dynamic authorization. In addition, not all [older] browsers carry support for this feature.