diff options
author | marco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2008-01-26 23:46:31 +0000 |
---|---|---|
committer | marco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2008-01-26 23:46:31 +0000 |
commit | 9dfeddf01ef1143fd63837d5598ef26d7ede1df5 (patch) | |
tree | fbb4534134a0f0e547c9bfd87905b86943590fda /packages/extra | |
parent | 0277a46bcdce5c1a9f166b4c80f13ad95773c9f9 (diff) | |
download | fpc-9dfeddf01ef1143fd63837d5598ef26d7ede1df5.tar.gz |
* remove users
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@10009 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/extra')
-rw-r--r-- | packages/extra/users/fpmake.pp | 17 | ||||
-rw-r--r-- | packages/extra/users/grp.pp | 65 | ||||
-rw-r--r-- | packages/extra/users/pwd.pp | 64 | ||||
-rw-r--r-- | packages/extra/users/shadow.pp | 65 | ||||
-rw-r--r-- | packages/extra/users/testpass.pp | 101 | ||||
-rw-r--r-- | packages/extra/users/testuser.pp | 25 | ||||
-rw-r--r-- | packages/extra/users/users.pp | 331 |
7 files changed, 0 insertions, 668 deletions
diff --git a/packages/extra/users/fpmake.pp b/packages/extra/users/fpmake.pp deleted file mode 100644 index d4b6178682..0000000000 --- a/packages/extra/users/fpmake.pp +++ /dev/null @@ -1,17 +0,0 @@ -{$mode objfpc}{$H+} -program fpmake; - -uses fpmkunit; - -Var - T : TTarget; - -begin - With Installer do - begin - { Base packages } - {$i fpmake.inc} - Run; - end; -end. - diff --git a/packages/extra/users/grp.pp b/packages/extra/users/grp.pp deleted file mode 100644 index 16f92e92ef..0000000000 --- a/packages/extra/users/grp.pp +++ /dev/null @@ -1,65 +0,0 @@ -unit grp; -interface - -{ - Automatically converted by H2Pas 0.99.15 from grp.h - The following command line parameters were used: - -D - -l - c - -p - -s - -u - grp - -v - grp.h -} - - const - External_library='c'; {Setup as you need} - - { Pointers to basic pascal types, inserted by h2pas conversion program.} - Type - PLongint = ^Longint; - PSmallInt = ^SmallInt; - PByte = ^Byte; - PWord = ^Word; - PDWord = ^DWord; - PDouble = ^Double; - -{$PACKRECORDS C} - - -type - PFILE = Pointer; - __gid_t = Longint; - P__gid_t = ^__gid_t; - size_t = longint; - - PGroup = ^group; - group = record - gr_name : Pchar; - gr_passwd : Pchar; - gr_gid : __gid_t; - gr_mem : ^Pchar; - end; - TGroup = Group; - PPGROUP = ^PGroup; - -procedure setgrent;cdecl;external External_library name 'setgrent'; -procedure endgrent;cdecl;external External_library name 'endgrent'; -function getgrent:Pgroup;cdecl;external External_library name 'getgrent'; -function fgetgrent(__stream:PFILE):Pgroup;cdecl;external External_library name 'fgetgrent'; -function getgrgid(__gid:__gid_t):Pgroup;cdecl;external External_library name 'getgrgid'; -function getgrnam(__name:Pchar):Pgroup;cdecl;external External_library name 'getgrnam'; -function getgrgid_r(__gid:__gid_t; __resultbuf:Pgroup; __buffer:Pchar; __buflen:size_t; __result:PPgroup):longint;cdecl;external External_library name 'getgrgid_r'; -function getgrnam_r(__name:Pchar; __resultbuf:Pgroup; __buffer:Pchar; __buflen:size_t; __result:PPgroup):longint;cdecl;external External_library name 'getgrnam_r'; -function fgetgrent_r(__stream:PFILE; __resultbuf:Pgroup; __buffer:Pchar; __buflen:size_t; __result:PPgroup):longint;cdecl;external External_library name 'fgetgrent_r'; -function setgroups(__n:size_t; __groups:P__gid_t):longint;cdecl;external External_library name 'setgroups'; -function getgrouplist(__user:Pchar; __group:__gid_t; __groups:P__gid_t; __ngroups:Plongint):longint;cdecl;external External_library name 'getgrouplist'; -function initgroups(__user:Pchar; __group:__gid_t):longint;cdecl;external External_library name 'initgroups'; - - -implementation - -end. diff --git a/packages/extra/users/pwd.pp b/packages/extra/users/pwd.pp deleted file mode 100644 index 739bae99c6..0000000000 --- a/packages/extra/users/pwd.pp +++ /dev/null @@ -1,64 +0,0 @@ -unit pwd; -interface - -{ - Automatically converted by H2Pas 0.99.15 from pwd.H - The following command line parameters were used: - -D - -l - c - -p - -s - -u - pwd - -v - pwd.H -} - -const - External_library='c'; {Setup as you need} - -{ Pointers to basic pascal types, inserted by h2pas conversion program.} -Type - PLongint = ^Longint; - PSmallInt = ^SmallInt; - PByte = ^Byte; - PWord = ^Word; - PDWord = ^DWord; - PDouble = ^Double; - -{$PACKRECORDS C} - - -type - PFile = Pointer; - __uid_t = longint; - __gid_t = longint; - - Ppasswd = ^passwd; - passwd = record - pw_name : Pchar; - pw_passwd : Pchar; - pw_uid : __uid_t; - pw_gid : __gid_t; - pw_gecos : Pchar; - pw_dir : Pchar; - pw_shell : Pchar; - end; - TPasswordRecord = passwd; - PPasswordRecord = ^TPasswordRecord; - -procedure setpwent;cdecl; external External_library name 'setpwent'; -procedure endpwent;cdecl; external External_library name 'endpwent'; -function getpwent:Ppasswd;cdecl;external External_library name 'getpwent'; -function fgetpwent(__stream:PFILE):Ppasswd;cdecl;external External_library name 'fgetpwent'; -function putpwent(__p:Ppasswd; __f:PFILE):longint;cdecl;external External_library name 'putpwent'; -function getpwuid(__uid:__uid_t):Ppasswd;cdecl;external External_library name 'getpwuid'; -function getpwnam(__name:Pchar):Ppasswd;cdecl;external External_library name 'getpwnam'; -function getpw(__uid:__uid_t; __buffer:Pchar):longint;cdecl;external External_library name 'getpw'; - - -implementation - - -end. diff --git a/packages/extra/users/shadow.pp b/packages/extra/users/shadow.pp deleted file mode 100644 index c50d94cc1e..0000000000 --- a/packages/extra/users/shadow.pp +++ /dev/null @@ -1,65 +0,0 @@ -unit shadow; -interface - -{ - Automatically converted by H2Pas 0.99.15 from shadow.h - The following command line parameters were used: - -D - -l - c - -p - -s - -u - shadow - -v - shadow.h -} - - const - External_library='c'; {Setup as you need} - - { Pointers to basic pascal types, inserted by h2pas conversion program.} - Type - PLongint = ^Longint; - PSmallInt = ^SmallInt; - PByte = ^Byte; - PWord = ^Word; - PDWord = ^DWord; - PDouble = ^Double; - -{$PACKRECORDS C} - - -type - PFile = Pointer; - - Pspwd = ^spwd; - spwd = record - sp_namp : pchar; - sp_pwdp : pchar; - sp_lstchg : longint; - sp_min : longint; - sp_max : longint; - sp_warn : longint; - sp_inact : longint; - sp_expire : longint; - sp_flag : longint; - end; - TPasswordFileEntry = spwd; - PPasswordFileEntry = ^TPasswordFileEntry; - -procedure setspent;cdecl;external External_library name 'setspent'; -procedure endspent;cdecl;external External_library name 'endspent'; -function getspent:Pspwd;cdecl;external External_library name 'getspent'; -function getspnam(__name:Pchar):Pspwd;cdecl;external External_library name 'getspnam'; -function sgetspent(__string:Pchar):Pspwd;cdecl;external External_library name 'sgetspent'; -function fgetspent(__stream:PFILE):Pspwd;cdecl;external External_library name 'fgetspent'; -function putspent(__p:Pspwd; __stream:PFILE):longint;cdecl;external External_library name 'putspent'; -function lckpwdf:longint;cdecl;external External_library name 'lckpwdf'; -function ulckpwdf:longint;cdecl;external External_library name 'ulckpwdf'; - - -implementation - - -end. diff --git a/packages/extra/users/testpass.pp b/packages/extra/users/testpass.pp deleted file mode 100644 index c7437ef845..0000000000 --- a/packages/extra/users/testpass.pp +++ /dev/null @@ -1,101 +0,0 @@ -Program TestPass; - -{Test the user's password} -{$DEFINE DEBUG} - -uses shadow, pwd, strings, crypt_h, cmem; - -Var - strUserName, Password : String; - sEntry : PPasswordFileEntry; - pEntry : PPasswd; - -Const - Err_NoErr = 0; - Err_NoUser = 1; - Err_WrongPass = 2; - NoUser = '*NO USER*'; - -Function UserEncPass(User: String): String; -Var - A : Array[0..255] of char; -Begin - A := strUserName; - {$IFDEF DEBUG} - Writeln('User name is ',A); - {$ENDIF} - sEntry := getspnam(A); - If sEntry = nil then - Begin - {$IFDEF DEBUG} - Writeln('No shadow entry'); - {$ENDIF} - pEntry := getpwnam(A); - If pEntry = nil then - Begin - {$IFDEF DEBUG} - Writeln('No passwd entry'); - {$ENDIF} - UserEncPass := NoUser - End - End; - if sEntry <> nil then UserEncPass := sEntry^.sp_pwdp; - if pEntry <> nil then UserEncPass := pEntry^.pw_passwd -End; - -Function CheckPass(User, Pass: String): Integer; -Var - EncPass, ResultPass, SSalt : String; - PCPass, PCSalt, PCResult : Array[0..255] of Char; - I : Integer; -Begin - EncPass := UserEncPass(User); - {$IFDEF DEBUG} - Writeln('Encrypted PW is : ',EncPass); - {$ENDIF} - If EncPass = NoUser then - Begin - CheckPass := Err_NoUser; - {$IFDEF DEBUG} - Writeln('No user named ',User,'.'); - {$ENDIF} - Exit - End; - PCPass := Pass; - If Copy(EncPass,1,3) = '$1$' then - Begin - I := 4; - SSalt := '$1$'; - Repeat - SSalt := SSalt + EncPass[I]; - Inc(I) - Until EncPass[I] = '$'; - PCSalt := SSalt - End - else - PCSalt := Copy(EncPass,1,2); - {$IFDEF DEBUG} - Writeln('Salt is : ',PCSalt); - {$ENDIF} - PCResult := crypt(PCPass, PCSalt); - ResultPass := StrPas(PCResult); - {$IFDEF DEBUG} - Writeln('From passwd/shadow : ',EncPass); - Writeln('From crypt : ',ResultPass); - {$ENDIF} - If ResultPass = EncPass then - CheckPass := Err_NoErr - else - CheckPass := Err_WrongPass -End; - -Begin - Write('User name : '); - Readln(strUserName); - Write('Password : '); - Readln(Password); - If CheckPass(strUserName, Password) = Err_NoErr then - Writeln('User authentication succeeded') - else - Writeln('User autentication failed.'); -End. diff --git a/packages/extra/users/testuser.pp b/packages/extra/users/testuser.pp deleted file mode 100644 index ab1637f239..0000000000 --- a/packages/extra/users/testuser.pp +++ /dev/null @@ -1,25 +0,0 @@ -program testuser; - -uses users,classes; - -var - Ulist,GList : TStringlist; - i : longint; - -begin - Ulist:=TStringList.Create; - Glist:=TStringList.Create; - Try - GetUserList(Ulist,True); - GetGroupList(Glist,True); - Writeln('Users: '); - For I:=0 to Ulist.Count-1 do - Writeln('User ',Ulist[i]); - Writeln('Groups: '); - For I:=0 to Glist.Count-1 do - Writeln('Group ',Glist[i]); - finally - Ulist.Free; - Glist.Free; - end; -end. diff --git a/packages/extra/users/users.pp b/packages/extra/users/users.pp deleted file mode 100644 index d5f221488b..0000000000 --- a/packages/extra/users/users.pp +++ /dev/null @@ -1,331 +0,0 @@ -unit users; - -Interface - -uses pwd,shadow,grp,Linux,SysUtils,Classes; - -Type - EUserLookupError = Class(Exception); - EGroupLookupError = Class(Exception); - EShadowLookupError = Class(Exception); - -{ User functions } - -Function getpwnam(Const UserName: String) : PPasswordRecord; -Procedure GetUserData(Const UserName : String; Var Data : TPasswordRecord); overload; -Procedure GetUserData(Uid : Integer; Var Data : TPasswordRecord); overload; -function GetUserName(UID : Integer) : String; -function GetUserId(Const UserName : String) : Integer; -function GetUserGid(Const UserName : String) : Integer; -function GetUserDir(Const UserName : String): String; -function GetUserDescription(Const UserName : String): String; -Procedure GetUserList(List : Tstrings);overload; -Procedure GetUserList(List : TStrings; WithIDs : Boolean);overload; - -{ Group functions } - -Function getgrnam(Const GroupName: String) : PGroup; -Procedure GetGroupData(Const GroupName : String; Var Data : TGroup); overload; -Procedure GetGroupData(Gid : Integer; Var Data : TGroup); overload; -function GetGroupName(GID : Integer) : String; -function GetGroupId(Const GroupName : String) : Integer; -Procedure GetGroupList(List : Tstrings);overload; -Procedure GetGroupList(List : TStrings; WithIDs : Boolean);overload; -Procedure GetGroupMembers(GID : Integer;List : TStrings);overload; -Procedure GetGroupMembers(Const GroupName : String;List : TStrings);overload; - -{ Shadow password functions } - -function getspnam(UserName : String): PPasswordFileEntry; -function sgetspent(Line : String): PPasswordFileEntry; -Procedure GetUserShadowData(Const UserName : String; Var Data : TPasswordFileEntry);overload; -Procedure GetUserShadowData(UID : Integer; Var Data : TPasswordFileEntry);overload; - -{ Extra functions } - -Function GetUserGroup(Const UserName : String) : String; - -Implementation - -ResourceString - -EnoSuchUserName = 'Unknown username: "%s"'; -EnoSuchUserID = 'Unknown user ID: %d'; -EnoSuchGroupName = 'Unknown groupname: "%s"'; -EnoSuchGroupID = 'Unknown group ID: %d'; -ENoShadowEntry = 'No shadow file entry for "%s"'; -EShadowNotPermitted = 'Not enough permissions to access shadow password file'; - -Function getpwnam(Const UserName: String) : PPasswordRecord; - -begin - Result:=pwd.getpwnam(Pchar(UserName)); -end; - -Procedure GetUserData(Const UserName : String; Var Data : TPasswordRecord); - -Var P : PPasswordRecord; - -begin - P:=Getpwnam(UserName); - If P<>Nil then - Data:=P^ - else - Raise EUserLookupError.CreateFmt(ENoSuchUserName,[UserName]); -end; - -Procedure GetUserData(Uid : Integer; Var Data : TPasswordRecord); - -Var P : PPasswordRecord; - -begin - P:=Getpwuid(Uid); - If P<>Nil then - Data:=P^ - else - Raise EUserLookupError.CreateFmt(ENoSuchUserID,[Uid]); -end; - -function GetUserName(UID : Integer) : String; - -Var - UserData : TPasswordRecord; - -begin - GetuserData(UID,UserData); - Result:=strpas(UserData.pw_Name); -end; - -function GetUserId(Const UserName : String) : Integer; - -Var - UserData : TPasswordRecord; - -begin - GetUserData(UserName,UserData); - Result:=UserData.pw_uid; -end; - -function GetUserGId(Const UserName : String) : Integer; - -Var - UserData : TPasswordRecord; - -begin - GetUserData(UserName,UserData); - Result:=UserData.pw_gid; -end; - -function GetUserDir(Const UserName : String): String; - -Var - UserData : TPasswordRecord; - -begin - GetUserData(UserName,UserData); - Result:=strpas(UserData.pw_dir); -end; - -function GetUserDescription(Const UserName : String): String; - -Var - UserData : TPasswordRecord; - -begin - GetUserData(UserName,UserData); - Result:=strpas(UserData.pw_gecos); -end; - -Procedure GetUserList(List : Tstrings); - -begin - GetUserList(List,False); -end; - -Procedure GetUserList(List : TStrings; WithIDs : Boolean); - -Var - P : PPasswordRecord; - -begin - List.Clear; - setpwent; - try - Repeat - P:=getpwent; - If P<>Nil then - begin - If WithIDs then - List.Add(Format('%d=%s',[P^.pw_uid,strpas(p^.pw_name)])) - else - List.Add(strpas(p^.pw_name)); - end; - until (P=Nil); - finally - endpwent; - end; -end; - -{ --------------------------------------------------------------------- - Group Functions - ---------------------------------------------------------------------} - - -Function getgrnam(Const GroupName: String) : PGroup; - -begin - Result:=grp.getgrnam(Pchar(GroupName)); -end; - -Procedure GetGroupData(Const GroupName : String; Var Data : TGroup); overload; - -Var P : PGroup; - -begin - P:=Getgrnam(GroupName); - If P<>Nil then - Data:=P^ - else - Raise EGroupLookupError.CreateFmt(ENoSuchGroupName,[GroupName]); -end; - -Procedure GetGroupData(Gid : Integer; Var Data : TGroup); overload; - -Var P : PGroup; - -begin - P:=Getgrgid(gid); - If P<>Nil then - Data:=P^ - else - Raise EGroupLookupError.CreateFmt(ENoSuchGroupID,[Gid]); -end; - -function GetGroupName(GID : Integer) : String; - -Var - G : TGroup; - -begin - GetGroupData(Gid,G); - Result:=StrPas(G.gr_name); -end; - -function GetGroupId(Const GroupName : String) : Integer; - -Var - G : TGroup; - -begin - GetGroupData(GroupName,G); - Result:=G.gr_gid; -end; - -Procedure GetGroupList(List : Tstrings);overload; - -begin - GetGroupList(List,False); -end; - -Procedure GetGroupList(List : TStrings; WithIDs : Boolean);overload; - -Var - G : PGroup; - -begin - List.Clear; - setgrent; - try - Repeat - G:=getgrent; - If G<>Nil then - begin - If WithIDs then - List.Add(Format('%d=%s',[G^.gr_gid,strpas(G^.gr_name)])) - else - List.Add(strpas(G^.gr_name)); - end; - until (G=Nil); - finally - endgrent; - end; -end; - -Function PCharListToStrings(P : PPChar; List : TStrings) : Integer; - -begin - List.Clear; - While P^<>Nil do - begin - List.Add(StrPas(P^)); - P:=PPChar(PChar(P)+SizeOf(PChar)); - end; - Result:=List.Count; -end; - - -Procedure GetGroupMembers(GID : Integer;List : TStrings); - -Var - G : TGroup; - -begin - GetGroupData(GID,G); - PCharListToStrings(G.gr_mem,List); -end; - -Procedure GetGroupMembers(Const GroupName : String;List : TStrings); - -Var - G : TGroup; - -begin - GetGroupData(GroupName,G); - PCharListToStrings(g.gr_mem,List); -end; - -{ Shadow password functions } - -function getspnam(UserName : String): PPasswordFileEntry; - -begin - result:=shadow.getspnam(Pchar(UserName)); -end; - -function sgetspent(Line : String): PPasswordFileEntry; - -begin - Result:=shadow.sgetspent(Pchar(Line)); -end; - -Procedure GetUserShadowData(Const UserName : String; Var Data : TPasswordFileEntry); - -Var - P : PPasswordFileEntry; - -begin - P:=getspnam(UserName); - If P=Nil then - If (GetUID<>0) and (GetEUID<>0) then - Raise EShadowLookupError.Create(EShadowNotPermitted) - else - Raise EShadowLookupError.CreateFmt(ENoShadowEntry,[UserName]) - else - Data:=P^; -end; - -Procedure GetUserShadowData(UID : Integer; Var Data : TPasswordFileEntry); - -begin - GetUserShadowData(GetUserName(UID),Data); -end; - -{ Extra functions } - -Function GetUserGroup(Const UserName : String) : String; - -begin - GetGroupName(GetUserGid(UserName)); -end; - -end. |