summaryrefslogtreecommitdiff
path: root/packages/extra
diff options
context:
space:
mode:
authormarco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2>2008-01-26 23:46:31 +0000
committermarco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2>2008-01-26 23:46:31 +0000
commit9dfeddf01ef1143fd63837d5598ef26d7ede1df5 (patch)
treefbb4534134a0f0e547c9bfd87905b86943590fda /packages/extra
parent0277a46bcdce5c1a9f166b4c80f13ad95773c9f9 (diff)
downloadfpc-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.pp17
-rw-r--r--packages/extra/users/grp.pp65
-rw-r--r--packages/extra/users/pwd.pp64
-rw-r--r--packages/extra/users/shadow.pp65
-rw-r--r--packages/extra/users/testpass.pp101
-rw-r--r--packages/extra/users/testuser.pp25
-rw-r--r--packages/extra/users/users.pp331
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.