You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by th...@apache.org on 2003/05/14 21:23:31 UTC
cvs commit: httpd-2.0/docs/man htpasswd.1
thommay 2003/05/14 12:23:30
Modified: . CHANGES
support htpasswd.c
docs/man htpasswd.1
Log:
Add a delete flag to htpasswd.
Revision Changes Path
1.1171 +3 -0 httpd-2.0/CHANGES
Index: CHANGES
===================================================================
RCS file: /home/cvs/httpd-2.0/CHANGES,v
retrieving revision 1.1170
retrieving revision 1.1171
diff -u -r1.1170 -r1.1171
--- CHANGES 14 May 2003 03:22:30 -0000 1.1170
+++ CHANGES 14 May 2003 19:23:28 -0000 1.1171
@@ -2,6 +2,9 @@
[Remove entries to the current 2.0 section below, when backported]
+ *) Add a delete flag to htpasswd.
+ [Thom May]
+
*) Ensure that ssl-std.conf is generated at configure time, and switch
to using the expanded config variables to work the same as
httpd-std.conf PR 19611
1.70 +46 -17 httpd-2.0/support/htpasswd.c
Index: htpasswd.c
===================================================================
RCS file: /home/cvs/httpd-2.0/support/htpasswd.c,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -r1.69 -r1.70
--- htpasswd.c 13 May 2003 03:40:29 -0000 1.69
+++ htpasswd.c 14 May 2003 19:23:30 -0000 1.70
@@ -139,6 +139,7 @@
#define APHTP_NEWFILE 1
#define APHTP_NOFILE 2
#define APHTP_NONINTERACTIVE 4
+#define APHTP_DELUSER 8
apr_file_t *errfile;
apr_file_t *ftemp = NULL;
@@ -245,8 +246,8 @@
static void usage(void)
{
apr_file_printf(errfile, "Usage:\n");
- apr_file_printf(errfile, "\thtpasswd [-cmdps] passwordfile username\n");
- apr_file_printf(errfile, "\thtpasswd -b[cmdps] passwordfile username "
+ apr_file_printf(errfile, "\thtpasswd [-cmdpsD] passwordfile username\n");
+ apr_file_printf(errfile, "\thtpasswd -b[cmdpsD] passwordfile username "
"password\n\n");
apr_file_printf(errfile, "\thtpasswd -n[mdps] username\n");
apr_file_printf(errfile, "\thtpasswd -nb[mdps] username password\n");
@@ -267,6 +268,7 @@
apr_file_printf(errfile, " -s Force SHA encryption of the password.\n");
apr_file_printf(errfile, " -b Use the password from the command line "
"rather than prompting for it.\n");
+ apr_file_printf(errfile, " -D Delete the specified user.\n");
apr_file_printf(errfile,
"On Windows, NetWare and TPF systems the '-m' flag is used by "
"default.\n");
@@ -359,6 +361,9 @@
*mask |= APHTP_NONINTERACTIVE;
args_left++;
}
+ else if (*arg == 'D') {
+ *mask |= APHTP_DELUSER;
+ }
else {
usage();
}
@@ -369,6 +374,14 @@
apr_file_printf(errfile, "%s: -c and -n options conflict\n", argv[0]);
exit(ERR_SYNTAX);
}
+ if ((*mask & APHTP_NEWFILE) && (*mask & APHTP_DELUSER)) {
+ apr_file_printf(errfile, "%s: -c and -D options conflict\n", argv[0]);
+ exit(ERR_SYNTAX);
+ }
+ if ((*mask & APHTP_NOFILE) && (*mask & APHTP_DELUSER)) {
+ apr_file_printf(errfile, "%s: -n and -D options conflict\n", argv[0]);
+ exit(ERR_SYNTAX);
+ }
/*
* Make sure we still have exactly the right number of arguments left
* (the filename, the username, and possibly the password if -b was
@@ -532,15 +545,17 @@
* Any error message text is returned in the record buffer, since
* the mkrecord() routine doesn't have access to argv[].
*/
- i = mkrecord(user, record, sizeof(record) - 1,
- password, alg);
- if (i != 0) {
- apr_file_printf(errfile, "%s: %s\n", argv[0], record);
- exit(i);
- }
- if (mask & APHTP_NOFILE) {
- printf("%s\n", record);
- exit(0);
+ if (!(mask & APHTP_DELUSER)) {
+ i = mkrecord(user, record, sizeof(record) - 1,
+ password, alg);
+ if (i != 0) {
+ apr_file_printf(errfile, "%s: %s\n", argv[0], record);
+ exit(i);
+ }
+ if (mask & APHTP_NOFILE) {
+ printf("%s\n", record);
+ exit(0);
+ }
}
/*
@@ -597,18 +612,32 @@
continue;
}
else {
- /* We found the user we were looking for, add him to the file.
- */
- apr_file_printf(errfile, "Updating ");
- putline(ftemp, record);
- found++;
+ if (!(mask & APHTP_DELUSER)) {
+ /* We found the user we were looking for.
+ * Add him to the file.
+ */
+ apr_file_printf(errfile, "Updating ");
+ putline(ftemp, record);
+ found++;
+ }
+ else {
+ /* We found the user we were looking for.
+ * Delete them from the file.
+ */
+ apr_file_printf(errfile, "Deleting ");
+ found++;
+ }
}
}
apr_file_close(fpw);
}
- if (!found) {
+ if (!found && !(mask & APHTP_DELUSER)) {
apr_file_printf(errfile, "Adding ");
putline(ftemp, record);
+ }
+ else if (!found && (mask & APHTP_DELUSER)) {
+ apr_file_printf(errfile, "User %s not found\n", user);
+ exit(0);
}
apr_file_printf(errfile, "password for user %s\n", user);
1.11 +5 -2 httpd-2.0/docs/man/htpasswd.1
Index: htpasswd.1
===================================================================
RCS file: /home/cvs/httpd-2.0/docs/man/htpasswd.1,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- htpasswd.1 13 May 2003 03:43:18 -0000 1.10
+++ htpasswd.1 14 May 2003 19:23:30 -0000 1.11
@@ -27,10 +27,10 @@
.SH "SYNOPSIS"
.PP
-\fBhtpasswd\fR [ -\fBc\fR ] [ -\fBm\fR ] \fIpasswdfile\fR \fIusername\fR
+\fBhtpasswd\fR [ -\fBc\fR ] [ -\fBm\fR ] [ -\fBD\fB ] \fIpasswdfile\fR \fIusername\fR
.PP
-\fBhtpasswd\fR -\fBb\fR [ -\fBc\fR ] [ -\fBm\fR | -\fBd\fR | -\fBp\fR | -\fBs\fR ] \fIpasswdfile\fR \fIusername\fR \fIpassword\fR
+\fBhtpasswd\fR -\fBb\fR [ -\fBc\fR ] [ -\fBm\fR | -\fBd\fR | -\fBp\fR | -\fBs\fR ] [ -\fBD\fB ] \fIpasswdfile\fR \fIusername\fR \fIpassword\fR
.PP
\fBhtpasswd\fR -\fBn\fR [ -\fBm\fR | -\fBd\fR | -\fBs\fR | -\fBp\fR ] \fIusername\fR
@@ -79,6 +79,9 @@
.TP
-p
Use plaintext passwords\&. Though htpasswd will support creation on all platforms, the httpd daemon will only accept plain text passwords on Windows, Netware and TPF\&.
+.TP
+-D
+Delete user\&. If the username exists in the specified htpasswd file, it will be deleted\&.
.TP
\fIpasswdfile\fR
Name of the file to contain the user name and password\&. If -c is given, this file is created if it does not already exist, or rewritten and truncated if it does exist\&.
Re: cvs commit: httpd-2.0/docs/man htpasswd.1
Posted by Thom May <th...@planetarytramp.net>.
* Joshua Slive (joshua@slive.ca) wrote :
>
> On Wed, 14 May 2003 thommay@apache.org wrote:
>
> > thommay 2003/05/14 12:23:30
> >
> > Modified: . CHANGES
> > support htpasswd.c
> > docs/man htpasswd.1
>
> Oops. As the comment at the top of docs/man/htpasswd.1 says, you
> shouldn't be editting that file directly. André recently installed a
> system to generate the nroff based on the xml in docs/manual/programs/.
> If you don't edit in there, the changes will be lost.
>
buggeration. Ok, I need to update that xml anyway, so I'll do that now.
Thanks for the hint.
-Thom
Re: cvs commit: httpd-2.0/docs/man htpasswd.1
Posted by Joshua Slive <jo...@slive.ca>.
On Wed, 14 May 2003 thommay@apache.org wrote:
> thommay 2003/05/14 12:23:30
>
> Modified: . CHANGES
> support htpasswd.c
> docs/man htpasswd.1
Oops. As the comment at the top of docs/man/htpasswd.1 says, you
shouldn't be editting that file directly. André recently installed a
system to generate the nroff based on the xml in docs/manual/programs/.
If you don't edit in there, the changes will be lost.
Joshua.