From owner-freebsd-questions Fri Jul 5 20:14:31 1996 Return-Path: owner-questions Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id UAA05323 for questions-outgoing; Fri, 5 Jul 1996 20:14:31 -0700 (PDT) Received: from phaeton.artisoft.com (phaeton.Artisoft.COM [198.17.250.211]) by freefall.freebsd.org (8.7.5/8.7.3) with SMTP id UAA05317; Fri, 5 Jul 1996 20:14:27 -0700 (PDT) Received: (from terry@localhost) by phaeton.artisoft.com (8.6.11/8.6.9) id UAA16074; Fri, 5 Jul 1996 20:11:14 -0700 From: Terry Lambert Message-Id: <199607060311.UAA16074@phaeton.artisoft.com> Subject: Re: SysAdmin Tools - ideas wanted To: kelly@fsl.noaa.gov (Sean Kelly) Date: Fri, 5 Jul 1996 20:11:14 -0700 (MST) Cc: terry@lambert.org, gpalmer@FreeBSD.ORG, ron@infi.net, freebsd-questions@FreeBSD.ORG In-Reply-To: <199607052242.WAA03969@gatekeeper.fsl.noaa.gov> from "Sean Kelly" at Jul 5, 96 04:42:31 pm X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-questions@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk > Seriously, I agree that the administrative commands should be typeable > just from the command line. And Tcl can still provide such a ``user > interface.'' Yes. I would like them to be database-centric, idempotent, and reversable. That is, the same tool should be used to add/delete/list database entries, potentially for multiple databases. For instance, the group and passwd files together are two databases that constitute a credentials management schema. The "user admin" tool should operate against both databases. > Consider the primitives lock_passwd_file, append_pwent, lookup_pwent, > etc., added to a Tcl interpreter (either compiled in or dynamically > loaded). Then, make two scripts that use those primitives. You would > then use those as follows: > > csh> add_user -login lambert -name "Terry Lambert" -homedir "/u/lambert" > > or > > csh> xuseradmin & > > where add_user is > > #!/usr/local/bin/tclsh > ...check command line args, set defaults... > if {[lock_passwd_file]} { > append_pwent ... > } > > and xuseradmin is > > #!/usr/local/bin/wish > ...do it!... Actually, I was thinking of: == #!/bib/sh # # xuadmin # # X user administration interface FRONTEND uadmin == Where FRONTEND is a program written in TCL, curses, or whatever. Preferrably, I'd build a front end manager that could dlopen the appropriate interface based on the environment it is run in (ie: if there is a DISPLAY environement variable, then FRONTEND would be X; if not, it would be curses, whatever. Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.