So let's suppose you want to restrict files in a directory called
turkey to username pumpkin and password
pie. Here's what to do:
Create a file called
.htaccess in directory turkey that looks
like this:
AuthUserFile /otherdir/.htpasswd AuthGroupFile /dev/null AuthName ByPassword AuthType Basic <Limit GET> require user pumpkin </Limit>
Note that the password file will be in another directory
(/otherdir).
AuthUserFile must be the full Unix pathname of the password file.
Also note that in this case there is no group file, so we specify
/dev/null (the standard Unix way to say "this file
doesn't exist").
AuthName can be anything you want. The AuthName field
gives the Realm name for which the protection is provided. This name
is usually given when a browser prompts for a password, and is also usually
used by a browser in correlation with the URL to save the password information
you enter so that it can authenticate automatically on the next challenge.
Note: You should set this to something, otherwise it will default to
ByPassword, which is both non-descriptive and too common.
AuthType should be set to Basic, since we are
using Basic HTTP Authentication. Other possibilities for NCSA HTTPd 1.5
are PEM, PGP, KerberosV4, KerberosV5, or Digest. These other types of
authentication will be discussed later.
In this example, only the method GET is restricted using the LIMIT
directive. To limit other methods (particularly in CGI directories),
you can specify them separated by spaces in the LIMIT directive.
For example:
<LIMIT GET POST PUT> require user pumpkin </LIMIT>If you only use
GET protection for a CGI script, you may be finding that the REMOTE_USER environment variable is not getting set when using METHOD="POST", obviously because the directory isn't protected against POST.
Create the password file
/otherdir/.htpasswd
The easiest way to do this is to use the htpasswd program
distributed with NCSA HTTPd. Do this:
htpasswd -c /otherdir/.htpasswd pumpkin
Type the password -- pie -- twice as instructed.
Check the resulting file to get a warm feeling of self-satisfaction; it should look like this:
pumpkin:y1ia3tjWkhCK2
That's all. Now try to access a file in directory turkey
-- your browser should demand a username and password, and not give you
access to the file if you don't enter pumpkin and
pie. If you are using a browser that doesn't handle
authentication, you will not be able to access the document at all.
Use the
Call it
Note that
That's it. Now any user in group
Important Note: There is no correspondence between
usernames and passwords on specific Unix systems (e.g. in an
Note for non-NCSA readers: The
Note for NCSA readers: The
Multiple Usernames/Passwords
If you want to give access to a directory to more than one
username/password pair, follow the same steps as for a single
username/password with the following additions:
Add additional users to the directory's
.htpasswd file.
htpasswd command without the -c flag
to add additional users; e.g.:
htpasswd /otherdir/.htpasswd peanuts
htpasswd /otherdir/.htpasswd almonds
htpasswd /otherdir/.htpasswd walnuts
Create a group file.
/otherdir/.htgroup and have it look something
like this:
my-users: pumpkin peanuts almonds walnuts
... where pumpkin, peanuts,
almonds, and walnuts are the usernames.
Then modify the .htaccess
file in the directory to look like this:
AuthUserFile /otherdir/.htpasswd
AuthGroupFile /otherdir/.htgroup
AuthName ByPassword
AuthType Basic
<Limit GET>
require group my-users
</Limit>
AuthGroupFile now points to your group file and
that group my-users (rather than individual user
pumpkin) is now required for access. my-users can use
his/her individual username and password to gain access to directory
turkey.
Prepared Examples
Following are several examples of the range of access authorization
capabilities available through Mosaic and NCSA HTTPd. The examples
are served from a system at NCSA.
fido with password
bones.
/etc/passwd file) and usernames and passwords in the
authentication schemes we're discussing for use in the Web. As
illustrated in the examples, Web-based authentication uses
similar but wholly distinct password files; a user need
never have an actual account on a given Unix system in order to
be validated for access to files being served from that system
and protected with HTTP-based authentication.
rover with
password bacon and user jumpy with
password kibbles. ncsa.uiuc.edu. .htaccess file
used in this case is as follows:
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName ExampleAllowFromNCSA
AuthType Basic
<Limit GET>
order deny,allow
deny from all
allow from .ncsa.uiuc.edu
</Limit>
ncsa.uiuc.edu. .htaccess file
used in this case is as follows:
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName ExampleDenyFromNCSA
AuthType Basic
<Limit GET>
order allow,deny
allow from all
deny from .ncsa.uiuc.edu
</Limit>
For More Information
Posted:/96
Last Updated: /96
This document is located at: