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:
Mario Fetka
2026-05-28 07:54:41 +02:00
parent 0fa4a6f700
commit 5da600c2a5
23 changed files with 2653 additions and 659 deletions

165
test/grant/GRNTC.BAT Normal file
View File

@@ -0,0 +1,165 @@
@ECHO OFF
REM GRNTC.BAT - delayed user-context GRANT readback helper.
REM Started by GRNTSTA via DLYSTRT. Runs from C:\GRNTTMP.
C:
CD \GRNTTMP
ECHO GRNTC user-context GRANT readback helper > HELPER.TXT
ECHO Current phase: logout supervisor, login NOPASSUSER. >> HELPER.TXT
LOGOUT > ULOG1.OUT
LOGIN NOPASSUSER > ULOGIN.OUT
F:
CD \
IF EXIST \NPUBLIC\RIGHTS.EXE GOTO HAVEF
ECHO F: not ready after NOPASSUSER login. >> C:\GRNTTMP\HELPER.TXT
GOTO RELSUP
:HAVEF
ECHO Starting G10_R as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G10 > C:\GRNTTMP\UNOV\G10_R.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G10 > C:\GRNTTMP\UPUB\G10_R.OUT
ECHO Starting G11_W as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G11 > C:\GRNTTMP\UNOV\G11_W.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G11 > C:\GRNTTMP\UPUB\G11_W.OUT
ECHO Starting G12_C as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G12 > C:\GRNTTMP\UNOV\G12_C.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G12 > C:\GRNTTMP\UPUB\G12_C.OUT
ECHO Starting G13_E as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G13 > C:\GRNTTMP\UNOV\G13_E.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G13 > C:\GRNTTMP\UPUB\G13_E.OUT
ECHO Starting G14_M as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G14 > C:\GRNTTMP\UNOV\G14_M.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G14 > C:\GRNTTMP\UPUB\G14_M.OUT
ECHO Starting G15_F as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G15 > C:\GRNTTMP\UNOV\G15_F.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G15 > C:\GRNTTMP\UPUB\G15_F.OUT
ECHO Starting G16_A as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G16 > C:\GRNTTMP\UNOV\G16_A.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G16 > C:\GRNTTMP\UPUB\G16_A.OUT
ECHO Starting G17_S as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G17 > C:\GRNTTMP\UNOV\G17_S.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G17 > C:\GRNTTMP\UPUB\G17_S.OUT
ECHO Starting G20_RF as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G20 > C:\GRNTTMP\UNOV\G20_RF.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G20 > C:\GRNTTMP\UPUB\G20_RF.OUT
ECHO Starting G21_RW as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G21 > C:\GRNTTMP\UNOV\G21_RW.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G21 > C:\GRNTTMP\UPUB\G21_RW.OUT
ECHO Starting G22_RWC as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G22 > C:\GRNTTMP\UNOV\G22_RWC.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G22 > C:\GRNTTMP\UPUB\G22_RWC.OUT
ECHO Starting G23_RWCE as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G23 > C:\GRNTTMP\UNOV\G23_RWCE.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G23 > C:\GRNTTMP\UPUB\G23_RWCE.OUT
ECHO Starting G24_RAL as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G24 > C:\GRNTTMP\UNOV\G24_RAL.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G24 > C:\GRNTTMP\UPUB\G24_RAL.OUT
ECHO Starting G25_SAL as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G25 > C:\GRNTTMP\UNOV\G25_SAL.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G25 > C:\GRNTTMP\UPUB\G25_SAL.OUT
ECHO Starting G26_ALL as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G26 > C:\GRNTTMP\UNOV\G26_ALL.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G26 > C:\GRNTTMP\UPUB\G26_ALL.OUT
ECHO Starting G27_N as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G27 > C:\GRNTTMP\UNOV\G27_N.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G27 > C:\GRNTTMP\UPUB\G27_N.OUT
ECHO Starting G30_RE as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G30 > C:\GRNTTMP\UNOV\G30_RE.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G30 > C:\GRNTTMP\UPUB\G30_RE.OUT
ECHO Starting G31_RWF as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G31 > C:\GRNTTMP\UNOV\G31_RWF.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G31 > C:\GRNTTMP\UPUB\G31_RWF.OUT
ECHO Starting G32_RCM as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G32 > C:\GRNTTMP\UNOV\G32_RCM.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G32 > C:\GRNTTMP\UPUB\G32_RCM.OUT
ECHO Starting G33_RFA as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G33 > C:\GRNTTMP\UNOV\G33_RFA.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G33 > C:\GRNTTMP\UPUB\G33_RFA.OUT
ECHO Starting G34_WCM as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G34 > C:\GRNTTMP\UNOV\G34_WCM.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G34 > C:\GRNTTMP\UPUB\G34_WCM.OUT
ECHO Starting G35_EMF as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G35 > C:\GRNTTMP\UNOV\G35_EMF.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G35 > C:\GRNTTMP\UPUB\G35_EMF.OUT
ECHO Starting G36_RMF as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G36 > C:\GRNTTMP\UNOV\G36_RMF.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G36 > C:\GRNTTMP\UPUB\G36_RMF.OUT
ECHO Starting G37_REMA as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G37 > C:\GRNTTMP\UNOV\G37_REMA.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G37 > C:\GRNTTMP\UPUB\G37_REMA.OUT
ECHO Starting G38_SR as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G38 > C:\GRNTTMP\UNOV\G38_SR.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G38 > C:\GRNTTMP\UPUB\G38_SR.OUT
ECHO Starting G39_SRF as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G39 > C:\GRNTTMP\UNOV\G39_SRF.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G39 > C:\GRNTTMP\UPUB\G39_SRF.OUT
ECHO Starting G40_SWCM as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\G40 > C:\GRNTTMP\UNOV\G40_SWCM.OUT
\PUBLIC\RIGHTS F:\GRNTEST\G40 > C:\GRNTTMP\UPUB\G40_SWCM.OUT
ECHO Starting F10_R as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\F10\T.TXT > C:\GRNTTMP\UNOV\F10_R.OUT
\PUBLIC\RIGHTS F:\GRNTEST\F10\T.TXT > C:\GRNTTMP\UPUB\F10_R.OUT
ECHO Starting F11_RF as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\F11\T.TXT > C:\GRNTTMP\UNOV\F11_RF.OUT
\PUBLIC\RIGHTS F:\GRNTEST\F11\T.TXT > C:\GRNTTMP\UPUB\F11_RF.OUT
ECHO Starting F12_RAL as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\F12\T.TXT > C:\GRNTTMP\UNOV\F12_RAL.OUT
\PUBLIC\RIGHTS F:\GRNTEST\F12\T.TXT > C:\GRNTTMP\UPUB\F12_RAL.OUT
ECHO Starting F13_ALL as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\F13\T.TXT > C:\GRNTTMP\UNOV\F13_ALL.OUT
\PUBLIC\RIGHTS F:\GRNTEST\F13\T.TXT > C:\GRNTTMP\UPUB\F13_ALL.OUT
ECHO Starting F14_N as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\F14\T.TXT > C:\GRNTTMP\UNOV\F14_N.OUT
\PUBLIC\RIGHTS F:\GRNTEST\F14\T.TXT > C:\GRNTTMP\UPUB\F14_N.OUT
ECHO Starting F15_S as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\F15\T.TXT > C:\GRNTTMP\UNOV\F15_S.OUT
\PUBLIC\RIGHTS F:\GRNTEST\F15\T.TXT > C:\GRNTTMP\UPUB\F15_S.OUT
ECHO Starting F16_SAL as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\F16\T.TXT > C:\GRNTTMP\UNOV\F16_SAL.OUT
\PUBLIC\RIGHTS F:\GRNTEST\F16\T.TXT > C:\GRNTTMP\UPUB\F16_SAL.OUT
ECHO Starting S10_R as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\S10\S1 > C:\GRNTTMP\UNOV\S10_R.OUT
\PUBLIC\RIGHTS F:\GRNTEST\S10\S1 > C:\GRNTTMP\UPUB\S10_R.OUT
ECHO Starting S11_RWC as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\S11\S1 > C:\GRNTTMP\UNOV\S11_RWC.OUT
\PUBLIC\RIGHTS F:\GRNTEST\S11\S1 > C:\GRNTTMP\UPUB\S11_RWC.OUT
ECHO Starting S12_ALL as NOPASSUSER... >> C:\GRNTTMP\HELPER.TXT
\NPUBLIC\RIGHTS F:\GRNTEST\S12\S1 > C:\GRNTTMP\UNOV\S12_ALL.OUT
\PUBLIC\RIGHTS F:\GRNTEST\S12\S1 > C:\GRNTTMP\UPUB\S12_ALL.OUT
:RELSUP
C:
CD \GRNTTMP
LOGOUT > ULOG2.OUT
F:
CD \
IF EXIST \LOGIN\LOGIN.EXE GOTO HAVELOG
ECHO F:\LOGIN\LOGIN.EXE not found. >> C:\GRNTTMP\HELPER.TXT
GOTO MANUAL
:HAVELOG
F:\LOGIN\LOGIN SUPERVISOR /PWD:%LGNTPWD% > C:\GRNTTMP\ULGSUP.OUT
F:
CD \
IF EXIST \GRNTSTA.BAT GOTO QUEUEP2
ECHO F: not restored or \GRNTSTA.BAT missing. >> C:\GRNTTMP\HELPER.TXT
GOTO MANUAL
:QUEUEP2
C:
CD \GRNTTMP
DLYSTRT /T:2 F:\GRNTSTA.BAT PART2
GOTO END
:MANUAL
ECHO Please run manually after SUPERVISOR login: >> C:\GRNTTMP\HELPER.TXT
ECHO F: >> C:\GRNTTMP\HELPER.TXT
ECHO CD \ >> C:\GRNTTMP\HELPER.TXT
ECHO GRNTSTA PART2 >> C:\GRNTTMP\HELPER.TXT
:END

