[comp.unix.internals] Password and gecos

quennevi@IRO.UMontreal.CA (Charles Quenneville) (12/12/90)

Hello!

I would like to implement a password security in a program. For
example, I want to put in a public directory a program for just
a certain number of users (of different groups). I have thought
of using getpass() but if I do so, it would be easy for someone
to use `strings' and find the password. So what I would like to
do is simple: 

	ask for the userid
	ask for the password
	compare the userid and the password in a *LOCAL* file
	if everything is ok, proceed
	else kaboum!

The local password file could contain 2 fields: 

	userid:encrypted password

I know I could crypt the program and then give the key to the
people who would want to run the program. That's not what I want
to do.

The only problem is that I don't know C enough to start playing with
these macros. If anyone out there would *PLEASE* do it for me... I
would be more than thankful... 

Plus, could anyone tell me how to extract the fields in the 
/etc/passwd file? Either by using the structure in the pwd.h file
or simply by using for's and while's.

A last question: Could you tell me what gecos means?

Thank you very much in advance.


--
    Charles Quenneville
    quennevi@kovic.iro.umontreal.ca

"Ventrebleu, de par ma chandelle verte, j'aime mieux etre gueux

ewoods@hemel.bull.co.uk (Eoin Woods) (12/13/90)

quennevi@IRO.UMontreal.CA (Charles Quenneville) writes:

.
.   Deleted stuff (sorry I didn't really understand what you wanted).
.
>Plus, could anyone tell me how to extract the fields in the 
>/etc/passwd file? Either by using the structure in the pwd.h file
>or simply by using for's and while's.

#include <pwd.h>                              <-
                                               |
struct passwd *getpwuid(int uid) ;             |   Sys V (BSD has a similar
OR                                             |    if not identical system)
struct passwd *getpwname(char *username) ;    <-


>A last question: Could you tell me what gecos means?

GECOS stands for General Electric Computer Operating System -- An operating
system that is now the property of Groupe Bull (and shipped on our
proprietry mainframe kit).

The reason that the text field in the password file is called the GECOS
field is that in 'original' Unix (running on 'research' at Bell Labs),
it was used to store authorisation and accounting information for use
when submitting batch jobs to the local GECOS mainframe. (Even in those
days, Bull was integrating open and proprietry systems! :-)

Eoin.
--
(This is not an official statement from Groupe Bull but is all my own work!)
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~    Eoin Woods, Software Development Group, Bull HN Information Systems,   ~
~                Maxted Road, Hemel Hempstead, Herts HP2 7DZ                ~
~                   Tel :   +44 442 232222 x4823                            ~
~                   Fax :   +44 442 234084                                  ~
~                   < Eoin.Woods@hemel.bull.co.uk >                         ~
~          < When do we start news group comp.os.emacs ?  :-) >             ~