dosutils: match Novell paths for flags and trustees
Move FLAG, GRANT and REMOVE closer to the request paths used by the Novell tools and extend the DOS comparison tests. FLAG now reads attributes through the old NCP22 directory scan path and writes them through NCP22/25 Set Directory/File Information. This keeps extended attributes such as Delete Inhibit and Rename Inhibit intact and matches the Novell behavior observed in the server logs. GRANT now prefers NCP22/27 SetTrustee with an NCP87 fallback. Supervisor rights are expanded like Novell does, so granting S sends and reports the full SRWCEMFA mask. The visible output, path formatting and error text are adjusted to match the Novell baseline. REMOVE now prefers NCP22/2B DelTrustee with an NCP87 fallback. The DelTrustee request layout is corrected, /SUBDIRS handling is aligned with Novell, and the output/error text is matched to the baseline. The FLAG, FLAGDIR, GRANT and REMOVE tests now compare NPUBLIC baselines against the PUBLIC implementations and add delayed NOPASSUSER readback checks using DLYSTRT and the maintainer LOGIN password option.
This commit is contained in:
@@ -1,31 +1,28 @@
|
||||
@ECHO OFF
|
||||
REM FDGTSTA.BAT
|
||||
REM Automated Novell FLAGDIR baseline for MARS NWE.
|
||||
REM FLAGDIR compare test.
|
||||
REM
|
||||
REM Run while already logged in and with F: mapped to SYS.
|
||||
REM Direct part:
|
||||
REM OUT = Novell baseline using \NPUBLIC\FLAGDIR
|
||||
REM PUBOUT = our implementation using \PUBLIC\FLAGDIR
|
||||
REM
|
||||
REM Test tree:
|
||||
REM F:\FDGTEST
|
||||
REM Result tree:
|
||||
REM F:\FDGCMP
|
||||
REM
|
||||
REM Scope:
|
||||
REM FLAGDIR on directories only.
|
||||
REM
|
||||
REM FLAGDIR uses long option names:
|
||||
REM Normal
|
||||
REM System
|
||||
REM Hidden
|
||||
REM Deleteinhibit
|
||||
REM Purge
|
||||
REM Renameinhibit
|
||||
REM User-context part:
|
||||
REM NOPASSUSER logs in via DLYSTRT helper and runs the same effective tests.
|
||||
|
||||
IF "%1"=="" GOTO PART1
|
||||
IF "%1"=="PART2" GOTO PART2
|
||||
IF "%1"=="part2" GOTO PART2
|
||||
IF "%1"=="Part2" GOTO PART2
|
||||
ECHO Usage: FDGTSTA [PART2]
|
||||
GOTO END
|
||||
|
||||
:PART1
|
||||
F:
|
||||
CD \
|
||||
|
||||
REM --- Clean generated test/result directories (contents only). ---
|
||||
IF EXIST FDGTEST\NUL DELTREE /Y FDGTEST\*.*
|
||||
IF EXIST FDGCMP\NUL DELTREE /Y FDGCMP\*.*
|
||||
IF EXIST FDGTMP\NUL DELTREE /Y FDGTMP\*.*
|
||||
|
||||
IF NOT EXIST FDGTEST\NUL MD FDGTEST
|
||||
IF NOT EXIST FDGTEST\DIRA\NUL MD FDGTEST\DIRA
|
||||
@@ -34,89 +31,117 @@ IF NOT EXIST FDGTEST\DIRC\NUL MD FDGTEST\DIRC
|
||||
IF NOT EXIST FDGTEST\DIRB\SUB\NUL MD FDGTEST\DIRB\SUB
|
||||
IF NOT EXIST FDGCMP\NUL MD FDGCMP
|
||||
IF NOT EXIST FDGCMP\OUT\NUL MD FDGCMP\OUT
|
||||
IF NOT EXIST FDGCMP\PUBOUT\NUL MD FDGCMP\PUBOUT
|
||||
IF NOT EXIST FDGCMP\SETUP\NUL MD FDGCMP\SETUP
|
||||
IF NOT EXIST FDGCMP\UNOV\NUL MD FDGCMP\UNOV
|
||||
IF NOT EXIST FDGCMP\UPUB\NUL MD FDGCMP\UPUB
|
||||
|
||||
IF EXIST F:\FDGCMP\RUN.LOG DEL F:\FDGCMP\RUN.LOG
|
||||
IF EXIST F:\FDGCMP\SUMMARY.TXT DEL F:\FDGCMP\SUMMARY.TXT
|
||||
IF EXIST F:\FDGCMP\COMPARE.LOG DEL F:\FDGCMP\COMPARE.LOG
|
||||
IF EXIST F:\FDGCMP\UCOMP.LOG DEL F:\FDGCMP\UCOMP.LOG
|
||||
IF EXIST F:\FDGCMP\FDGTSTA.ZIP DEL F:\FDGCMP\FDGTSTA.ZIP
|
||||
IF EXIST F:\FDGCMP\ZIP.LOG DEL F:\FDGCMP\ZIP.LOG
|
||||
|
||||
IF EXIST F:\FDGCMP\OUT\D01_BASE.OUT DEL F:\FDGCMP\OUT\D01_BASE.OUT
|
||||
IF EXIST F:\FDGCMP\OUT\D02_SET.OUT DEL F:\FDGCMP\OUT\D02_SET.OUT
|
||||
IF EXIST F:\FDGCMP\OUT\D03_NDIR.OUT DEL F:\FDGCMP\OUT\D03_NDIR.OUT
|
||||
IF EXIST F:\FDGCMP\OUT\D04_FILTER.OUT DEL F:\FDGCMP\OUT\D04_FILTER.OUT
|
||||
IF EXIST F:\FDGCMP\OUT\D05_NORMAL.OUT DEL F:\FDGCMP\OUT\D05_NORMAL.OUT
|
||||
IF EXIST F:\FDGCMP\OUT\D06_FINAL.OUT DEL F:\FDGCMP\OUT\D06_FINAL.OUT
|
||||
|
||||
IF EXIST F:\FDGTEST\DIRB\SUB\SUB.TXT DEL F:\FDGTEST\DIRB\SUB\SUB.TXT
|
||||
ECHO SUB FILE > F:\FDGTEST\DIRB\SUB\SUB.TXT
|
||||
ECHO FDGTSTA FLAGDIR compare > F:\FDGCMP\RUN.LOG
|
||||
|
||||
ECHO FDGTSTA FLAGDIR baseline > F:\FDGCMP\RUN.LOG
|
||||
ECHO Run while already logged in. >> F:\FDGCMP\RUN.LOG
|
||||
ECHO Date/time stamp skipped to avoid DOS prompt. >> F:\FDGCMP\RUN.LOG
|
||||
ECHO. >> F:\FDGCMP\RUN.LOG
|
||||
ECHO Starting D10 read normal...
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRA Normal > NUL
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRA > F:\FDGCMP\OUT\D10_READ.OUT
|
||||
PUBLIC\FLAGDIR F:\FDGTEST\DIRA > F:\FDGCMP\PUBOUT\D10_READ.OUT
|
||||
|
||||
ECHO === D01 FLAGDIR base / reset to Normal === >> F:\FDGCMP\RUN.LOG
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRA Normal >> F:\FDGCMP\RUN.LOG
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB Normal >> F:\FDGCMP\RUN.LOG
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRC Normal >> F:\FDGCMP\RUN.LOG
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB\SUB Normal >> F:\FDGCMP\RUN.LOG
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRA > F:\FDGCMP\OUT\D01_BASE.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB >> F:\FDGCMP\OUT\D01_BASE.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRC >> F:\FDGCMP\OUT\D01_BASE.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB\SUB >> F:\FDGCMP\OUT\D01_BASE.OUT
|
||||
ECHO Starting D11 Hidden...
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRA Normal > NUL
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRA Hidden > F:\FDGCMP\OUT\D11_HID.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRA >> F:\FDGCMP\OUT\D11_HID.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRA Normal > NUL
|
||||
PUBLIC\FLAGDIR F:\FDGTEST\DIRA Hidden > F:\FDGCMP\PUBOUT\D11_HID.OUT
|
||||
PUBLIC\FLAGDIR F:\FDGTEST\DIRA >> F:\FDGCMP\PUBOUT\D11_HID.OUT
|
||||
|
||||
ECHO === D02 FLAGDIR set directory flags === >> F:\FDGCMP\RUN.LOG
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRA Hidden > F:\FDGCMP\OUT\D02_SET.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB System >> F:\FDGCMP\OUT\D02_SET.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRC Purge >> F:\FDGCMP\OUT\D02_SET.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB\SUB Deleteinhibit Renameinhibit >> F:\FDGCMP\OUT\D02_SET.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRA >> F:\FDGCMP\OUT\D02_SET.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB >> F:\FDGCMP\OUT\D02_SET.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRC >> F:\FDGCMP\OUT\D02_SET.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB\SUB >> F:\FDGCMP\OUT\D02_SET.OUT
|
||||
ECHO Starting D12 System...
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB Normal > NUL
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB System > F:\FDGCMP\OUT\D12_SYS.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB >> F:\FDGCMP\OUT\D12_SYS.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB Normal > NUL
|
||||
PUBLIC\FLAGDIR F:\FDGTEST\DIRB System > F:\FDGCMP\PUBOUT\D12_SYS.OUT
|
||||
PUBLIC\FLAGDIR F:\FDGTEST\DIRB >> F:\FDGCMP\PUBOUT\D12_SYS.OUT
|
||||
|
||||
ECHO === D03 NDIR directory readback === >> F:\FDGCMP\RUN.LOG
|
||||
NPUBLIC\NDIR F:\FDGTEST > F:\FDGCMP\OUT\D03_NDIR.OUT
|
||||
NPUBLIC\NDIR F:\FDGTEST /DO >> F:\FDGCMP\OUT\D03_NDIR.OUT
|
||||
NPUBLIC\NDIR F:\FDGTEST /RIGHTS >> F:\FDGCMP\OUT\D03_NDIR.OUT
|
||||
ECHO Starting D13 Purge...
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRC Normal > NUL
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRC Purge > F:\FDGCMP\OUT\D13_PUR.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRC >> F:\FDGCMP\OUT\D13_PUR.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRC Normal > NUL
|
||||
PUBLIC\FLAGDIR F:\FDGTEST\DIRC Purge > F:\FDGCMP\PUBOUT\D13_PUR.OUT
|
||||
PUBLIC\FLAGDIR F:\FDGTEST\DIRC >> F:\FDGCMP\PUBOUT\D13_PUR.OUT
|
||||
|
||||
ECHO === D04 NDIR filters for directory flags === >> F:\FDGCMP\RUN.LOG
|
||||
ECHO --- /H --- > F:\FDGCMP\OUT\D04_FILTER.OUT
|
||||
NPUBLIC\NDIR F:\FDGTEST /H >> F:\FDGCMP\OUT\D04_FILTER.OUT
|
||||
ECHO --- /SY --- >> F:\FDGCMP\OUT\D04_FILTER.OUT
|
||||
NPUBLIC\NDIR F:\FDGTEST /SY >> F:\FDGCMP\OUT\D04_FILTER.OUT
|
||||
ECHO --- /NOT H --- >> F:\FDGCMP\OUT\D04_FILTER.OUT
|
||||
NPUBLIC\NDIR F:\FDGTEST /NOT H >> F:\FDGCMP\OUT\D04_FILTER.OUT
|
||||
ECHO Starting D14 Delete/Rename inhibit...
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB\SUB Normal > NUL
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB\SUB Deleteinhibit Renameinhibit > F:\FDGCMP\OUT\D14_DIRI.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB\SUB >> F:\FDGCMP\OUT\D14_DIRI.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB\SUB Normal > NUL
|
||||
PUBLIC\FLAGDIR F:\FDGTEST\DIRB\SUB Deleteinhibit Renameinhibit > F:\FDGCMP\PUBOUT\D14_DIRI.OUT
|
||||
PUBLIC\FLAGDIR F:\FDGTEST\DIRB\SUB >> F:\FDGCMP\PUBOUT\D14_DIRI.OUT
|
||||
|
||||
ECHO === D05 FLAGDIR Normal reset === >> F:\FDGCMP\RUN.LOG
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRA Normal > F:\FDGCMP\OUT\D05_NORMAL.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB Normal >> F:\FDGCMP\OUT\D05_NORMAL.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRC Normal >> F:\FDGCMP\OUT\D05_NORMAL.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB\SUB Normal >> F:\FDGCMP\OUT\D05_NORMAL.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRA >> F:\FDGCMP\OUT\D05_NORMAL.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB >> F:\FDGCMP\OUT\D05_NORMAL.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRC >> F:\FDGCMP\OUT\D05_NORMAL.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRB\SUB >> F:\FDGCMP\OUT\D05_NORMAL.OUT
|
||||
ECHO Starting D15 mixed reset...
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRA Hidden System > NUL
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRA Normal > F:\FDGCMP\OUT\D15_NORM.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRA >> F:\FDGCMP\OUT\D15_NORM.OUT
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\DIRA Hidden System > NUL
|
||||
PUBLIC\FLAGDIR F:\FDGTEST\DIRA Normal > F:\FDGCMP\PUBOUT\D15_NORM.OUT
|
||||
PUBLIC\FLAGDIR F:\FDGTEST\DIRA >> F:\FDGCMP\PUBOUT\D15_NORM.OUT
|
||||
|
||||
ECHO === D06 final NDIR readback === >> F:\FDGCMP\RUN.LOG
|
||||
NPUBLIC\NDIR F:\FDGTEST > F:\FDGCMP\OUT\D06_FINAL.OUT
|
||||
NPUBLIC\NDIR F:\FDGTEST /DO >> F:\FDGCMP\OUT\D06_FINAL.OUT
|
||||
NPUBLIC\NDIR F:\FDGTEST /RIGHTS >> F:\FDGCMP\OUT\D06_FINAL.OUT
|
||||
ECHO Starting D90 missing dir...
|
||||
NPUBLIC\FLAGDIR F:\FDGTEST\MISSING > F:\FDGCMP\OUT\D90_MISS.OUT
|
||||
PUBLIC\FLAGDIR F:\FDGTEST\MISSING > F:\FDGCMP\PUBOUT\D90_MISS.OUT
|
||||
|
||||
ECHO === SUMMARY === > F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO FDGTSTA FLAGDIR baseline finished. >> F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO. >> F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO Expected: >> F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO - D01 displays base directory flags after Normal reset. >> F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO - D02 sets Hidden, System, Purge, Deleteinhibit, Renameinhibit. >> F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO - D03 shows NDIR directory readback. >> F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO - D04 checks NDIR filters for visible directory flags. >> F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO - D05 resets all directory flags to Normal. >> F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO - D06 final readback should show normal directories. >> F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO Optional pack results with FDGTZIP.BAT. >> F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO Comparing direct FLAGDIR outputs... > F:\FDGCMP\COMPARE.LOG
|
||||
FOR %%F IN (D10_READ.OUT D11_HID.OUT D12_SYS.OUT D13_PUR.OUT D14_DIRI.OUT D15_NORM.OUT D90_MISS.OUT) DO FC F:\FDGCMP\OUT\%%F F:\FDGCMP\PUBOUT\%%F >> F:\FDGCMP\COMPARE.LOG
|
||||
|
||||
REM Grant NOPASSUSER enough rights for user-context directory flag tests.
|
||||
NPUBLIC\GRANT ALL FOR F:\FDGTEST TO USER NOPASSUSER > F:\FDGCMP\SETUP\S01_GRD.OUT
|
||||
NPUBLIC\GRANT ALL FOR F:\FDGTEST\DIRA TO USER NOPASSUSER >> F:\FDGCMP\SETUP\S01_GRD.OUT
|
||||
NPUBLIC\GRANT ALL FOR F:\FDGTEST\DIRB TO USER NOPASSUSER >> F:\FDGCMP\SETUP\S01_GRD.OUT
|
||||
NPUBLIC\GRANT ALL FOR F:\FDGTEST\DIRC TO USER NOPASSUSER >> F:\FDGCMP\SETUP\S01_GRD.OUT
|
||||
NPUBLIC\GRANT ALL FOR F:\FDGTEST\DIRB\SUB TO USER NOPASSUSER >> F:\FDGCMP\SETUP\S01_GRD.OUT
|
||||
|
||||
IF "%LGNTPWD%"=="" GOTO NEEDPWD
|
||||
|
||||
IF EXIST C:\FDGTMP DELTREE /Y C:\FDGTMP > NUL
|
||||
MD C:\FDGTMP
|
||||
MD C:\FDGTMP\UNOV
|
||||
MD C:\FDGTMP\UPUB
|
||||
COPY F:\FDGC.BAT C:\FDGTMP\FDGC.BAT > NUL
|
||||
COPY F:\PUBLIC\DLYSTRT.EXE C:\FDGTMP\DLYSTRT.EXE > NUL
|
||||
|
||||
C:
|
||||
CD \FDGTMP
|
||||
DLYSTRT /T:2 FDGC.BAT
|
||||
GOTO END
|
||||
|
||||
:NEEDPWD
|
||||
ECHO LGNTPWD is not set. User-context FLAGDIR block skipped. >> F:\FDGCMP\RUN.LOG
|
||||
ECHO.
|
||||
ECHO FDGTSTA fertig.
|
||||
ECHO Ergebnisse liegen in F:\FDGCMP
|
||||
ECHO Optional: FDGTZIP ausfuehren.
|
||||
ECHO LGNTPWD ist nicht gesetzt. User-Kontext wurde nicht gestartet.
|
||||
GOTO END
|
||||
|
||||
:PART2
|
||||
F:
|
||||
CD \
|
||||
IF NOT EXIST FDGCMP\UNOV\NUL MD FDGCMP\UNOV
|
||||
IF NOT EXIST FDGCMP\UPUB\NUL MD FDGCMP\UPUB
|
||||
IF EXIST F:\FDGCMP\UCOMP.LOG DEL F:\FDGCMP\UCOMP.LOG
|
||||
COPY C:\FDGTMP\UNOV\*.OUT F:\FDGCMP\UNOV > NUL
|
||||
COPY C:\FDGTMP\UPUB\*.OUT F:\FDGCMP\UPUB > NUL
|
||||
IF EXIST C:\FDGTMP\HELPER.TXT COPY C:\FDGTMP\HELPER.TXT F:\FDGCMP > NUL
|
||||
ECHO Comparing NOPASSUSER FLAGDIR outputs... > F:\FDGCMP\UCOMP.LOG
|
||||
FOR %%F IN (U10_READ.OUT U11_HID.OUT U12_SYS.OUT U13_PUR.OUT U14_DIRI.OUT U15_NORM.OUT U90_MISS.OUT) DO FC F:\FDGCMP\UNOV\%%F F:\FDGCMP\UPUB\%%F >> F:\FDGCMP\UCOMP.LOG
|
||||
ECHO FDGTSTA summary > F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO Direct compare: F:\FDGCMP\COMPARE.LOG >> F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO User compare: F:\FDGCMP\UCOMP.LOG >> F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO Optional: FDGTZIP ausfuehren. >> F:\FDGCMP\SUMMARY.TXT
|
||||
ECHO.
|
||||
ECHO FDGTSTA PART2 fertig. Optional FDGTZIP ausfuehren.
|
||||
GOTO END
|
||||
|
||||
:END
|
||||
|
||||
Reference in New Issue
Block a user