View File

@@ -1,94 +1,491 @@
@ECHO OFF
REM GRNTSTA.BAT
REM Automated GRANT baseline test for MARS NWE.
REM Automated GRANT comparison test for MARS NWE.
REM
REM Run as SUPERVISOR or a user with Access Control on F:\GRNTEST.
REM Uses \NPUBLIC\GRANT as Novell baseline for currently implemented tool behavior.
REM Direct mode:
REM OUT = Novell baseline using \NPUBLIC\GRANT
REM PUBOUT = our implementation using \PUBLIC\GRANT
REM
REM Result tree:
REM F:\GRNTCMP
REM Test tree:
REM F:\GRNTEST
REM User-context mode:
REM GRANT is run as SUPERVISOR against NOPASSUSER.
REM DLYSTRT starts C:\GRNTTMP\GRNTC.BAT after this script exits.
REM GRNTC logs in as NOPASSUSER and captures effective RIGHTS output.
REM
REM Optional automatic user-context mode requires:
REM SET LGNTPWD=your-supervisor-password
IF "%1"=="" GOTO PART1
IF "%1"=="PART2" GOTO PART2
IF "%1"=="part2" GOTO PART2
IF "%1"=="Part2" GOTO PART2
ECHO Usage: GRNTSTA [PART2]
GOTO END
:PART1
F:
CD \
REM --- Clean generated test/result directories (contents only). ---
IF EXIST GRNTEST\NUL DELTREE /Y GRNTEST\*.*
IF EXIST GRNTCMP\NUL DELTREE /Y GRNTCMP\*.*
REM --- Clean generated test/result directories. ---
IF EXIST GRNTEST\*.* DELTREE /Y GRNTEST
IF EXIST GRNTCMP\*.* DELTREE /Y GRNTCMP
IF EXIST C:\GRNTTMP\*.* DELTREE /Y C:\GRNTTMP
IF NOT EXIST GRNTEST\NUL MD GRNTEST
IF NOT EXIST GRNTEST\ONE\NUL MD GRNTEST\ONE
IF NOT EXIST GRNTEST\TREE\NUL MD GRNTEST\TREE
IF NOT EXIST GRNTEST\TREE\SUB1\NUL MD GRNTEST\TREE\SUB1
IF NOT EXIST GRNTEST\TREE\SUB2\NUL MD GRNTEST\TREE\SUB2
IF NOT EXIST GRNTCMP\NUL MD GRNTCMP
IF NOT EXIST GRNTCMP\OUT\NUL MD GRNTCMP\OUT
IF NOT EXIST GRNTEST MD GRNTEST
IF NOT EXIST GRNTCMP MD GRNTCMP
IF NOT EXIST GRNTCMP\OUT MD GRNTCMP\OUT
IF NOT EXIST GRNTCMP\PUBOUT MD GRNTCMP\PUBOUT
IF NOT EXIST GRNTCMP\SETUP MD GRNTCMP\SETUP
IF NOT EXIST C:\GRNTTMP MD C:\GRNTTMP
IF NOT EXIST C:\GRNTTMP\UNOV MD C:\GRNTTMP\UNOV
IF NOT EXIST C:\GRNTTMP\UPUB MD C:\GRNTTMP\UPUB
IF NOT EXIST C:\GRNTTMP\USETUP MD C:\GRNTTMP\USETUP
ECHO GRANT ROOT FILE > F:\GRNTEST\ROOT.TXT
ECHO GRANT ONE FILE > F:\GRNTEST\ONE\ONE.TXT
ECHO GRANT TREE FILE > F:\GRNTEST\TREE\TROOT.TXT
ECHO GRANT SUB1 FILE > F:\GRNTEST\TREE\SUB1\SUB1.TXT
ECHO GRANT SUB2 FILE > F:\GRNTEST\TREE\SUB2\SUB2.TXT
ECHO GRNTSTA GRANT baseline test > F:\GRNTCMP\RUN.LOG
ECHO Run this as SUPERVISOR or equivalent. >> F:\GRNTCMP\RUN.LOG
ECHO Captures \NPUBLIC\GRANT output against user MARIO. >> F:\GRNTCMP\RUN.LOG
ECHO GRNTSTA GRANT comparison test > F:\GRNTCMP\RUN.LOG
ECHO OUT = Novell baseline with \NPUBLIC\GRANT >> F:\GRNTCMP\RUN.LOG
ECHO PUBOUT = our implementation with \PUBLIC\GRANT >> F:\GRNTCMP\RUN.LOG
ECHO User-context target: NOPASSUSER >> F:\GRNTCMP\RUN.LOG
ECHO. >> F:\GRNTCMP\RUN.LOG
ECHO === D01 usage/help === >> F:\GRNTCMP\RUN.LOG
ECHO Starting D01_HELP...
\NPUBLIC\GRANT /? > F:\GRNTCMP\OUT\D01_HELP.OUT
\PUBLIC\GRANT /? > F:\GRNTCMP\PUBOUT\D01_HELP.OUT
ECHO Starting D02_NOAR...
\NPUBLIC\GRANT > F:\GRNTCMP\OUT\D02_NOAR.OUT
\PUBLIC\GRANT > F:\GRNTCMP\PUBOUT\D02_NOAR.OUT
ECHO === D02 no arguments === >> F:\GRNTCMP\RUN.LOG
\NPUBLIC\GRANT > F:\GRNTCMP\OUT\D02_NOARGS.OUT
REM --- Setup matrix directories/files. ---
IF NOT EXIST GRNTEST\G10 MD GRNTEST\G10
ECHO G10_R > F:\GRNTEST\G10\TEST.TXT
IF NOT EXIST GRNTEST\G11 MD GRNTEST\G11
ECHO G11_W > F:\GRNTEST\G11\TEST.TXT
IF NOT EXIST GRNTEST\G12 MD GRNTEST\G12
ECHO G12_C > F:\GRNTEST\G12\TEST.TXT
IF NOT EXIST GRNTEST\G13 MD GRNTEST\G13
ECHO G13_E > F:\GRNTEST\G13\TEST.TXT
IF NOT EXIST GRNTEST\G14 MD GRNTEST\G14
ECHO G14_M > F:\GRNTEST\G14\TEST.TXT
IF NOT EXIST GRNTEST\G15 MD GRNTEST\G15
ECHO G15_F > F:\GRNTEST\G15\TEST.TXT
IF NOT EXIST GRNTEST\G16 MD GRNTEST\G16
ECHO G16_A > F:\GRNTEST\G16\TEST.TXT
IF NOT EXIST GRNTEST\G17 MD GRNTEST\G17
ECHO G17_S > F:\GRNTEST\G17\TEST.TXT
IF NOT EXIST GRNTEST\G20 MD GRNTEST\G20
ECHO G20_RF > F:\GRNTEST\G20\TEST.TXT
IF NOT EXIST GRNTEST\G21 MD GRNTEST\G21
ECHO G21_RW > F:\GRNTEST\G21\TEST.TXT
IF NOT EXIST GRNTEST\G22 MD GRNTEST\G22
ECHO G22_RWC > F:\GRNTEST\G22\TEST.TXT
IF NOT EXIST GRNTEST\G23 MD GRNTEST\G23
ECHO G23_RWCE > F:\GRNTEST\G23\TEST.TXT
IF NOT EXIST GRNTEST\G24 MD GRNTEST\G24
ECHO G24_RAL > F:\GRNTEST\G24\TEST.TXT
IF NOT EXIST GRNTEST\G25 MD GRNTEST\G25
ECHO G25_SAL > F:\GRNTEST\G25\TEST.TXT
IF NOT EXIST GRNTEST\G26 MD GRNTEST\G26
ECHO G26_ALL > F:\GRNTEST\G26\TEST.TXT
IF NOT EXIST GRNTEST\G27 MD GRNTEST\G27
ECHO G27_N > F:\GRNTEST\G27\TEST.TXT
IF NOT EXIST GRNTEST\G30 MD GRNTEST\G30
ECHO G30_RE > F:\GRNTEST\G30\TEST.TXT
IF NOT EXIST GRNTEST\G31 MD GRNTEST\G31
ECHO G31_RWF > F:\GRNTEST\G31\TEST.TXT
IF NOT EXIST GRNTEST\G32 MD GRNTEST\G32
ECHO G32_RCM > F:\GRNTEST\G32\TEST.TXT
IF NOT EXIST GRNTEST\G33 MD GRNTEST\G33
ECHO G33_RFA > F:\GRNTEST\G33\TEST.TXT
IF NOT EXIST GRNTEST\G34 MD GRNTEST\G34
ECHO G34_WCM > F:\GRNTEST\G34\TEST.TXT
IF NOT EXIST GRNTEST\G35 MD GRNTEST\G35
ECHO G35_EMF > F:\GRNTEST\G35\TEST.TXT
IF NOT EXIST GRNTEST\G36 MD GRNTEST\G36
ECHO G36_RMF > F:\GRNTEST\G36\TEST.TXT
IF NOT EXIST GRNTEST\G37 MD GRNTEST\G37
ECHO G37_REMA > F:\GRNTEST\G37\TEST.TXT
IF NOT EXIST GRNTEST\G38 MD GRNTEST\G38
ECHO G38_SR > F:\GRNTEST\G38\TEST.TXT
IF NOT EXIST GRNTEST\G39 MD GRNTEST\G39
ECHO G39_SRF > F:\GRNTEST\G39\TEST.TXT
IF NOT EXIST GRNTEST\G40 MD GRNTEST\G40
ECHO G40_SWCM > F:\GRNTEST\G40\TEST.TXT
IF NOT EXIST GRNTEST\F10 MD GRNTEST\F10
ECHO F10_R > F:\GRNTEST\F10\T.TXT
IF NOT EXIST GRNTEST\F11 MD GRNTEST\F11
ECHO F11_RF > F:\GRNTEST\F11\T.TXT
IF NOT EXIST GRNTEST\F12 MD GRNTEST\F12
ECHO F12_RAL > F:\GRNTEST\F12\T.TXT
IF NOT EXIST GRNTEST\F13 MD GRNTEST\F13
ECHO F13_ALL > F:\GRNTEST\F13\T.TXT
IF NOT EXIST GRNTEST\F14 MD GRNTEST\F14
ECHO F14_N > F:\GRNTEST\F14\T.TXT
IF NOT EXIST GRNTEST\F15 MD GRNTEST\F15
ECHO F15_S > F:\GRNTEST\F15\T.TXT
IF NOT EXIST GRNTEST\F16 MD GRNTEST\F16
ECHO F16_SAL > F:\GRNTEST\F16\T.TXT
IF NOT EXIST GRNTEST\S10 MD GRNTEST\S10
IF NOT EXIST GRNTEST\S10\S1 MD GRNTEST\S10\S1
IF NOT EXIST GRNTEST\S10\S2 MD GRNTEST\S10\S2
ECHO S10_R > F:\GRNTEST\S10\S1\T.TXT
IF NOT EXIST GRNTEST\S11 MD GRNTEST\S11
IF NOT EXIST GRNTEST\S11\S1 MD GRNTEST\S11\S1
IF NOT EXIST GRNTEST\S11\S2 MD GRNTEST\S11\S2
ECHO S11_RWC > F:\GRNTEST\S11\S1\T.TXT
IF NOT EXIST GRNTEST\S12 MD GRNTEST\S12
IF NOT EXIST GRNTEST\S12\S1 MD GRNTEST\S12\S1
IF NOT EXIST GRNTEST\S12\S2 MD GRNTEST\S12\S2
ECHO S12_ALL > F:\GRNTEST\S12\S1\T.TXT
ECHO === D10 grant R F on directory === >> F:\GRNTCMP\RUN.LOG
\NPUBLIC\GRANT R F FOR F:\GRNTEST\ONE TO USER MARIO > F:\GRNTCMP\OUT\D10_DIR_RF.OUT
REM --- Direct GRANT output compare and leave PUBLIC state for user-context readback. ---
ECHO Starting G10_R directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G10 > F:\GRNTCMP\SETUP\G10_RNREM.OUT
\NPUBLIC\GRANT R FOR F:\GRNTEST\G10 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G10_R.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G10 > F:\GRNTCMP\SETUP\G10_RPREM.OUT
\PUBLIC\GRANT R FOR F:\GRNTEST\G10 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G10_R.OUT
ECHO Starting G11_W directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G11 > F:\GRNTCMP\SETUP\G11_WNREM.OUT
\NPUBLIC\GRANT W FOR F:\GRNTEST\G11 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G11_W.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G11 > F:\GRNTCMP\SETUP\G11_WPREM.OUT
\PUBLIC\GRANT W FOR F:\GRNTEST\G11 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G11_W.OUT
ECHO Starting G12_C directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G12 > F:\GRNTCMP\SETUP\G12_CNREM.OUT
\NPUBLIC\GRANT C FOR F:\GRNTEST\G12 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G12_C.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G12 > F:\GRNTCMP\SETUP\G12_CPREM.OUT
\PUBLIC\GRANT C FOR F:\GRNTEST\G12 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G12_C.OUT
ECHO Starting G13_E directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G13 > F:\GRNTCMP\SETUP\G13_ENREM.OUT
\NPUBLIC\GRANT E FOR F:\GRNTEST\G13 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G13_E.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G13 > F:\GRNTCMP\SETUP\G13_EPREM.OUT
\PUBLIC\GRANT E FOR F:\GRNTEST\G13 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G13_E.OUT
ECHO Starting G14_M directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G14 > F:\GRNTCMP\SETUP\G14_MNREM.OUT
\NPUBLIC\GRANT M FOR F:\GRNTEST\G14 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G14_M.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G14 > F:\GRNTCMP\SETUP\G14_MPREM.OUT
\PUBLIC\GRANT M FOR F:\GRNTEST\G14 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G14_M.OUT
ECHO Starting G15_F directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G15 > F:\GRNTCMP\SETUP\G15_FNREM.OUT
\NPUBLIC\GRANT F FOR F:\GRNTEST\G15 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G15_F.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G15 > F:\GRNTCMP\SETUP\G15_FPREM.OUT
\PUBLIC\GRANT F FOR F:\GRNTEST\G15 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G15_F.OUT
ECHO Starting G16_A directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G16 > F:\GRNTCMP\SETUP\G16_ANREM.OUT
\NPUBLIC\GRANT A FOR F:\GRNTEST\G16 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G16_A.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G16 > F:\GRNTCMP\SETUP\G16_APREM.OUT
\PUBLIC\GRANT A FOR F:\GRNTEST\G16 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G16_A.OUT
ECHO Starting G17_S directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G17 > F:\GRNTCMP\SETUP\G17_SNREM.OUT
\NPUBLIC\GRANT S FOR F:\GRNTEST\G17 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G17_S.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G17 > F:\GRNTCMP\SETUP\G17_SPREM.OUT
\PUBLIC\GRANT S FOR F:\GRNTEST\G17 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G17_S.OUT
ECHO Starting G20_RF directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G20 > F:\GRNTCMP\SETUP\G20_RFNREM.OUT
\NPUBLIC\GRANT R F FOR F:\GRNTEST\G20 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G20_RF.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G20 > F:\GRNTCMP\SETUP\G20_RFPREM.OUT
\PUBLIC\GRANT R F FOR F:\GRNTEST\G20 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G20_RF.OUT
ECHO Starting G21_RW directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G21 > F:\GRNTCMP\SETUP\G21_RWNREM.OUT
\NPUBLIC\GRANT R W FOR F:\GRNTEST\G21 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G21_RW.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G21 > F:\GRNTCMP\SETUP\G21_RWPREM.OUT
\PUBLIC\GRANT R W FOR F:\GRNTEST\G21 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G21_RW.OUT
ECHO Starting G22_RWC directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G22 > F:\GRNTCMP\SETUP\G22_RWCNREM.OUT
\NPUBLIC\GRANT R W C FOR F:\GRNTEST\G22 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G22_RWC.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G22 > F:\GRNTCMP\SETUP\G22_RWCPREM.OUT
\PUBLIC\GRANT R W C FOR F:\GRNTEST\G22 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G22_RWC.OUT
ECHO Starting G23_RWCE directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G23 > F:\GRNTCMP\SETUP\G23_RWCENREM.OUT
\NPUBLIC\GRANT R W C E FOR F:\GRNTEST\G23 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G23_RWCE.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G23 > F:\GRNTCMP\SETUP\G23_RWCEPREM.OUT
\PUBLIC\GRANT R W C E FOR F:\GRNTEST\G23 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G23_RWCE.OUT
ECHO Starting G24_RAL directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G24 > F:\GRNTCMP\SETUP\G24_RALNREM.OUT
\NPUBLIC\GRANT R W C E M F A FOR F:\GRNTEST\G24 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G24_RAL.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G24 > F:\GRNTCMP\SETUP\G24_RALPREM.OUT
\PUBLIC\GRANT R W C E M F A FOR F:\GRNTEST\G24 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G24_RAL.OUT
ECHO Starting G25_SAL directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G25 > F:\GRNTCMP\SETUP\G25_SALNREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\GRNTEST\G25 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G25_SAL.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G25 > F:\GRNTCMP\SETUP\G25_SALPREM.OUT
\PUBLIC\GRANT S R W C E M F A FOR F:\GRNTEST\G25 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G25_SAL.OUT
ECHO Starting G26_ALL directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G26 > F:\GRNTCMP\SETUP\G26_ALLNREM.OUT
\NPUBLIC\GRANT ALL FOR F:\GRNTEST\G26 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G26_ALL.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G26 > F:\GRNTCMP\SETUP\G26_ALLPREM.OUT
\PUBLIC\GRANT ALL FOR F:\GRNTEST\G26 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G26_ALL.OUT
ECHO Starting G27_N directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G27 > F:\GRNTCMP\SETUP\G27_NNREM.OUT
\NPUBLIC\GRANT N FOR F:\GRNTEST\G27 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G27_N.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G27 > F:\GRNTCMP\SETUP\G27_NPREM.OUT
\PUBLIC\GRANT N FOR F:\GRNTEST\G27 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G27_N.OUT
ECHO Starting G30_RE directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G30 > F:\GRNTCMP\SETUP\G30_RENREM.OUT
\NPUBLIC\GRANT R E FOR F:\GRNTEST\G30 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G30_RE.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G30 > F:\GRNTCMP\SETUP\G30_REPREM.OUT
\PUBLIC\GRANT R E FOR F:\GRNTEST\G30 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G30_RE.OUT
ECHO Starting G31_RWF directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G31 > F:\GRNTCMP\SETUP\G31_RWFNREM.OUT
\NPUBLIC\GRANT R W F FOR F:\GRNTEST\G31 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G31_RWF.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G31 > F:\GRNTCMP\SETUP\G31_RWFPREM.OUT
\PUBLIC\GRANT R W F FOR F:\GRNTEST\G31 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G31_RWF.OUT
ECHO Starting G32_RCM directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G32 > F:\GRNTCMP\SETUP\G32_RCMNREM.OUT
\NPUBLIC\GRANT R C M FOR F:\GRNTEST\G32 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G32_RCM.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G32 > F:\GRNTCMP\SETUP\G32_RCMPREM.OUT
\PUBLIC\GRANT R C M FOR F:\GRNTEST\G32 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G32_RCM.OUT
ECHO Starting G33_RFA directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G33 > F:\GRNTCMP\SETUP\G33_RFANREM.OUT
\NPUBLIC\GRANT R F A FOR F:\GRNTEST\G33 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G33_RFA.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G33 > F:\GRNTCMP\SETUP\G33_RFAPREM.OUT
\PUBLIC\GRANT R F A FOR F:\GRNTEST\G33 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G33_RFA.OUT
ECHO Starting G34_WCM directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G34 > F:\GRNTCMP\SETUP\G34_WCMNREM.OUT
\NPUBLIC\GRANT W C M FOR F:\GRNTEST\G34 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G34_WCM.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G34 > F:\GRNTCMP\SETUP\G34_WCMPREM.OUT
\PUBLIC\GRANT W C M FOR F:\GRNTEST\G34 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G34_WCM.OUT
ECHO Starting G35_EMF directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G35 > F:\GRNTCMP\SETUP\G35_EMFNREM.OUT
\NPUBLIC\GRANT E M F FOR F:\GRNTEST\G35 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G35_EMF.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G35 > F:\GRNTCMP\SETUP\G35_EMFPREM.OUT
\PUBLIC\GRANT E M F FOR F:\GRNTEST\G35 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G35_EMF.OUT
ECHO Starting G36_RMF directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G36 > F:\GRNTCMP\SETUP\G36_RMFNREM.OUT
\NPUBLIC\GRANT R W C M F FOR F:\GRNTEST\G36 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G36_RMF.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G36 > F:\GRNTCMP\SETUP\G36_RMFPREM.OUT
\PUBLIC\GRANT R W C M F FOR F:\GRNTEST\G36 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G36_RMF.OUT
ECHO Starting G37_REMA directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G37 > F:\GRNTCMP\SETUP\G37_REMANREM.OUT
\NPUBLIC\GRANT R E M A FOR F:\GRNTEST\G37 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G37_REMA.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G37 > F:\GRNTCMP\SETUP\G37_REMAPREM.OUT
\PUBLIC\GRANT R E M A FOR F:\GRNTEST\G37 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G37_REMA.OUT
ECHO Starting G38_SR directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G38 > F:\GRNTCMP\SETUP\G38_SRNREM.OUT
\NPUBLIC\GRANT S R FOR F:\GRNTEST\G38 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G38_SR.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G38 > F:\GRNTCMP\SETUP\G38_SRPREM.OUT
\PUBLIC\GRANT S R FOR F:\GRNTEST\G38 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G38_SR.OUT
ECHO Starting G39_SRF directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G39 > F:\GRNTCMP\SETUP\G39_SRFNREM.OUT
\NPUBLIC\GRANT S R F FOR F:\GRNTEST\G39 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G39_SRF.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G39 > F:\GRNTCMP\SETUP\G39_SRFPREM.OUT
\PUBLIC\GRANT S R F FOR F:\GRNTEST\G39 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G39_SRF.OUT
ECHO Starting G40_SWCM directory grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G40 > F:\GRNTCMP\SETUP\G40_SWCMNREM.OUT
\NPUBLIC\GRANT S W C M FOR F:\GRNTEST\G40 TO USER NOPASSUSER > F:\GRNTCMP\OUT\G40_SWCM.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\G40 > F:\GRNTCMP\SETUP\G40_SWCMPREM.OUT
\PUBLIC\GRANT S W C M FOR F:\GRNTEST\G40 TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\G40_SWCM.OUT
ECHO Starting F10_R file grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\F10\T.TXT /FILES > F:\GRNTCMP\SETUP\F10_RNREM.OUT
\NPUBLIC\GRANT R FOR F:\GRNTEST\F10\T.TXT TO USER NOPASSUSER /FILES > F:\GRNTCMP\OUT\F10_R.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\F10\T.TXT /FILES > F:\GRNTCMP\SETUP\F10_RPREM.OUT
\PUBLIC\GRANT R FOR F:\GRNTEST\F10\T.TXT TO USER NOPASSUSER /FILES > F:\GRNTCMP\PUBOUT\F10_R.OUT
ECHO Starting F11_RF file grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\F11\T.TXT /FILES > F:\GRNTCMP\SETUP\F11_RFNREM.OUT
\NPUBLIC\GRANT R F FOR F:\GRNTEST\F11\T.TXT TO USER NOPASSUSER /FILES > F:\GRNTCMP\OUT\F11_RF.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\F11\T.TXT /FILES > F:\GRNTCMP\SETUP\F11_RFPREM.OUT
\PUBLIC\GRANT R F FOR F:\GRNTEST\F11\T.TXT TO USER NOPASSUSER /FILES > F:\GRNTCMP\PUBOUT\F11_RF.OUT
ECHO Starting F12_RAL file grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\F12\T.TXT /FILES > F:\GRNTCMP\SETUP\F12_RALNREM.OUT
\NPUBLIC\GRANT R W C E M F A FOR F:\GRNTEST\F12\T.TXT TO USER NOPASSUSER /FILES > F:\GRNTCMP\OUT\F12_RAL.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\F12\T.TXT /FILES > F:\GRNTCMP\SETUP\F12_RALPREM.OUT
\PUBLIC\GRANT R W C E M F A FOR F:\GRNTEST\F12\T.TXT TO USER NOPASSUSER /FILES > F:\GRNTCMP\PUBOUT\F12_RAL.OUT
ECHO Starting F13_ALL file grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\F13\T.TXT /FILES > F:\GRNTCMP\SETUP\F13_ALLNREM.OUT
\NPUBLIC\GRANT ALL FOR F:\GRNTEST\F13\T.TXT TO USER NOPASSUSER /FILES > F:\GRNTCMP\OUT\F13_ALL.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\F13\T.TXT /FILES > F:\GRNTCMP\SETUP\F13_ALLPREM.OUT
\PUBLIC\GRANT ALL FOR F:\GRNTEST\F13\T.TXT TO USER NOPASSUSER /FILES > F:\GRNTCMP\PUBOUT\F13_ALL.OUT
ECHO Starting F14_N file grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\F14\T.TXT /FILES > F:\GRNTCMP\SETUP\F14_NNREM.OUT
\NPUBLIC\GRANT N FOR F:\GRNTEST\F14\T.TXT TO USER NOPASSUSER /FILES > F:\GRNTCMP\OUT\F14_N.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\F14\T.TXT /FILES > F:\GRNTCMP\SETUP\F14_NPREM.OUT
\PUBLIC\GRANT N FOR F:\GRNTEST\F14\T.TXT TO USER NOPASSUSER /FILES > F:\GRNTCMP\PUBOUT\F14_N.OUT
ECHO Starting F15_S file grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\F15\T.TXT /FILES > F:\GRNTCMP\SETUP\F15_SNREM.OUT
\NPUBLIC\GRANT S FOR F:\GRNTEST\F15\T.TXT TO USER NOPASSUSER /FILES > F:\GRNTCMP\OUT\F15_S.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\F15\T.TXT /FILES > F:\GRNTCMP\SETUP\F15_SPREM.OUT
\PUBLIC\GRANT S FOR F:\GRNTEST\F15\T.TXT TO USER NOPASSUSER /FILES > F:\GRNTCMP\PUBOUT\F15_S.OUT
ECHO Starting F16_SAL file grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\F16\T.TXT /FILES > F:\GRNTCMP\SETUP\F16_SALNREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\GRNTEST\F16\T.TXT TO USER NOPASSUSER /FILES > F:\GRNTCMP\OUT\F16_SAL.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\F16\T.TXT /FILES > F:\GRNTCMP\SETUP\F16_SALPREM.OUT
\PUBLIC\GRANT S R W C E M F A FOR F:\GRNTEST\F16\T.TXT TO USER NOPASSUSER /FILES > F:\GRNTCMP\PUBOUT\F16_SAL.OUT
ECHO Starting S10_R subdir grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\S10 /SUBDIRS > F:\GRNTCMP\SETUP\S10_RNREM.OUT
\NPUBLIC\GRANT R FOR F:\GRNTEST\S10 TO USER NOPASSUSER /SUBDIRECTORIES > F:\GRNTCMP\OUT\S10_R.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\S10 /SUBDIRS > F:\GRNTCMP\SETUP\S10_RPREM.OUT
\PUBLIC\GRANT R FOR F:\GRNTEST\S10 TO USER NOPASSUSER /SUBDIRECTORIES > F:\GRNTCMP\PUBOUT\S10_R.OUT
ECHO Starting S11_RWC subdir grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\S11 /SUBDIRS > F:\GRNTCMP\SETUP\S11_RWCNREM.OUT
\NPUBLIC\GRANT R W C FOR F:\GRNTEST\S11 TO USER NOPASSUSER /SUBDIRECTORIES > F:\GRNTCMP\OUT\S11_RWC.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\S11 /SUBDIRS > F:\GRNTCMP\SETUP\S11_RWCPREM.OUT
\PUBLIC\GRANT R W C FOR F:\GRNTEST\S11 TO USER NOPASSUSER /SUBDIRECTORIES > F:\GRNTCMP\PUBOUT\S11_RWC.OUT
ECHO Starting S12_ALL subdir grant...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\S12 /SUBDIRS > F:\GRNTCMP\SETUP\S12_ALLNREM.OUT
\NPUBLIC\GRANT ALL FOR F:\GRNTEST\S12 TO USER NOPASSUSER /SUBDIRECTORIES > F:\GRNTCMP\OUT\S12_ALL.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\GRNTEST\S12 /SUBDIRS > F:\GRNTCMP\SETUP\S12_ALLPREM.OUT
\PUBLIC\GRANT ALL FOR F:\GRNTEST\S12 TO USER NOPASSUSER /SUBDIRECTORIES > F:\GRNTCMP\PUBOUT\S12_ALL.OUT
ECHO === D11 grant R W C E M F A on directory === >> F:\GRNTCMP\RUN.LOG
\NPUBLIC\GRANT R W C E M F A FOR F:\GRNTEST\ONE TO USER MARIO > F:\GRNTCMP\OUT\D11_DIR_ALL_LETTERS.OUT
ECHO Starting D90_BADR...
\NPUBLIC\GRANT BADRIGHT FOR F:\GRNTEST TO USER NOPASSUSER > F:\GRNTCMP\OUT\D90_BADR.OUT
\PUBLIC\GRANT BADRIGHT FOR F:\GRNTEST TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\D90_BADR.OUT
ECHO Starting D91_MISU...
\NPUBLIC\GRANT R F FOR F:\GRNTEST TO USER NO_SUCH_USER > F:\GRNTCMP\OUT\D91_MISU.OUT
\PUBLIC\GRANT R F FOR F:\GRNTEST TO USER NO_SUCH_USER > F:\GRNTCMP\PUBOUT\D91_MISU.OUT
ECHO Starting D92_MISP...
\NPUBLIC\GRANT R F FOR F:\GRNTEST\MISSING TO USER NOPASSUSER > F:\GRNTCMP\OUT\D92_MISP.OUT
\PUBLIC\GRANT R F FOR F:\GRNTEST\MISSING TO USER NOPASSUSER > F:\GRNTCMP\PUBOUT\D92_MISP.OUT
ECHO Starting D93_GRAM...
\NPUBLIC\GRANT R F FOR F:\GRNTEST NOPASSUSER > F:\GRNTCMP\OUT\D93_GRAM.OUT
\PUBLIC\GRANT R F FOR F:\GRNTEST NOPASSUSER > F:\GRNTCMP\PUBOUT\D93_GRAM.OUT
ECHO === D12 grant ALL alias on root directory === >> F:\GRNTCMP\RUN.LOG
\NPUBLIC\GRANT ALL FOR F:\GRNTEST TO USER MARIO > F:\GRNTCMP\OUT\D12_DIR_ALL_ALIAS.OUT
ECHO === COMPARE NOVELL OUT AGAINST PUBLIC OUT === > F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\D01_HELP.OUT F:\GRNTCMP\PUBOUT\D01_HELP.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\D02_NOAR.OUT F:\GRNTCMP\PUBOUT\D02_NOAR.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G10_R.OUT F:\GRNTCMP\PUBOUT\G10_R.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G11_W.OUT F:\GRNTCMP\PUBOUT\G11_W.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G12_C.OUT F:\GRNTCMP\PUBOUT\G12_C.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G13_E.OUT F:\GRNTCMP\PUBOUT\G13_E.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G14_M.OUT F:\GRNTCMP\PUBOUT\G14_M.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G15_F.OUT F:\GRNTCMP\PUBOUT\G15_F.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G16_A.OUT F:\GRNTCMP\PUBOUT\G16_A.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G17_S.OUT F:\GRNTCMP\PUBOUT\G17_S.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G20_RF.OUT F:\GRNTCMP\PUBOUT\G20_RF.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G21_RW.OUT F:\GRNTCMP\PUBOUT\G21_RW.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G22_RWC.OUT F:\GRNTCMP\PUBOUT\G22_RWC.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G23_RWCE.OUT F:\GRNTCMP\PUBOUT\G23_RWCE.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G24_RAL.OUT F:\GRNTCMP\PUBOUT\G24_RAL.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G25_SAL.OUT F:\GRNTCMP\PUBOUT\G25_SAL.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G26_ALL.OUT F:\GRNTCMP\PUBOUT\G26_ALL.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G27_N.OUT F:\GRNTCMP\PUBOUT\G27_N.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G30_RE.OUT F:\GRNTCMP\PUBOUT\G30_RE.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G31_RWF.OUT F:\GRNTCMP\PUBOUT\G31_RWF.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G32_RCM.OUT F:\GRNTCMP\PUBOUT\G32_RCM.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G33_RFA.OUT F:\GRNTCMP\PUBOUT\G33_RFA.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G34_WCM.OUT F:\GRNTCMP\PUBOUT\G34_WCM.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G35_EMF.OUT F:\GRNTCMP\PUBOUT\G35_EMF.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G36_RMF.OUT F:\GRNTCMP\PUBOUT\G36_RMF.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G37_REMA.OUT F:\GRNTCMP\PUBOUT\G37_REMA.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G38_SR.OUT F:\GRNTCMP\PUBOUT\G38_SR.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G39_SRF.OUT F:\GRNTCMP\PUBOUT\G39_SRF.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\G40_SWCM.OUT F:\GRNTCMP\PUBOUT\G40_SWCM.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\F10_R.OUT F:\GRNTCMP\PUBOUT\F10_R.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\F11_RF.OUT F:\GRNTCMP\PUBOUT\F11_RF.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\F12_RAL.OUT F:\GRNTCMP\PUBOUT\F12_RAL.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\F13_ALL.OUT F:\GRNTCMP\PUBOUT\F13_ALL.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\F14_N.OUT F:\GRNTCMP\PUBOUT\F14_N.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\F15_S.OUT F:\GRNTCMP\PUBOUT\F15_S.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\F16_SAL.OUT F:\GRNTCMP\PUBOUT\F16_SAL.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\S10_R.OUT F:\GRNTCMP\PUBOUT\S10_R.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\S11_RWC.OUT F:\GRNTCMP\PUBOUT\S11_RWC.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\S12_ALL.OUT F:\GRNTCMP\PUBOUT\S12_ALL.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\D90_BADR.OUT F:\GRNTCMP\PUBOUT\D90_BADR.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\D91_MISU.OUT F:\GRNTCMP\PUBOUT\D91_MISU.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\D92_MISP.OUT F:\GRNTCMP\PUBOUT\D92_MISP.OUT >> F:\GRNTCMP\COMPARE.LOG
FC F:\GRNTCMP\OUT\D93_GRAM.OUT F:\GRNTCMP\PUBOUT\D93_GRAM.OUT >> F:\GRNTCMP\COMPARE.LOG
ECHO === D13 grant N / no rights on directory === >> F:\GRNTCMP\RUN.LOG
\NPUBLIC\GRANT N FOR F:\GRNTEST\ONE TO USER MARIO > F:\GRNTCMP\OUT\D13_DIR_N.OUT
IF "%LGNTPWD%"=="" GOTO NOUSER
IF NOT EXIST \PUBLIC\DLYSTRT.EXE GOTO NODLY
ECHO === D20 grant R F recursively to subdirectories === >> F:\GRNTCMP\RUN.LOG
\NPUBLIC\GRANT R F FOR F:\GRNTEST\TREE TO USER MARIO /SUBDIRECTORIES > F:\GRNTCMP\OUT\D20_SUBDIRS_RF.OUT
COPY \PUBLIC\DLYSTRT.EXE C:\GRNTTMP > NUL
COPY F:\GRNTC.BAT C:\GRNTTMP\GRNTC.BAT > NUL
C:
CD \GRNTTMP
DLYSTRT /T:2 GRNTC.BAT
GOTO STARTED
ECHO === D21 grant R F on one file using /FILES === >> F:\GRNTCMP\RUN.LOG
\NPUBLIC\GRANT R F FOR F:\GRNTEST\ONE\ONE.TXT TO USER MARIO /FILES > F:\GRNTCMP\OUT\D21_FILE_RF.OUT
:NOUSER
ECHO LGNTPWD is not set. User-context part skipped. >> F:\GRNTCMP\RUN.LOG
ECHO.
ECHO LGNTPWD ist nicht gesetzt. User-context part skipped.
ECHO Fuer User-Kontext zuerst setzen:
ECHO SET LGNTPWD=dein-supervisor-passwort
GOTO SUMMARY
ECHO === D30 relative path from F:\GRNTEST === >> F:\GRNTCMP\RUN.LOG
CD \GRNTEST
\NPUBLIC\GRANT R F FOR ONE TO USER MARIO > F:\GRNTCMP\OUT\D30_REL_DIR_RF.OUT
:NODLY
ECHO \PUBLIC\DLYSTRT.EXE not found. User-context part skipped. >> F:\GRNTCMP\RUN.LOG
ECHO.
ECHO \PUBLIC\DLYSTRT.EXE nicht gefunden. User-context part skipped.
GOTO SUMMARY
:STARTED
ECHO GRNTC queued via DLYSTRT. >> F:\GRNTCMP\RUN.LOG
ECHO.
ECHO GRNTC wurde via DLYSTRT gestartet.
ECHO Nach automatischem Re-Login wird GRNTSTA PART2 gestartet.
GOTO END
:SUMMARY
ECHO === SUMMARY === > F:\GRNTCMP\SUMMARY.TXT
ECHO GRNTSTA GRANT direct comparison finished. >> F:\GRNTCMP\SUMMARY.TXT
ECHO User-context part was skipped. >> F:\GRNTCMP\SUMMARY.TXT
ECHO Optional: GRNTZIP ausfuehren. >> F:\GRNTCMP\SUMMARY.TXT
ECHO GRNTSTA direct part finished.
ECHO Optional: GRNTZIP ausfuehren.
GOTO END
:PART2
F:
CD \
IF NOT EXIST GRNTCMP MD GRNTCMP
IF NOT EXIST GRNTCMP\UNOV MD GRNTCMP\UNOV
IF NOT EXIST GRNTCMP\UPUB MD GRNTCMP\UPUB
IF NOT EXIST GRNTCMP\USETUP MD GRNTCMP\USETUP
ECHO === D90 invalid right === >> F:\GRNTCMP\RUN.LOG
\NPUBLIC\GRANT BADRIGHT FOR F:\GRNTEST TO USER MARIO > F:\GRNTCMP\OUT\D90_BAD_RIGHT.OUT
COPY C:\GRNTTMP\UNOV\*.OUT F:\GRNTCMP\UNOV > NUL
COPY C:\GRNTTMP\UPUB\*.OUT F:\GRNTCMP\UPUB > NUL
COPY C:\GRNTTMP\USETUP\*.OUT F:\GRNTCMP\USETUP > NUL
IF EXIST C:\GRNTTMP\HELPER.TXT COPY C:\GRNTTMP\HELPER.TXT F:\GRNTCMP\HELPER.TXT > NUL
IF EXIST C:\GRNTTMP\ULOG1.OUT COPY C:\GRNTTMP\ULOG1.OUT F:\GRNTCMP\ULOG1.OUT > NUL
IF EXIST C:\GRNTTMP\ULOGIN.OUT COPY C:\GRNTTMP\ULOGIN.OUT F:\GRNTCMP\ULOGIN.OUT > NUL
IF EXIST C:\GRNTTMP\ULOG2.OUT COPY C:\GRNTTMP\ULOG2.OUT F:\GRNTCMP\ULOG2.OUT > NUL
IF EXIST C:\GRNTTMP\ULGSUP.OUT COPY C:\GRNTTMP\ULGSUP.OUT F:\GRNTCMP\ULGSUP.OUT > NUL
ECHO === D91 missing user === >> F:\GRNTCMP\RUN.LOG
\NPUBLIC\GRANT R F FOR F:\GRNTEST TO USER NO_SUCH_USER > F:\GRNTCMP\OUT\D91_MISSING_USER.OUT
ECHO === D92 missing path === >> F:\GRNTCMP\RUN.LOG
\NPUBLIC\GRANT R F FOR F:\GRNTEST\MISSING TO USER MARIO > F:\GRNTCMP\OUT\D92_MISSING_PATH.OUT
ECHO === D93 bad grammar / missing TO === >> F:\GRNTCMP\RUN.LOG
\NPUBLIC\GRANT R F FOR F:\GRNTEST MARIO > F:\GRNTCMP\OUT\D93_BAD_GRAMMAR.OUT
ECHO === COMPARE NOPASSUSER NOVELL RIGHTS AGAINST PUBLIC RIGHTS === > F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G10_R.OUT F:\GRNTCMP\UPUB\G10_R.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G11_W.OUT F:\GRNTCMP\UPUB\G11_W.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G12_C.OUT F:\GRNTCMP\UPUB\G12_C.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G13_E.OUT F:\GRNTCMP\UPUB\G13_E.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G14_M.OUT F:\GRNTCMP\UPUB\G14_M.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G15_F.OUT F:\GRNTCMP\UPUB\G15_F.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G16_A.OUT F:\GRNTCMP\UPUB\G16_A.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G17_S.OUT F:\GRNTCMP\UPUB\G17_S.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G20_RF.OUT F:\GRNTCMP\UPUB\G20_RF.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G21_RW.OUT F:\GRNTCMP\UPUB\G21_RW.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G22_RWC.OUT F:\GRNTCMP\UPUB\G22_RWC.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G23_RWCE.OUT F:\GRNTCMP\UPUB\G23_RWCE.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G24_RAL.OUT F:\GRNTCMP\UPUB\G24_RAL.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G25_SAL.OUT F:\GRNTCMP\UPUB\G25_SAL.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G26_ALL.OUT F:\GRNTCMP\UPUB\G26_ALL.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G27_N.OUT F:\GRNTCMP\UPUB\G27_N.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G30_RE.OUT F:\GRNTCMP\UPUB\G30_RE.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G31_RWF.OUT F:\GRNTCMP\UPUB\G31_RWF.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G32_RCM.OUT F:\GRNTCMP\UPUB\G32_RCM.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G33_RFA.OUT F:\GRNTCMP\UPUB\G33_RFA.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G34_WCM.OUT F:\GRNTCMP\UPUB\G34_WCM.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G35_EMF.OUT F:\GRNTCMP\UPUB\G35_EMF.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G36_RMF.OUT F:\GRNTCMP\UPUB\G36_RMF.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G37_REMA.OUT F:\GRNTCMP\UPUB\G37_REMA.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G38_SR.OUT F:\GRNTCMP\UPUB\G38_SR.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G39_SRF.OUT F:\GRNTCMP\UPUB\G39_SRF.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\G40_SWCM.OUT F:\GRNTCMP\UPUB\G40_SWCM.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\F10_R.OUT F:\GRNTCMP\UPUB\F10_R.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\F11_RF.OUT F:\GRNTCMP\UPUB\F11_RF.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\F12_RAL.OUT F:\GRNTCMP\UPUB\F12_RAL.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\F13_ALL.OUT F:\GRNTCMP\UPUB\F13_ALL.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\F14_N.OUT F:\GRNTCMP\UPUB\F14_N.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\F15_S.OUT F:\GRNTCMP\UPUB\F15_S.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\F16_SAL.OUT F:\GRNTCMP\UPUB\F16_SAL.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\S10_R.OUT F:\GRNTCMP\UPUB\S10_R.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\S11_RWC.OUT F:\GRNTCMP\UPUB\S11_RWC.OUT >> F:\GRNTCMP\UCOMP.LOG
FC F:\GRNTCMP\UNOV\S12_ALL.OUT F:\GRNTCMP\UPUB\S12_ALL.OUT >> F:\GRNTCMP\UCOMP.LOG
ECHO === SUMMARY === > F:\GRNTCMP\SUMMARY.TXT
ECHO GRNTSTA GRANT baseline finished. >> F:\GRNTCMP\SUMMARY.TXT
ECHO GRNTSTA GRANT comparison finished. >> F:\GRNTCMP\SUMMARY.TXT
ECHO. >> F:\GRNTCMP\SUMMARY.TXT
ECHO Expected: >> F:\GRNTCMP\SUMMARY.TXT
ECHO - D10-D13 capture directory grant formatting and right aliases. >> F:\GRNTCMP\SUMMARY.TXT
ECHO - D20 captures /SUBDIRECTORIES behavior. >> F:\GRNTCMP\SUMMARY.TXT
ECHO - D21 captures /FILES behavior for a file path. >> F:\GRNTCMP\SUMMARY.TXT
ECHO - D30 captures relative path behavior with absolute \NPUBLIC\GRANT invocation. >> F:\GRNTCMP\SUMMARY.TXT
ECHO - D90-D93 capture error/grammar cases. >> F:\GRNTCMP\SUMMARY.TXT
ECHO Direct mode: OUT vs PUBOUT compares GRANT output. >> F:\GRNTCMP\SUMMARY.TXT
ECHO User mode: UNOV vs UPUB compares effective RIGHTS as NOPASSUSER. >> F:\GRNTCMP\SUMMARY.TXT
ECHO. >> F:\GRNTCMP\SUMMARY.TXT
ECHO Optional: GRNTZIP ausfuehren. >> F:\GRNTCMP\SUMMARY.TXT
ECHO GRNTSTA fertig.
ECHO Ergebnisse liegen in F:\GRNTCMP
ECHO GRNTSTA PART2 fertig.
ECHO Optional: GRNTZIP ausfuehren.
GOTO END
:END

View File

@@ -1,26 +1,26 @@
@ECHO OFF
REM GRNTZIP.BAT
REM Optional packer for GRNTSTA result files.
REM Requires ZIP.EXE in PATH or current directory.
F:
CD \GRNTCMP
IF EXIST GRNTSTA.ZIP DEL GRNTSTA.ZIP
IF EXIST ZIP.LOG DEL ZIP.LOG
ECHO Creating GRNTSTA.ZIP > ZIP.LOG
ZIP -r GRNTSTA.ZIP RUN.LOG SUMMARY.TXT OUT >> ZIP.LOG
REM Cleanup generated test directories after ZIP.
REM Keep the CMP/result directory because it contains the ZIP and ZIP.LOG.
ECHO Cleaning generated test directories... >> ZIP.LOG
IF EXIST \GRNTEST\NUL DELTREE /Y \GRNTEST >> ZIP.LOG
CD \
ECHO.
ECHO ZIP step finished.
ECHO Check:
ECHO F:\GRNTCMP\GRNTSTA.ZIP
ECHO F:\GRNTCMP\ZIP.LOG
ECHO.
@ECHO OFF
REM GRNTZIP.BAT
REM Optional packer for GRNTSTA result files.
REM Requires ZIP.EXE in PATH or current directory.
F:
CD \GRNTCMP
IF EXIST GRNTSTA.ZIP DEL GRNTSTA.ZIP
IF EXIST ZIP.LOG DEL ZIP.LOG
ECHO Creating GRNTSTA.ZIP > ZIP.LOG
ZIP -r GRNTSTA.ZIP RUN.LOG SUMMARY.TXT COMPARE.LOG UCOMP.LOG HELPER.TXT ULOG1.OUT ULOGIN.OUT ULOG2.OUT ULGSUP.OUT OUT PUBOUT SETUP UNOV UPUB USETUP >> ZIP.LOG
REM Cleanup generated test directories after ZIP.
REM Keep the CMP/result directory because it contains the ZIP and ZIP.LOG.
ECHO Cleaning generated test directories... >> ZIP.LOG
IF EXIST \GRNTEST\NUL DELTREE /Y \GRNTEST >> ZIP.LOG
IF EXIST C:\GRNTTMP\NUL DELTREE /Y C:\GRNTTMP >> ZIP.LOG
CD \
ECHO.
ECHO ZIP step finished.
ECHO Check:
ECHO F:\GRNTCMP\GRNTSTA.ZIP
ECHO F:\GRNTCMP\ZIP.LOG
ECHO.

