mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-08 16:28:24 +02:00
* grp+pwd: freebsd+darwin compat. Attempt at fixing demoes unsuccesful.
git-svn-id: trunk@10163 -
This commit is contained in:
parent
28ebe338c4
commit
70ebb49af5
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -4266,8 +4266,10 @@ packages/unzip/src/ziptypes.pp svneol=native#text/plain
|
||||
packages/users/Makefile svneol=native#text/plain
|
||||
packages/users/Makefile.fpc svneol=native#text/plain
|
||||
packages/users/examples/testpass.pp svneol=native#text/plain
|
||||
packages/users/examples/testpass2.pp svneol=native#text/plain
|
||||
packages/users/examples/testuser.pp svneol=native#text/plain
|
||||
packages/users/fpmake.pp svneol=native#text/plain
|
||||
packages/users/src/crypth.pp svneol=native#text/plain
|
||||
packages/users/src/grp.pp svneol=native#text/plain
|
||||
packages/users/src/pwd.pp svneol=native#text/plain
|
||||
packages/users/src/shadow.pp svneol=native#text/plain
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2008/01/26]
|
||||
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2008/02/02]
|
||||
#
|
||||
default: all
|
||||
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
|
||||
@ -243,322 +243,322 @@ PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(F
|
||||
override PACKAGE_NAME=users
|
||||
override PACKAGE_VERSION=2.0.0
|
||||
ifeq ($(FULL_TARGET),i386-linux)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users shadow crypth
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-go32v2)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-win32)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-os2)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-freebsd)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-beos)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netbsd)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-solaris)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-qnx)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netware)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-openbsd)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wdosx)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-darwin)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-emx)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-watcom)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netwlibc)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wince)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-embedded)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-symbian)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-linux)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users shadow crypth
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-freebsd)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-netbsd)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-amiga)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-atari)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-openbsd)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-palmos)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-embedded)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-linux)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users shadow crypth
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-amiga)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-macos)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-darwin)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-morphos)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-embedded)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-linux)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users shadow crypth
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-netbsd)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-solaris)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-embedded)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-linux)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users shadow crypth
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-darwin)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-win64)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-embedded)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-linux)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users shadow crypth
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-palmos)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-wince)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-gba)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-nds)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-embedded)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-symbian)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-linux)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users shadow crypth
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-darwin)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
||||
override TARGET_UNITS+=grp pwd shadow users
|
||||
override TARGET_UNITS+=grp pwd users
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-linux)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2 testpass
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-go32v2)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-win32)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-os2)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-freebsd)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-beos)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netbsd)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-solaris)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-qnx)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netware)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-openbsd)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wdosx)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-darwin)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-emx)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-watcom)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netwlibc)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wince)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-embedded)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-symbian)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-linux)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2 testpass
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-freebsd)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-netbsd)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-amiga)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-atari)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-openbsd)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-palmos)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-embedded)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-linux)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2 testpass
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-amiga)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-macos)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-darwin)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-morphos)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-embedded)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-linux)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2 testpass
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-netbsd)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-solaris)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-embedded)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-linux)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2 testpass
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-darwin)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-win64)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-embedded)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-linux)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2 testpass
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-palmos)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-wince)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-gba)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-nds)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-embedded)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-symbian)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-linux)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2 testpass
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-darwin)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc64-embedded)
|
||||
override TARGET_EXAMPLES+=testuser testpass
|
||||
override TARGET_EXAMPLES+=testuser testpass2
|
||||
endif
|
||||
override INSTALL_FPCPACKAGE=y
|
||||
ifeq ($(FULL_TARGET),i386-linux)
|
||||
|
@ -7,8 +7,10 @@ name=users
|
||||
version=2.0.0
|
||||
|
||||
[target]
|
||||
units=grp pwd shadow users
|
||||
examples=testuser testpass
|
||||
units=grp pwd users
|
||||
units_linux=shadow crypth
|
||||
examples=testuser testpass2
|
||||
examples_linux=testpass
|
||||
|
||||
[require]
|
||||
libc=y
|
||||
|
@ -1,9 +1,10 @@
|
||||
Program TestPass;
|
||||
|
||||
{$mode delphi}
|
||||
{Test the user's password}
|
||||
{$DEFINE DEBUG}
|
||||
|
||||
uses shadow, pwd, strings, {crypt_h,} cmem;
|
||||
// The funcs in shadow are linux only.
|
||||
uses {$ifdef linux}shadow, {$endif} pwd ,crypth ;
|
||||
|
||||
Var
|
||||
strUserName, Password : String;
|
||||
@ -30,7 +31,7 @@ Begin
|
||||
{$IFDEF DEBUG}
|
||||
Writeln('No shadow entry');
|
||||
{$ENDIF}
|
||||
pEntry := getpwnam(A);
|
||||
pEntry := fpgetpwnam(A);
|
||||
If pEntry = nil then
|
||||
Begin
|
||||
{$IFDEF DEBUG}
|
||||
@ -78,7 +79,7 @@ Begin
|
||||
Writeln('Salt is : ',PCSalt);
|
||||
{$ENDIF}
|
||||
PCResult := crypt(PCPass, PCSalt);
|
||||
ResultPass := StrPas(PCResult);
|
||||
ResultPass := PCResult;
|
||||
{$IFDEF DEBUG}
|
||||
Writeln('From passwd/shadow : ',EncPass);
|
||||
Writeln('From crypt : ',ResultPass);
|
||||
|
56
packages/users/examples/testpass2.pp
Normal file
56
packages/users/examples/testpass2.pp
Normal file
@ -0,0 +1,56 @@
|
||||
Program TestPass2;
|
||||
|
||||
Uses pwd,grp,baseunix;
|
||||
|
||||
Procedure printpchar(fieldname:String;p:pchar);
|
||||
|
||||
Begin
|
||||
If assigned(p) Then
|
||||
Begin
|
||||
write(fieldname);
|
||||
write(':',' ':15-length(fieldname));
|
||||
writeln(p);
|
||||
End;
|
||||
End;
|
||||
|
||||
Var p : PPasswd;
|
||||
supplementary_gids : array[0..99] Of gid_t;
|
||||
i,nrgids: cint;
|
||||
pgrp: PGroup;
|
||||
|
||||
Begin
|
||||
p := fpgetpwnam('marcov');
|
||||
If assigned(p) Then
|
||||
Begin
|
||||
printpchar('pw_name',p^.pw_name);
|
||||
printpchar('pw_passwd',p^.pw_passwd);
|
||||
writeln('pw_uid:',' ':9,p^.pw_uid);
|
||||
writeln('pw_gid:',' ':9,p^.pw_gid);
|
||||
{$ifdef BSD}
|
||||
printpchar('pw_change',p^.pw_change);
|
||||
printpchar('pw_class',p^.pw_class);
|
||||
{$endif}
|
||||
printpchar('pw_gecos',p^.pw_gecos);
|
||||
printpchar('pw_dir',p^.pw_dir);
|
||||
printpchar('pw_shell',p^.pw_shell);
|
||||
{$ifdef BSD}
|
||||
printpchar('pw_expire',p^.pw_expire);
|
||||
printpchar('pw_fields',p^.pw_fields);
|
||||
{$endif}
|
||||
End;
|
||||
nrgids := 100;
|
||||
If fpgetgrouplist(p^.pw_name,p^.pw_gid,@supplementary_gids,@nrgids)<>-1 Then
|
||||
Begin
|
||||
Write ('Supplementary groups:');
|
||||
For i:=0 To nrgids-1 Do
|
||||
Begin
|
||||
pgrp := fpgetgrgid(supplementary_gids[i]);
|
||||
If assigned(pgrp) Then
|
||||
write(pgrp^.gr_name,' (',supplementary_gids[i],') ')
|
||||
Else
|
||||
write(' ???? (',supplementary_gids[i],') ')
|
||||
End;
|
||||
writeln;
|
||||
End;
|
||||
writeln;
|
||||
End.
|
14
packages/users/src/crypth.pp
Normal file
14
packages/users/src/crypth.pp
Normal file
@ -0,0 +1,14 @@
|
||||
unit crypth;
|
||||
|
||||
interface
|
||||
|
||||
uses BaseUnix,initc;
|
||||
|
||||
{$ifdef Linux}{$linklib crypt}{$endif}
|
||||
|
||||
Const libname ={$ifdef Linux}'crypt'{$else}clib{$endif};
|
||||
|
||||
function crypt(key,salt:pchar):pchar;cdecl; external libname name 'crypt';
|
||||
|
||||
implementation
|
||||
end.
|
@ -1,64 +1,59 @@
|
||||
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;
|
||||
uses
|
||||
initc,baseunix,ctypes;
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$PACKRECORDS C}
|
||||
{$ENDIF}
|
||||
|
||||
const
|
||||
External_library= clib; {Setup as you need}
|
||||
|
||||
_PATH_GROUP = '/etc/group';
|
||||
|
||||
Type
|
||||
|
||||
PGroup = ^TGroup;
|
||||
PPGroup = ^PGroup;
|
||||
TGroup = record
|
||||
gr_name : pchar; { group name }
|
||||
gr_passwd : pchar; { group password }
|
||||
gr_gid : gid_t; { group id }
|
||||
gr_mem : ppchar; { group members }
|
||||
end;
|
||||
|
||||
|
||||
type
|
||||
PFILE = Pointer;
|
||||
__gid_t = Longint;
|
||||
P__gid_t = ^__gid_t;
|
||||
size_t = longint;
|
||||
procedure fpendgrent; cdecl;external External_library name 'endgrent';
|
||||
function fpgetgrent:pgroup; cdecl;external External_library name 'getgrent';
|
||||
function fpgetgrgid (id:gid_t):pgroup; cdecl;external External_library name 'getgrgid';
|
||||
function fpgetgrnam (name:pchar):pgroup; cdecl;external External_library name 'getgrnam';
|
||||
{$ifdef BSD}
|
||||
function fpgroup_from_gid (gid:gid_t; nogrup:cint):pchar; cdecl;external External_library name 'group_from_gid';
|
||||
{$endif}
|
||||
|
||||
PGroup = ^group;
|
||||
group = record
|
||||
gr_name : Pchar;
|
||||
gr_passwd : Pchar;
|
||||
gr_gid : __gid_t;
|
||||
gr_mem : ^Pchar;
|
||||
end;
|
||||
TGroup = Group;
|
||||
PPGROUP = ^PGroup;
|
||||
function fpsetgrent:cint;cdecl;external External_library name 'setgrent';
|
||||
|
||||
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';
|
||||
function fpgetgrgid_r (id:gid_t; grp:Pgroup; buffer:pchar; buffersize:size_t; grresult:PPgroup):cint;cdecl;external External_library name 'getgrgid_r';
|
||||
|
||||
function fpgetgrnam_r (nam:pchar; grp:Pgroup; buffer:pchar; buffersize:size_t; grresult:PPgroup):cint;cdecl;external External_library name 'getgrnam_r';
|
||||
{$ifndef Darwin}
|
||||
function fpgetgrent_r (grp:Pgroup; buffer:pchar; buffersize:size_t; grresult:PPgroup):cint;cdecl;external External_library name 'getgrent_r';
|
||||
{$endif}
|
||||
|
||||
function fpsetgroupent (stayopen:cint):cint;cdecl;external External_library name 'setgroupent';
|
||||
|
||||
{$ifdef Darwin}
|
||||
procedure fpsetgrfile(name:pchar); cdecl; external external_library name 'setgrfile';
|
||||
{$endif}
|
||||
|
||||
// FreeBSD has these, Linux too if USE_BSD is defined. Darwin too.
|
||||
// Darwin uses ints instead of gid's though, except for setgroups.
|
||||
function fpsetgroups(n:size_t;groups:pgid):cint; cdecl; external External_Library name 'setgroups';
|
||||
function fpgetgrouplist(user:pchar;group:tgid;groups:pgid;ngroups:pcint):cint; cdecl; external External_Library name 'getgrouplist';
|
||||
function fpinitgroups(user:pchar;group:tgid):cint;cdecl; external External_Library name 'initgroups';
|
||||
|
||||
implementation
|
||||
|
||||
|
@ -1,64 +1,139 @@
|
||||
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
|
||||
}
|
||||
uses
|
||||
initc,baseunix,ctypes;
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$PACKRECORDS C}
|
||||
{$ENDIF}
|
||||
|
||||
const
|
||||
External_library='c'; {Setup as you need}
|
||||
External_library= clib; {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;
|
||||
const
|
||||
_PATH_PWD = '/etc';
|
||||
_PATH_PASSWD = '/etc/passwd';
|
||||
_PASSWD = 'passwd';
|
||||
_PATH_MASTERPASSWD = '/etc/master.passwd';
|
||||
{$ifdef Darwin}
|
||||
_PATH_MASTERPASSWD_LOCK = '/etc/ptmp';
|
||||
{$endif}
|
||||
_MASTERPASSWD = 'master.passwd';
|
||||
|
||||
{$PACKRECORDS C}
|
||||
_PATH_MP_DB = '/etc/pwd.db';
|
||||
_MP_DB = 'pwd.db';
|
||||
_PATH_SMP_DB = '/etc/spwd.db';
|
||||
_SMP_DB = 'spwd.db';
|
||||
_PATH_PWD_MKDB = '/usr/sbin/pwd_mkdb';
|
||||
|
||||
|
||||
{$ifdef BSD}
|
||||
_PW_VERSION_MASK = #$F0;
|
||||
|
||||
function _PW_VERSIONED(x,v : longint) : cuchar; inline;
|
||||
|
||||
|
||||
const
|
||||
_PW_KEYBYNAME = #$31; { stored by name }
|
||||
_PW_KEYBYNUM = #$32; { stored by entry in the "file"}
|
||||
_PW_KEYBYUID = #$33; { stored by uid }
|
||||
{$ifdef FreeBSD}
|
||||
_PW_KEYYPENABLED = #$34; { YP is enabled }
|
||||
_PW_KEYYPBYNUM = #$35; { special +@netgroup entries }
|
||||
{$endif}
|
||||
|
||||
{ The database also contains a key to indicate the format version of
|
||||
* the entries therein. There may be other, older versioned entries
|
||||
* as well. }
|
||||
|
||||
const
|
||||
{$ifdef FreeBSD}
|
||||
_PWD_VERSION_KEY = #$FF+'VERSION';
|
||||
_PWD_CURRENT_VERSION = #$4;
|
||||
{$endif}
|
||||
_PASSWORD_EFMT1 = '_'; { extended encryption format }
|
||||
_PASSWORD_LEN = 128; { max length, not counting NULL }
|
||||
{$ifdef Darwin}
|
||||
_PASSWORD_NOUID = $01; (* flag for no specified uid. *)
|
||||
_PASSWORD_NOGID = $02; (* flag for no specified gid. *)
|
||||
_PASSWORD_NOCHG = $04; (* flag for no specified change. *)
|
||||
_PASSWORD_NOEXP =$08; (* flag for no specified expire. *)
|
||||
_PASSWORD_WARNDAYS = 14; (* days to warn about expiry *)
|
||||
_PASSWORD_CHGNOW = -1; (* special day to force password
|
||||
* change at next login *)
|
||||
{$endif}
|
||||
|
||||
{$endif}
|
||||
|
||||
type
|
||||
PFile = Pointer;
|
||||
__uid_t = longint;
|
||||
__gid_t = longint;
|
||||
{ Darwin uses __darwin_time_t, but that is an alias for time_t }
|
||||
PPasswd = ^TPasswd;
|
||||
PPPasswd = ^PPasswd;
|
||||
Passwd = record
|
||||
pw_name : pchar; { user name }
|
||||
pw_passwd : pchar; { encrypted password }
|
||||
pw_uid : Tuid; { user uid }
|
||||
pw_gid : Tgid; { user gid }
|
||||
{$ifdef bsd}
|
||||
pw_change : Ttime platform; { password change time }
|
||||
pw_class : pchar platform; { user access class }
|
||||
{$endif}
|
||||
pw_gecos : pchar; { Honeywell login info }
|
||||
pw_dir : pchar; { home directory }
|
||||
pw_shell : pchar; { default shell }
|
||||
{$ifdef bsd}
|
||||
pw_expire : Ttime platform; { account expiration }
|
||||
{$ifdef FreeBSD}
|
||||
pw_fields : cint platform; { internal: fields filled in }
|
||||
{$endif}
|
||||
{$endif}
|
||||
end;
|
||||
TPasswd = Passwd;
|
||||
|
||||
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';
|
||||
{$ifdef FreeBSD}
|
||||
const
|
||||
_PWF_NAME = 1;
|
||||
_PWF_PASSWD = 2;
|
||||
_PWF_UID = 4;
|
||||
_PWF_GID = 8;
|
||||
_PWF_CHANGE = $10;
|
||||
_PWF_CLASS = $20;
|
||||
_PWF_GECOS = $40;
|
||||
_PWF_DIR = $80;
|
||||
_PWF_SHELL = $100;
|
||||
_PWF_EXPIRE = $200;
|
||||
|
||||
|
||||
_PWF_SOURCE = $3000;
|
||||
_PWF_FILES = $1000;
|
||||
_PWF_NIS = $2000;
|
||||
_PWF_HESIOD = $3000;
|
||||
{$endif}
|
||||
|
||||
function fpgetpwnam (name:pchar):PPasswd; cdecl;external External_library name 'getpwnam';
|
||||
function fpgetpwuid (id:tuid):PPasswd;cdecl;external External_library name 'getpwuid';
|
||||
|
||||
procedure fpendpwent;cdecl;external External_library name 'endpwent';
|
||||
function fpgetpwent:ppasswd;cdecl;external External_library name 'getpwent';
|
||||
procedure fpsetpwent;cdecl;external External_library name 'setpwent';
|
||||
|
||||
function fpgetpwnam_r (namepara1:pchar; pwd:Ppasswd; buffer:pchar; bufsize:size_t; pwresult:PPpasswd):cint;cdecl;external External_library name 'getpwnam_r';
|
||||
function fpgetpwuid_r (uid:uid_t; pwd:Ppasswd; buffer:pchar; buffersize:size_t; pwresult:PPpasswd):cint;cdecl;external External_library name 'getpwuid_r';
|
||||
{$ifndef Darwin}
|
||||
function fpgetpwent_r (pwd:Ppasswd; buffer:pchar; buffersize:size_t; pwresult:PPpasswd):cint;cdecl;external External_library name 'getpwent_r';
|
||||
{$endif}
|
||||
|
||||
implementation
|
||||
|
||||
{$ifdef BSD}
|
||||
function _PW_VERSIONED (x,v : longint) : cuchar; inline;
|
||||
|
||||
begin
|
||||
_PW_VERSIONED:= (x and $CF) or (v shl 4);
|
||||
end;
|
||||
{$endif}
|
||||
|
||||
end.
|
||||
|
@ -2,21 +2,23 @@ unit users;
|
||||
|
||||
Interface
|
||||
{$mode delphi}
|
||||
uses baseunix,pwd,shadow,grp,SysUtils,Classes;
|
||||
uses BaseUnix,pwd,grp, {$ifdef Linux} shadow{$endif},SysUtils,Classes;
|
||||
|
||||
Type
|
||||
EUserLookupError = Class(Exception);
|
||||
EGroupLookupError = Class(Exception);
|
||||
EShadowLookupError = Class(Exception);
|
||||
TPasswordRecord = Tpasswd;
|
||||
PPasswordRecord = ^TPasswordRecord;
|
||||
|
||||
{ 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;
|
||||
Procedure GetUserData(Uid : TUID; Var Data : TPasswordRecord); overload;
|
||||
function GetUserName(UID : TUID) : String;
|
||||
function GetUserId(Const UserName : String) : TUID;
|
||||
function GetUserGid(Const UserName : String) : TGID;
|
||||
function GetUserDir(Const UserName : String): String;
|
||||
function GetUserDescription(Const UserName : String): String;
|
||||
Procedure GetUserList(List : Tstrings);overload;
|
||||
@ -26,20 +28,23 @@ Procedure GetUserList(List : TStrings; WithIDs : Boolean);overload;
|
||||
|
||||
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 GetGroupData(Gid : TGID; Var Data : TGroup); overload;
|
||||
function GetGroupName(GID : TGID) : String;
|
||||
function GetGroupId(Const GroupName : String) : TGID;
|
||||
Procedure GetGroupList(List : Tstrings);overload;
|
||||
Procedure GetGroupList(List : TStrings; WithIDs : Boolean);overload;
|
||||
Procedure GetGroupMembers(GID : Integer;List : TStrings);overload;
|
||||
Procedure GetGroupMembers(GID : TGID;List : TStrings);overload;
|
||||
Procedure GetGroupMembers(Const GroupName : String;List : TStrings);overload;
|
||||
|
||||
{ Shadow password functions }
|
||||
|
||||
{$ifdef Linux}
|
||||
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;
|
||||
Procedure GetUserShadowData(UID : TUID; Var Data : TPasswordFileEntry);overload;
|
||||
{$endif}
|
||||
|
||||
{ Extra functions }
|
||||
|
||||
@ -59,7 +64,7 @@ EShadowNotPermitted = 'Not enough permissions to access shadow password file';
|
||||
Function getpwnam(Const UserName: String) : PPasswordRecord;
|
||||
|
||||
begin
|
||||
Result:=pwd.getpwnam(Pchar(UserName));
|
||||
Result:=pwd.fpgetpwnam(Pchar(UserName));
|
||||
end;
|
||||
|
||||
Procedure GetUserData(Const UserName : String; Var Data : TPasswordRecord);
|
||||
@ -67,36 +72,36 @@ Procedure GetUserData(Const UserName : String; Var Data : TPasswordRecord);
|
||||
Var P : PPasswordRecord;
|
||||
|
||||
begin
|
||||
P:=Getpwnam(UserName);
|
||||
P:=fpGetpwnam(pchar(UserName));
|
||||
If P<>Nil then
|
||||
Data:=P^
|
||||
else
|
||||
Raise EUserLookupError.CreateFmt(ENoSuchUserName,[UserName]);
|
||||
end;
|
||||
|
||||
Procedure GetUserData(Uid : Integer; Var Data : TPasswordRecord);
|
||||
Procedure GetUserData(Uid : tuid; Var Data : TPasswordRecord);
|
||||
|
||||
Var P : PPasswordRecord;
|
||||
|
||||
begin
|
||||
P:=Getpwuid(Uid);
|
||||
P:=fpGetpwuid(Uid);
|
||||
If P<>Nil then
|
||||
Data:=P^
|
||||
else
|
||||
Raise EUserLookupError.CreateFmt(ENoSuchUserID,[Uid]);
|
||||
end;
|
||||
|
||||
function GetUserName(UID : Integer) : String;
|
||||
function GetUserName(UID : TUID) : String;
|
||||
|
||||
Var
|
||||
UserData : TPasswordRecord;
|
||||
|
||||
begin
|
||||
GetuserData(UID,UserData);
|
||||
Result:=strpas(UserData.pw_Name);
|
||||
Result:=UserData.pw_Name;
|
||||
end;
|
||||
|
||||
function GetUserId(Const UserName : String) : Integer;
|
||||
function GetUserId(Const UserName : String) : TUID;
|
||||
|
||||
Var
|
||||
UserData : TPasswordRecord;
|
||||
@ -106,7 +111,7 @@ begin
|
||||
Result:=UserData.pw_uid;
|
||||
end;
|
||||
|
||||
function GetUserGId(Const UserName : String) : Integer;
|
||||
function GetUserGId(Const UserName : String) : TGID;
|
||||
|
||||
Var
|
||||
UserData : TPasswordRecord;
|
||||
@ -123,7 +128,7 @@ Var
|
||||
|
||||
begin
|
||||
GetUserData(UserName,UserData);
|
||||
Result:=strpas(UserData.pw_dir);
|
||||
Result:=UserData.pw_dir;
|
||||
end;
|
||||
|
||||
function GetUserDescription(Const UserName : String): String;
|
||||
@ -149,10 +154,10 @@ Var
|
||||
|
||||
begin
|
||||
List.Clear;
|
||||
setpwent;
|
||||
fpsetpwent;
|
||||
try
|
||||
Repeat
|
||||
P:=getpwent;
|
||||
P:=fpgetpwent;
|
||||
If P<>Nil then
|
||||
begin
|
||||
If WithIDs then
|
||||
@ -162,7 +167,7 @@ begin
|
||||
end;
|
||||
until (P=Nil);
|
||||
finally
|
||||
endpwent;
|
||||
fpendpwent;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -174,7 +179,7 @@ end;
|
||||
Function getgrnam(Const GroupName: String) : PGroup;
|
||||
|
||||
begin
|
||||
Result:=grp.getgrnam(Pchar(GroupName));
|
||||
Result:=grp.fpgetgrnam(Pchar(GroupName));
|
||||
end;
|
||||
|
||||
Procedure GetGroupData(Const GroupName : String; Var Data : TGroup); overload;
|
||||
@ -182,36 +187,36 @@ Procedure GetGroupData(Const GroupName : String; Var Data : TGroup); overload;
|
||||
Var P : PGroup;
|
||||
|
||||
begin
|
||||
P:=Getgrnam(GroupName);
|
||||
P:=fpGetgrnam(pchar(GroupName));
|
||||
If P<>Nil then
|
||||
Data:=P^
|
||||
else
|
||||
Raise EGroupLookupError.CreateFmt(ENoSuchGroupName,[GroupName]);
|
||||
end;
|
||||
|
||||
Procedure GetGroupData(Gid : Integer; Var Data : TGroup); overload;
|
||||
Procedure GetGroupData(Gid : TGID; Var Data : TGroup); overload;
|
||||
|
||||
Var P : PGroup;
|
||||
|
||||
begin
|
||||
P:=Getgrgid(gid);
|
||||
P:=fpGetgrgid(gid);
|
||||
If P<>Nil then
|
||||
Data:=P^
|
||||
else
|
||||
Raise EGroupLookupError.CreateFmt(ENoSuchGroupID,[Gid]);
|
||||
end;
|
||||
|
||||
function GetGroupName(GID : Integer) : String;
|
||||
function GetGroupName(GID : TGID) : String;
|
||||
|
||||
Var
|
||||
G : TGroup;
|
||||
|
||||
begin
|
||||
GetGroupData(Gid,G);
|
||||
Result:=StrPas(G.gr_name);
|
||||
Result:=G.gr_name;
|
||||
end;
|
||||
|
||||
function GetGroupId(Const GroupName : String) : Integer;
|
||||
function GetGroupId(Const GroupName : String) : TGID;
|
||||
|
||||
Var
|
||||
G : TGroup;
|
||||
@ -234,10 +239,10 @@ Var
|
||||
|
||||
begin
|
||||
List.Clear;
|
||||
setgrent;
|
||||
fpsetgrent;
|
||||
try
|
||||
Repeat
|
||||
G:=getgrent;
|
||||
G:=fpgetgrent;
|
||||
If G<>Nil then
|
||||
begin
|
||||
If WithIDs then
|
||||
@ -247,7 +252,7 @@ begin
|
||||
end;
|
||||
until (G=Nil);
|
||||
finally
|
||||
endgrent;
|
||||
fpendgrent;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -264,7 +269,7 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
Procedure GetGroupMembers(GID : Integer;List : TStrings);
|
||||
Procedure GetGroupMembers(GID : TGID;List : TStrings);
|
||||
|
||||
Var
|
||||
G : TGroup;
|
||||
@ -285,7 +290,7 @@ begin
|
||||
end;
|
||||
|
||||
{ Shadow password functions }
|
||||
|
||||
{$ifdef linux}
|
||||
function getspnam(UserName : String): PPasswordFileEntry;
|
||||
|
||||
begin
|
||||
@ -314,12 +319,13 @@ begin
|
||||
Data:=P^;
|
||||
end;
|
||||
|
||||
Procedure GetUserShadowData(UID : Integer; Var Data : TPasswordFileEntry);
|
||||
|
||||
Procedure GetUserShadowData(UID : TUID; Var Data : TPasswordFileEntry);
|
||||
|
||||
begin
|
||||
GetUserShadowData(GetUserName(UID),Data);
|
||||
end;
|
||||
|
||||
{$endif}
|
||||
{ Extra functions }
|
||||
|
||||
Function GetUserGroup(Const UserName : String) : String;
|
||||
|
Loading…
Reference in New Issue
Block a user