View File

@@ -1,19 +1,42 @@
# GRANT baseline test
Scripts:
- `GRNTSTA.BAT` creates `F:\GRNTEST`, captures Novell `\NPUBLIC\GRANT` output into `F:\GRNTCMP\OUT`, and uses user `MARIO` as trustee target.
- `GRNTZIP.BAT` packages `RUN.LOG`, `SUMMARY.TXT`, and `OUT` as `F:\GRNTCMP\GRNTSTA.ZIP`.
Run as `SUPERVISOR` or an equivalent user with Access Control rights on `F:\GRNTEST`.
Covered cases:
- help and no-argument grammar
- directory grants with explicit rights, `ALL`, and `N`
- `/SUBDIRECTORIES`
- `/FILES` on an explicit file
- relative path invocation from inside the test directory while invoking `\NPUBLIC\GRANT` absolutely
- invalid right, missing user, missing path, and bad grammar
This test is still Novell-baseline-only. Later comparison scripts should run the same command set through `NPUBLIC` and `PUBLIC` with normalized output.
# GRANT comparison test
Scripts:
- `GRNTSTA.BAT` creates `F:\GRNTEST`, compares Novell `\NPUBLIC\GRANT`
output against `\PUBLIC\GRANT`, and uses `NOPASSUSER` as trustee target.
- `GRNTC.BAT` is the delayed user-context helper started through `DLYSTRT`.
It logs in as `NOPASSUSER` and captures effective `RIGHTS` output for the
grants prepared by `GRNTSTA`.
- `GRNTZIP.BAT` packages the result tree as `F:\GRNTCMP\GRNTSTA.ZIP`.
Run as `SUPERVISOR` or an equivalent user.
For the automatic user-context part, set the Supervisor password first:
```bat
SET LGNTPWD=your-supervisor-password
GRNTSTA
```
Result directories:
- `OUT` contains Novell `GRANT` output.
- `PUBOUT` contains public implementation `GRANT` output.
- `COMPARE.LOG` compares `OUT` against `PUBOUT`.
- `UNOV` contains Novell `RIGHTS` output captured as `NOPASSUSER`.
- `UPUB` contains public implementation `RIGHTS` output captured as `NOPASSUSER`.
- `UCOMP.LOG` compares `UNOV` against `UPUB`.
- `SETUP` and `USETUP` contain setup/cleanup command output.
Covered grant cases:
- single rights: `R`, `W`, `C`, `E`, `M`, `F`, `A`, `S`
- combinations: `R F`, `R W`, `R W C`, `R W C E`,
`R W C E M F A`, `S R W C E M F A`, `ALL`, `N`
- mixed combinations: `R E`, `R W F`, `R C M`, `R F A`,
`W C M`, `E M F`, `R W C M F`, `R E M A`, `S R`, `S R F`, `S W C M`
- file trustee cases with `/FILES`
- recursive directory cases with `/SUBDIRECTORIES`
- help, no-argument and error/grammar cases
`GRNTZIP` remains manual so the result tree can be inspected before packaging.