dosutils: align Novell-compatible tests and stage NCOPY work

Update the DOS utilities and test suite with the current Novell comparison
state.

Validated/updated tool behavior:
- improve CREATOR output by showing Novell-style attribute and rights masks
- extend FLAGDIR handling with old NCP22 directory attribute read/write
  fallback paths
- expand NDIR Novell-style formatting, filtering, /SUB handling, date output,
  DI/RI attribute display and richer metadata collection
- adjust REVOKE output/grammar, recursive /SUBDIRECTORIES behavior and trustee
  update/delete paths to better match Novell tools
- adjust SLIST header/output behavior for logged-in and logged-out cases
- update README status to reflect the currently green/tested tools

Test-suite changes:
- add/refresh Novell comparison tests for CREATOR, NDIR, REVOKE and SLIST
- update NCOPY tests and collection scripts for the current investigation state
- refresh per-tool README files and top-level test documentation
- keep MAP documented as still separately open

NCOPY:
- add the current NCOPY implementation and experimental NCP74/server-side-copy
  scaffolding
- build ncopy.c so it stays compile-tested
- keep NCOPY disabled in the NET multicall dispatch for now because the
  server-side-copy/open-handle path is still unsafe and needs further analysis

Build:
- include ncopy.c in the DOS utility build
- drop the temporary MARS_DOSUTILS_VERSION define wiring from CMake
This commit is contained in:
Mario Fetka
2026-05-29 07:40:04 +02:00
parent 5da600c2a5
commit 4a952b4c4c
36 changed files with 5873 additions and 943 deletions

View File

@@ -1,31 +1,32 @@
# REVOKE baseline test
# REVOKE comparison test
Scripts:
`RVKSTA.BAT` creates `F:\RVKTEST` and compares Novell `\NPUBLIC\REVOKE` output with the public implementation `\PUBLIC\REVOKE`.
- `RVKSTA.BAT` creates `F:\RVKTEST`, uses Novell `\NPUBLIC\GRANT` for setup, then captures Novell `\NPUBLIC\REVOKE` output into `F:\RVKCMP\OUT`. User `MARIO` is used as trustee target.
- `RVKZIP.BAT` packages `RUN.LOG`, `SUMMARY.TXT`, `SETUP`, and `OUT` as `F:\RVKCMP\RVKSTA.ZIP`.
Result tree:
Run as `SUPERVISOR` or an equivalent user with Access Control rights on `F:\RVKTEST`.
- `F:\RVKCMP\OUT` - Novell baseline output
- `F:\RVKCMP\PUBOUT` - public implementation output
- `F:\RVKCMP\COMPARE.LOG` - direct `FC` comparisons
- `F:\RVKCMP\UNOV` - user-context Novell `RIGHTS` readback
- `F:\RVKCMP\UPUB` - user-context public `RIGHTS` readback
- `F:\RVKCMP\UCOMP.LOG` - user-context `FC` comparisons
Covered cases:
The direct matrix covers:
- help and no-argument grammar
- normal directory revoke
- `ALL` revoke / trustee removal
- `/SUBDIRECTORIES` with trustees placed directly on child directories
- `/FILES` on an explicit file and on a directory file set
- relative path invocation from inside the test directory while invoking `\NPUBLIC\REVOKE` absolutely
- no trustee, missing user, missing path behavior, `/FILES` plus `/SUBDIRECTORIES` option-combination behavior, and bad grammar
- individual right removal: `R`, `W`, `C`, `E`, `M`, `F`, `A`, `S`
- mixed rights removal such as `R F`, `R W C`, `E M F`, `S W C M`
- `ALL` removal, which should delete the trustee entry
- file-specific mode with `/FILES`
- recursive directory mode with `/SUBDIRECTORIES`
- missing trustee, missing user, missing path, invalid right, bad grammar, and `/FILES /SUBDIRECTORIES`
This test is still Novell-baseline-only. Later comparison scripts should run the same command set through `NPUBLIC` and `PUBLIC` with normalized output.
Automatic user-context readback requires:
Notes from the first baseline run:
```bat
SET LGNTPWD=your-supervisor-password
F:\RVKSTA
```
- `REVOKE /SUBDIRECTORIES` did not exercise child paths unless trustees existed on the child directories themselves, so `D20` now uses `SUBTST\S1` and `SUBTST\S2` with direct trustee setup.
- Novell `REVOKE` may report `No trustee for the specified directory.` for a missing path before a separate missing-path diagnostic is reached; `D92` records that baseline behavior.
- `D93` now uses an independent tree with directory, file, and subdirectory trustees so the `/FILES /SUBDIRECTORIES` option combination is tested without being masked by missing trustee setup.
Retest focus after the fix:
`RVKC.BAT` is queued via `DLYSTRT`, logs in as `NOPASSUSER`, captures `RIGHTS` output for the matrix cases, logs SUPERVISOR back in, and then starts `RVKSTA PART2` to copy and compare the user-context results.
- `D20_SUBDIRS_REVOKE_CE.OUT` should no longer be masked by a missing trustee on the named root.
- `D92_MISSING_PATH.OUT` records the exact Novell diagnostic for a missing path, even if that diagnostic is still `No trustee for the specified directory.`
- `D93_FILES_AND_SUBDIRS.OUT` runs on a prepared tree with directory, file, and subdirectory trustees, so the `/FILES /SUBDIRECTORIES` combination is no longer masked by setup.
`RVKZIP.BAT` packs the result tree and cleans `F:\RVKTEST` and `C:\RVKTMP`.

168
test/revoke/RVKC.BAT Normal file
View File

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

View File

@@ -1,121 +1,698 @@
@ECHO OFF
REM RVKSTA.BAT
REM Automated REVOKE baseline test for MARS NWE.
REM Automated REVOKE comparison test for MARS NWE.
REM
REM Run as SUPERVISOR or a user with Access Control on F:\RVKTEST.
REM Uses \NPUBLIC\GRANT for setup and \NPUBLIC\REVOKE as Novell baseline.
REM Direct mode:
REM OUT = Novell baseline using \NPUBLIC\REVOKE
REM PUBOUT = our implementation using \PUBLIC\REVOKE
REM
REM Result tree:
REM F:\RVKCMP
REM Test tree:
REM F:\RVKTEST
REM User-context mode:
REM REVOKE runs as SUPERVISOR against NOPASSUSER.
REM DLYSTRT starts C:\RVKTMP\RVKC.BAT after this script exits.
REM RVKC logs in as NOPASSUSER and compares effective RIGHTS readback.
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: RVKSTA [PART2]
GOTO END
:PART1
F:
CD \
REM --- Clean generated test/result directories (contents only). ---
IF EXIST RVKTEST\NUL DELTREE /Y RVKTEST\*.*
IF EXIST RVKCMP\NUL DELTREE /Y RVKCMP\*.*
REM --- Clean generated test/result directories. ---
IF EXIST RVKTEST\*.* DELTREE /Y RVKTEST
IF EXIST RVKCMP\*.* DELTREE /Y RVKCMP
IF EXIST C:\RVKTMP\*.* DELTREE /Y C:\RVKTMP
IF NOT EXIST RVKTEST\NUL MD RVKTEST
IF NOT EXIST RVKTEST\ONE\NUL MD RVKTEST\ONE
IF NOT EXIST RVKTEST\TREE\NUL MD RVKTEST\TREE
IF NOT EXIST RVKTEST\TREE\SUB1\NUL MD RVKTEST\TREE\SUB1
IF NOT EXIST RVKTEST\TREE\SUB2\NUL MD RVKTEST\TREE\SUB2
IF NOT EXIST RVKTEST\SUBTST\NUL MD RVKTEST\SUBTST
IF NOT EXIST RVKTEST\SUBTST\S1\NUL MD RVKTEST\SUBTST\S1
IF NOT EXIST RVKTEST\SUBTST\S2\NUL MD RVKTEST\SUBTST\S2
IF NOT EXIST RVKTEST\OPTBOTH\NUL MD RVKTEST\OPTBOTH
IF NOT EXIST RVKTEST\OPTBOTH\SUB\NUL MD RVKTEST\OPTBOTH\SUB
IF NOT EXIST RVKTEST\FILES\NUL MD RVKTEST\FILES
IF NOT EXIST RVKTEST\EMPTY\NUL MD RVKTEST\EMPTY
IF NOT EXIST RVKCMP\NUL MD RVKCMP
IF NOT EXIST RVKCMP\OUT\NUL MD RVKCMP\OUT
IF NOT EXIST RVKCMP\SETUP\NUL MD RVKCMP\SETUP
IF NOT EXIST RVKTEST MD RVKTEST
IF NOT EXIST RVKTEST\G10 MD RVKTEST\G10
ECHO G10_R > F:\RVKTEST\G10\TEST.TXT
IF NOT EXIST RVKTEST\G11 MD RVKTEST\G11
ECHO G11_W > F:\RVKTEST\G11\TEST.TXT
IF NOT EXIST RVKTEST\G12 MD RVKTEST\G12
ECHO G12_C > F:\RVKTEST\G12\TEST.TXT
IF NOT EXIST RVKTEST\G13 MD RVKTEST\G13
ECHO G13_E > F:\RVKTEST\G13\TEST.TXT
IF NOT EXIST RVKTEST\G14 MD RVKTEST\G14
ECHO G14_M > F:\RVKTEST\G14\TEST.TXT
IF NOT EXIST RVKTEST\G15 MD RVKTEST\G15
ECHO G15_F > F:\RVKTEST\G15\TEST.TXT
IF NOT EXIST RVKTEST\G16 MD RVKTEST\G16
ECHO G16_A > F:\RVKTEST\G16\TEST.TXT
IF NOT EXIST RVKTEST\G17 MD RVKTEST\G17
ECHO G17_S > F:\RVKTEST\G17\TEST.TXT
IF NOT EXIST RVKTEST\G20 MD RVKTEST\G20
ECHO G20_RF > F:\RVKTEST\G20\TEST.TXT
IF NOT EXIST RVKTEST\G21 MD RVKTEST\G21
ECHO G21_RW > F:\RVKTEST\G21\TEST.TXT
IF NOT EXIST RVKTEST\G22 MD RVKTEST\G22
ECHO G22_RWC > F:\RVKTEST\G22\TEST.TXT
IF NOT EXIST RVKTEST\G23 MD RVKTEST\G23
ECHO G23_RWCE > F:\RVKTEST\G23\TEST.TXT
IF NOT EXIST RVKTEST\G24 MD RVKTEST\G24
ECHO G24_EMF > F:\RVKTEST\G24\TEST.TXT
IF NOT EXIST RVKTEST\G25 MD RVKTEST\G25
ECHO G25_SAL > F:\RVKTEST\G25\TEST.TXT
IF NOT EXIST RVKTEST\G26 MD RVKTEST\G26
ECHO G26_ALL > F:\RVKTEST\G26\TEST.TXT
IF NOT EXIST RVKTEST\G30 MD RVKTEST\G30
ECHO G30_RE > F:\RVKTEST\G30\TEST.TXT
IF NOT EXIST RVKTEST\G31 MD RVKTEST\G31
ECHO G31_RWF > F:\RVKTEST\G31\TEST.TXT
IF NOT EXIST RVKTEST\G32 MD RVKTEST\G32
ECHO G32_RCM > F:\RVKTEST\G32\TEST.TXT
IF NOT EXIST RVKTEST\G33 MD RVKTEST\G33
ECHO G33_RFA > F:\RVKTEST\G33\TEST.TXT
IF NOT EXIST RVKTEST\G34 MD RVKTEST\G34
ECHO G34_WCM > F:\RVKTEST\G34\TEST.TXT
IF NOT EXIST RVKTEST\G35 MD RVKTEST\G35
ECHO G35_EMF > F:\RVKTEST\G35\TEST.TXT
IF NOT EXIST RVKTEST\G36 MD RVKTEST\G36
ECHO G36_RMF > F:\RVKTEST\G36\TEST.TXT
IF NOT EXIST RVKTEST\G37 MD RVKTEST\G37
ECHO G37_REMA > F:\RVKTEST\G37\TEST.TXT
IF NOT EXIST RVKTEST\G38 MD RVKTEST\G38
ECHO G38_SR > F:\RVKTEST\G38\TEST.TXT
IF NOT EXIST RVKTEST\G39 MD RVKTEST\G39
ECHO G39_SRF > F:\RVKTEST\G39\TEST.TXT
IF NOT EXIST RVKTEST\G40 MD RVKTEST\G40
ECHO G40_SWCM > F:\RVKTEST\G40\TEST.TXT
IF NOT EXIST RVKTEST\F10 MD RVKTEST\F10
ECHO F10_R > F:\RVKTEST\F10\T.TXT
IF NOT EXIST RVKTEST\F11 MD RVKTEST\F11
ECHO F11_RF > F:\RVKTEST\F11\T.TXT
IF NOT EXIST RVKTEST\F12 MD RVKTEST\F12
ECHO F12_RAL > F:\RVKTEST\F12\T.TXT
IF NOT EXIST RVKTEST\F13 MD RVKTEST\F13
ECHO F13_ALL > F:\RVKTEST\F13\T.TXT
IF NOT EXIST RVKTEST\F14 MD RVKTEST\F14
ECHO F14_N > F:\RVKTEST\F14\T.TXT
IF NOT EXIST RVKTEST\F15 MD RVKTEST\F15
ECHO F15_S > F:\RVKTEST\F15\T.TXT
IF NOT EXIST RVKTEST\F16 MD RVKTEST\F16
ECHO F16_SAL > F:\RVKTEST\F16\T.TXT
IF NOT EXIST RVKTEST\S10 MD RVKTEST\S10
IF NOT EXIST RVKTEST\S10\S1 MD RVKTEST\S10\S1
IF NOT EXIST RVKTEST\S10\S2 MD RVKTEST\S10\S2
ECHO S10_R root > F:\RVKTEST\S10\ROOT.TXT
ECHO S10_R s1 > F:\RVKTEST\S10\S1\S1.TXT
ECHO S10_R s2 > F:\RVKTEST\S10\S2\S2.TXT
IF NOT EXIST RVKTEST\S11 MD RVKTEST\S11
IF NOT EXIST RVKTEST\S11\S1 MD RVKTEST\S11\S1
IF NOT EXIST RVKTEST\S11\S2 MD RVKTEST\S11\S2
ECHO S11_RWC root > F:\RVKTEST\S11\ROOT.TXT
ECHO S11_RWC s1 > F:\RVKTEST\S11\S1\S1.TXT
ECHO S11_RWC s2 > F:\RVKTEST\S11\S2\S2.TXT
IF NOT EXIST RVKTEST\S12 MD RVKTEST\S12
IF NOT EXIST RVKTEST\S12\S1 MD RVKTEST\S12\S1
IF NOT EXIST RVKTEST\S12\S2 MD RVKTEST\S12\S2
ECHO S12_ALL root > F:\RVKTEST\S12\ROOT.TXT
ECHO S12_ALL s1 > F:\RVKTEST\S12\S1\S1.TXT
ECHO S12_ALL s2 > F:\RVKTEST\S12\S2\S2.TXT
IF NOT EXIST RVKTEST\S13 MD RVKTEST\S13
IF NOT EXIST RVKTEST\S13\S1 MD RVKTEST\S13\S1
IF NOT EXIST RVKTEST\S13\S2 MD RVKTEST\S13\S2
ECHO S13_SAL root > F:\RVKTEST\S13\ROOT.TXT
ECHO S13_SAL s1 > F:\RVKTEST\S13\S1\S1.TXT
ECHO S13_SAL s2 > F:\RVKTEST\S13\S2\S2.TXT
IF NOT EXIST RVKTEST\EMPTY MD RVKTEST\EMPTY
IF NOT EXIST RVKTEST\OPTBOTH MD RVKTEST\OPTBOTH
IF NOT EXIST RVKTEST\OPTBOTH\SUB MD RVKTEST\OPTBOTH\SUB
ECHO E94 root > F:\RVKTEST\OPTBOTH\ROOT.TXT
ECHO E94 sub > F:\RVKTEST\OPTBOTH\SUB\SUB.TXT
ECHO REVOKE ONE FILE > F:\RVKTEST\ONE\ONE.TXT
ECHO REVOKE TREE FILE > F:\RVKTEST\TREE\TROOT.TXT
ECHO REVOKE SUB1 FILE > F:\RVKTEST\TREE\SUB1\SUB1.TXT
ECHO REVOKE SUB2 FILE > F:\RVKTEST\TREE\SUB2\SUB2.TXT
ECHO REVOKE SUBDIRECTORY S1 > F:\RVKTEST\SUBTST\S1\S1.TXT
ECHO REVOKE SUBDIRECTORY S2 > F:\RVKTEST\SUBTST\S2\S2.TXT
ECHO REVOKE OPTION ROOT > F:\RVKTEST\OPTBOTH\ROOT.TXT
ECHO REVOKE OPTION SUB > F:\RVKTEST\OPTBOTH\SUB\SUB.TXT
ECHO REVOKE FILE A > F:\RVKTEST\FILES\A.TXT
ECHO REVOKE FILE B > F:\RVKTEST\FILES\B.TXT
IF NOT EXIST RVKCMP MD RVKCMP
IF NOT EXIST RVKCMP\OUT MD RVKCMP\OUT
IF NOT EXIST RVKCMP\PUBOUT MD RVKCMP\PUBOUT
IF NOT EXIST RVKCMP\SETUP MD RVKCMP\SETUP
IF NOT EXIST RVKCMP\UNOV MD RVKCMP\UNOV
IF NOT EXIST RVKCMP\UPUB MD RVKCMP\UPUB
IF NOT EXIST RVKCMP\USETUP MD RVKCMP\USETUP
IF NOT EXIST C:\RVKTMP MD C:\RVKTMP
ECHO RVKSTA REVOKE baseline test > F:\RVKCMP\RUN.LOG
ECHO Run this as SUPERVISOR or equivalent. >> F:\RVKCMP\RUN.LOG
ECHO Setup uses \NPUBLIC\GRANT, test captures \NPUBLIC\REVOKE output for user MARIO. >> F:\RVKCMP\RUN.LOG
ECHO RVKSTA REVOKE comparison test > F:\RVKCMP\RUN.LOG
ECHO OUT = Novell baseline with \NPUBLIC\REVOKE >> F:\RVKCMP\RUN.LOG
ECHO PUBOUT = our implementation with \PUBLIC\REVOKE >> F:\RVKCMP\RUN.LOG
ECHO User-context target: NOPASSUSER >> F:\RVKCMP\RUN.LOG
ECHO. >> F:\RVKCMP\RUN.LOG
ECHO === SETUP grants === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\GRANT R W C E M F A FOR F:\RVKTEST\ONE TO USER MARIO > F:\RVKCMP\SETUP\S01_ONE_GRANT.OUT
\NPUBLIC\GRANT R W C E M F A FOR F:\RVKTEST\TREE TO USER MARIO /SUBDIRECTORIES > F:\RVKCMP\SETUP\S02_TREE_GRANT.OUT
\NPUBLIC\GRANT R W C E M F A FOR F:\RVKTEST\FILES\A.TXT TO USER MARIO /FILES > F:\RVKCMP\SETUP\S03_FILE_A_GRANT.OUT
\NPUBLIC\GRANT R W C E M F A FOR F:\RVKTEST\FILES\B.TXT TO USER MARIO /FILES > F:\RVKCMP\SETUP\S04_FILE_B_GRANT.OUT
REM Direct subdirectory trustees for D20, because REVOKE /SUBDIRECTORIES acts on trustees below the named directory.
\NPUBLIC\GRANT R W C E M F A FOR F:\RVKTEST\SUBTST\S1 TO USER MARIO > F:\RVKCMP\SETUP\S05_SUBTST_S1_GRANT.OUT
\NPUBLIC\GRANT R W C E M F A FOR F:\RVKTEST\SUBTST\S2 TO USER MARIO > F:\RVKCMP\SETUP\S06_SUBTST_S2_GRANT.OUT
REM Independent tree with both files and subdirectories for D93 option-combination behavior.
\NPUBLIC\GRANT R W C E M F A FOR F:\RVKTEST\OPTBOTH TO USER MARIO > F:\RVKCMP\SETUP\S07_OPTBOTH_ROOT_GRANT.OUT
\NPUBLIC\GRANT R W C E M F A FOR F:\RVKTEST\OPTBOTH\SUB TO USER MARIO > F:\RVKCMP\SETUP\S08_OPTBOTH_SUB_GRANT.OUT
\NPUBLIC\GRANT R W C E M F A FOR F:\RVKTEST\OPTBOTH\ROOT.TXT TO USER MARIO /FILES > F:\RVKCMP\SETUP\S09_OPTBOTH_FILE_GRANT.OUT
ECHO === D01 usage/help === >> F:\RVKCMP\RUN.LOG
ECHO Starting D01_HELP...
\NPUBLIC\REVOKE /? > F:\RVKCMP\OUT\D01_HELP.OUT
\PUBLIC\REVOKE /? > F:\RVKCMP\PUBOUT\D01_HELP.OUT
ECHO Starting D02_NOAR...
\NPUBLIC\REVOKE > F:\RVKCMP\OUT\D02_NOAR.OUT
\PUBLIC\REVOKE > F:\RVKCMP\PUBOUT\D02_NOAR.OUT
ECHO === D02 no arguments === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\REVOKE > F:\RVKCMP\OUT\D02_NOARGS.OUT
ECHO Starting G10_R directory revoke R...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G10 > F:\RVKCMP\SETUP\G10_R_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G10 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G10_R_NGRANT.OUT
\NPUBLIC\REVOKE R FOR F:\RVKTEST\G10 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G10_R.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G10 > F:\RVKCMP\SETUP\G10_R_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G10 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G10_R_PGRANT.OUT
\PUBLIC\REVOKE R FOR F:\RVKTEST\G10 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G10_R.OUT
ECHO === D10 revoke W M from directory === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\REVOKE W M FOR F:\RVKTEST\ONE FROM USER MARIO > F:\RVKCMP\OUT\D10_DIR_REVOKE_WM.OUT
ECHO Starting G11_W directory revoke W...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G11 > F:\RVKCMP\SETUP\G11_W_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G11 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G11_W_NGRANT.OUT
\NPUBLIC\REVOKE W FOR F:\RVKTEST\G11 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G11_W.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G11 > F:\RVKCMP\SETUP\G11_W_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G11 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G11_W_PGRANT.OUT
\PUBLIC\REVOKE W FOR F:\RVKTEST\G11 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G11_W.OUT
ECHO === D11 revoke ALL from directory / remove trustee === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\REVOKE ALL FOR F:\RVKTEST\ONE FROM USER MARIO > F:\RVKCMP\OUT\D11_DIR_REVOKE_ALL.OUT
ECHO Starting G12_C directory revoke C...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G12 > F:\RVKCMP\SETUP\G12_C_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G12 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G12_C_NGRANT.OUT
\NPUBLIC\REVOKE C FOR F:\RVKTEST\G12 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G12_C.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G12 > F:\RVKCMP\SETUP\G12_C_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G12 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G12_C_PGRANT.OUT
\PUBLIC\REVOKE C FOR F:\RVKTEST\G12 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G12_C.OUT
ECHO === D20 revoke C E recursively from direct subdirectory trustees === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\REVOKE C E FOR F:\RVKTEST\SUBTST FROM USER MARIO /SUBDIRECTORIES > F:\RVKCMP\OUT\D20_SUBDIRS_REVOKE_CE.OUT
ECHO Starting G13_E directory revoke E...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G13 > F:\RVKCMP\SETUP\G13_E_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G13 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G13_E_NGRANT.OUT
\NPUBLIC\REVOKE E FOR F:\RVKTEST\G13 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G13_E.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G13 > F:\RVKCMP\SETUP\G13_E_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G13 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G13_E_PGRANT.OUT
\PUBLIC\REVOKE E FOR F:\RVKTEST\G13 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G13_E.OUT
ECHO === D21 revoke R from one explicit file === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\REVOKE R FOR F:\RVKTEST\FILES\A.TXT FROM USER MARIO /FILES > F:\RVKCMP\OUT\D21_FILE_REVOKE_R.OUT
ECHO Starting G14_M directory revoke M...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G14 > F:\RVKCMP\SETUP\G14_M_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G14 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G14_M_NGRANT.OUT
\NPUBLIC\REVOKE M FOR F:\RVKTEST\G14 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G14_M.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G14 > F:\RVKCMP\SETUP\G14_M_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G14 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G14_M_PGRANT.OUT
\PUBLIC\REVOKE M FOR F:\RVKTEST\G14 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G14_M.OUT
ECHO === D22 revoke W from files in a directory === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\REVOKE W FOR F:\RVKTEST\FILES FROM USER MARIO /FILES > F:\RVKCMP\OUT\D22_FILES_DIR_REVOKE_W.OUT
ECHO Starting G15_F directory revoke F...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G15 > F:\RVKCMP\SETUP\G15_F_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G15 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G15_F_NGRANT.OUT
\NPUBLIC\REVOKE F FOR F:\RVKTEST\G15 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G15_F.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G15 > F:\RVKCMP\SETUP\G15_F_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G15 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G15_F_PGRANT.OUT
\PUBLIC\REVOKE F FOR F:\RVKTEST\G15 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G15_F.OUT
ECHO === D30 relative path from F:\RVKTEST === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\GRANT R W C E M F A FOR F:\RVKTEST\ONE TO USER MARIO > F:\RVKCMP\SETUP\S30_ONE_REGRANT.OUT
CD \RVKTEST
\NPUBLIC\REVOKE W FOR ONE FROM USER MARIO > F:\RVKCMP\OUT\D30_REL_DIR_REVOKE_W.OUT
ECHO Starting G16_A directory revoke A...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G16 > F:\RVKCMP\SETUP\G16_A_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G16 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G16_A_NGRANT.OUT
\NPUBLIC\REVOKE A FOR F:\RVKTEST\G16 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G16_A.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G16 > F:\RVKCMP\SETUP\G16_A_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G16 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G16_A_PGRANT.OUT
\PUBLIC\REVOKE A FOR F:\RVKTEST\G16 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G16_A.OUT
ECHO Starting G17_S directory revoke S...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G17 > F:\RVKCMP\SETUP\G17_S_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G17 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G17_S_NGRANT.OUT
\NPUBLIC\REVOKE S FOR F:\RVKTEST\G17 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G17_S.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G17 > F:\RVKCMP\SETUP\G17_S_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G17 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G17_S_PGRANT.OUT
\PUBLIC\REVOKE S FOR F:\RVKTEST\G17 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G17_S.OUT
ECHO Starting G20_RF directory revoke R F...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G20 > F:\RVKCMP\SETUP\G20_RF_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G20 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G20_RF_NGRANT.OUT
\NPUBLIC\REVOKE R F FOR F:\RVKTEST\G20 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G20_RF.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G20 > F:\RVKCMP\SETUP\G20_RF_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G20 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G20_RF_PGRANT.OUT
\PUBLIC\REVOKE R F FOR F:\RVKTEST\G20 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G20_RF.OUT
ECHO Starting G21_RW directory revoke R W...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G21 > F:\RVKCMP\SETUP\G21_RW_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G21 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G21_RW_NGRANT.OUT
\NPUBLIC\REVOKE R W FOR F:\RVKTEST\G21 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G21_RW.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G21 > F:\RVKCMP\SETUP\G21_RW_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G21 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G21_RW_PGRANT.OUT
\PUBLIC\REVOKE R W FOR F:\RVKTEST\G21 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G21_RW.OUT
ECHO Starting G22_RWC directory revoke R W C...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G22 > F:\RVKCMP\SETUP\G22_RWC_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G22 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G22_RWC_NGRANT.OUT
\NPUBLIC\REVOKE R W C FOR F:\RVKTEST\G22 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G22_RWC.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G22 > F:\RVKCMP\SETUP\G22_RWC_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G22 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G22_RWC_PGRANT.OUT
\PUBLIC\REVOKE R W C FOR F:\RVKTEST\G22 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G22_RWC.OUT
ECHO Starting G23_RWCE directory revoke R W C E...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G23 > F:\RVKCMP\SETUP\G23_RWCE_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G23 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G23_RWCE_NGRANT.OUT
\NPUBLIC\REVOKE R W C E FOR F:\RVKTEST\G23 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G23_RWCE.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G23 > F:\RVKCMP\SETUP\G23_RWCE_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G23 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G23_RWCE_PGRANT.OUT
\PUBLIC\REVOKE R W C E FOR F:\RVKTEST\G23 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G23_RWCE.OUT
ECHO Starting G24_EMF directory revoke E M F...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G24 > F:\RVKCMP\SETUP\G24_EMF_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G24 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G24_EMF_NGRANT.OUT
\NPUBLIC\REVOKE E M F FOR F:\RVKTEST\G24 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G24_EMF.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G24 > F:\RVKCMP\SETUP\G24_EMF_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G24 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G24_EMF_PGRANT.OUT
\PUBLIC\REVOKE E M F FOR F:\RVKTEST\G24 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G24_EMF.OUT
ECHO Starting G25_SAL directory revoke S A...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G25 > F:\RVKCMP\SETUP\G25_SAL_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G25 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G25_SAL_NGRANT.OUT
\NPUBLIC\REVOKE S A FOR F:\RVKTEST\G25 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G25_SAL.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G25 > F:\RVKCMP\SETUP\G25_SAL_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G25 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G25_SAL_PGRANT.OUT
\PUBLIC\REVOKE S A FOR F:\RVKTEST\G25 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G25_SAL.OUT
ECHO Starting G26_ALL directory revoke ALL...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G26 > F:\RVKCMP\SETUP\G26_ALL_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G26 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G26_ALL_NGRANT.OUT
\NPUBLIC\REVOKE ALL FOR F:\RVKTEST\G26 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G26_ALL.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G26 > F:\RVKCMP\SETUP\G26_ALL_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G26 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G26_ALL_PGRANT.OUT
\PUBLIC\REVOKE ALL FOR F:\RVKTEST\G26 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G26_ALL.OUT
ECHO Starting G30_RE directory revoke R E...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G30 > F:\RVKCMP\SETUP\G30_RE_NREM.OUT
\NPUBLIC\GRANT R E FOR F:\RVKTEST\G30 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G30_RE_NGRANT.OUT
\NPUBLIC\REVOKE R FOR F:\RVKTEST\G30 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G30_RE.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G30 > F:\RVKCMP\SETUP\G30_RE_PREM.OUT
\NPUBLIC\GRANT R E FOR F:\RVKTEST\G30 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G30_RE_PGRANT.OUT
\PUBLIC\REVOKE R FOR F:\RVKTEST\G30 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G30_RE.OUT
ECHO Starting G31_RWF directory revoke W from R W F...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G31 > F:\RVKCMP\SETUP\G31_RWF_NREM.OUT
\NPUBLIC\GRANT R W F FOR F:\RVKTEST\G31 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G31_RWF_NGRANT.OUT
\NPUBLIC\REVOKE W FOR F:\RVKTEST\G31 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G31_RWF.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G31 > F:\RVKCMP\SETUP\G31_RWF_PREM.OUT
\NPUBLIC\GRANT R W F FOR F:\RVKTEST\G31 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G31_RWF_PGRANT.OUT
\PUBLIC\REVOKE W FOR F:\RVKTEST\G31 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G31_RWF.OUT
ECHO Starting G32_RCM directory revoke C from R C M...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G32 > F:\RVKCMP\SETUP\G32_RCM_NREM.OUT
\NPUBLIC\GRANT R C M FOR F:\RVKTEST\G32 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G32_RCM_NGRANT.OUT
\NPUBLIC\REVOKE C FOR F:\RVKTEST\G32 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G32_RCM.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G32 > F:\RVKCMP\SETUP\G32_RCM_PREM.OUT
\NPUBLIC\GRANT R C M FOR F:\RVKTEST\G32 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G32_RCM_PGRANT.OUT
\PUBLIC\REVOKE C FOR F:\RVKTEST\G32 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G32_RCM.OUT
ECHO Starting G33_RFA directory revoke F A from R F A...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G33 > F:\RVKCMP\SETUP\G33_RFA_NREM.OUT
\NPUBLIC\GRANT R F A FOR F:\RVKTEST\G33 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G33_RFA_NGRANT.OUT
\NPUBLIC\REVOKE F A FOR F:\RVKTEST\G33 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G33_RFA.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G33 > F:\RVKCMP\SETUP\G33_RFA_PREM.OUT
\NPUBLIC\GRANT R F A FOR F:\RVKTEST\G33 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G33_RFA_PGRANT.OUT
\PUBLIC\REVOKE F A FOR F:\RVKTEST\G33 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G33_RFA.OUT
ECHO Starting G34_WCM directory revoke W C from W C M...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G34 > F:\RVKCMP\SETUP\G34_WCM_NREM.OUT
\NPUBLIC\GRANT W C M FOR F:\RVKTEST\G34 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G34_WCM_NGRANT.OUT
\NPUBLIC\REVOKE W C FOR F:\RVKTEST\G34 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G34_WCM.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G34 > F:\RVKCMP\SETUP\G34_WCM_PREM.OUT
\NPUBLIC\GRANT W C M FOR F:\RVKTEST\G34 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G34_WCM_PGRANT.OUT
\PUBLIC\REVOKE W C FOR F:\RVKTEST\G34 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G34_WCM.OUT
ECHO Starting G35_EMF directory revoke E M from E M F...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G35 > F:\RVKCMP\SETUP\G35_EMF_NREM.OUT
\NPUBLIC\GRANT E M F FOR F:\RVKTEST\G35 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G35_EMF_NGRANT.OUT
\NPUBLIC\REVOKE E M FOR F:\RVKTEST\G35 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G35_EMF.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G35 > F:\RVKCMP\SETUP\G35_EMF_PREM.OUT
\NPUBLIC\GRANT E M F FOR F:\RVKTEST\G35 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G35_EMF_PGRANT.OUT
\PUBLIC\REVOKE E M FOR F:\RVKTEST\G35 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G35_EMF.OUT
ECHO Starting G36_RMF directory revoke M from R M F...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G36 > F:\RVKCMP\SETUP\G36_RMF_NREM.OUT
\NPUBLIC\GRANT R M F FOR F:\RVKTEST\G36 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G36_RMF_NGRANT.OUT
\NPUBLIC\REVOKE M FOR F:\RVKTEST\G36 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G36_RMF.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G36 > F:\RVKCMP\SETUP\G36_RMF_PREM.OUT
\NPUBLIC\GRANT R M F FOR F:\RVKTEST\G36 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G36_RMF_PGRANT.OUT
\PUBLIC\REVOKE M FOR F:\RVKTEST\G36 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G36_RMF.OUT
ECHO Starting G37_REMA directory revoke R E M A...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G37 > F:\RVKCMP\SETUP\G37_REMA_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G37 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G37_REMA_NGRANT.OUT
\NPUBLIC\REVOKE R E M A FOR F:\RVKTEST\G37 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G37_REMA.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G37 > F:\RVKCMP\SETUP\G37_REMA_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G37 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G37_REMA_PGRANT.OUT
\PUBLIC\REVOKE R E M A FOR F:\RVKTEST\G37 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G37_REMA.OUT
ECHO Starting G38_SR directory revoke S R...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G38 > F:\RVKCMP\SETUP\G38_SR_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G38 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G38_SR_NGRANT.OUT
\NPUBLIC\REVOKE S R FOR F:\RVKTEST\G38 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G38_SR.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G38 > F:\RVKCMP\SETUP\G38_SR_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G38 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G38_SR_PGRANT.OUT
\PUBLIC\REVOKE S R FOR F:\RVKTEST\G38 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G38_SR.OUT
ECHO Starting G39_SRF directory revoke S R F...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G39 > F:\RVKCMP\SETUP\G39_SRF_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G39 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G39_SRF_NGRANT.OUT
\NPUBLIC\REVOKE S R F FOR F:\RVKTEST\G39 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G39_SRF.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G39 > F:\RVKCMP\SETUP\G39_SRF_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G39 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G39_SRF_PGRANT.OUT
\PUBLIC\REVOKE S R F FOR F:\RVKTEST\G39 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G39_SRF.OUT
ECHO Starting G40_SWCM directory revoke S W C M...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G40 > F:\RVKCMP\SETUP\G40_SWCM_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G40 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G40_SWCM_NGRANT.OUT
\NPUBLIC\REVOKE S W C M FOR F:\RVKTEST\G40 FROM USER NOPASSUSER > F:\RVKCMP\OUT\G40_SWCM.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\G40 > F:\RVKCMP\SETUP\G40_SWCM_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\G40 TO USER NOPASSUSER > F:\RVKCMP\SETUP\G40_SWCM_PGRANT.OUT
\PUBLIC\REVOKE S W C M FOR F:\RVKTEST\G40 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\G40_SWCM.OUT
ECHO Starting F10_R file revoke R...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\F10\T.TXT /FILES > F:\RVKCMP\SETUP\F10_R_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\F10\T.TXT TO USER NOPASSUSER /FILES > F:\RVKCMP\SETUP\F10_R_NGRANT.OUT
\NPUBLIC\REVOKE R FOR F:\RVKTEST\F10\T.TXT FROM USER NOPASSUSER /FILES > F:\RVKCMP\OUT\F10_R.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\F10\T.TXT /FILES > F:\RVKCMP\SETUP\F10_R_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\F10\T.TXT TO USER NOPASSUSER /FILES > F:\RVKCMP\SETUP\F10_R_PGRANT.OUT
\PUBLIC\REVOKE R FOR F:\RVKTEST\F10\T.TXT FROM USER NOPASSUSER /FILES > F:\RVKCMP\PUBOUT\F10_R.OUT
ECHO Starting F11_RF file revoke R F...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\F11\T.TXT /FILES > F:\RVKCMP\SETUP\F11_RF_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\F11\T.TXT TO USER NOPASSUSER /FILES > F:\RVKCMP\SETUP\F11_RF_NGRANT.OUT
\NPUBLIC\REVOKE R F FOR F:\RVKTEST\F11\T.TXT FROM USER NOPASSUSER /FILES > F:\RVKCMP\OUT\F11_RF.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\F11\T.TXT /FILES > F:\RVKCMP\SETUP\F11_RF_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\F11\T.TXT TO USER NOPASSUSER /FILES > F:\RVKCMP\SETUP\F11_RF_PGRANT.OUT
\PUBLIC\REVOKE R F FOR F:\RVKTEST\F11\T.TXT FROM USER NOPASSUSER /FILES > F:\RVKCMP\PUBOUT\F11_RF.OUT
ECHO Starting F12_RAL file revoke R A...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\F12\T.TXT /FILES > F:\RVKCMP\SETUP\F12_RAL_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\F12\T.TXT TO USER NOPASSUSER /FILES > F:\RVKCMP\SETUP\F12_RAL_NGRANT.OUT
\NPUBLIC\REVOKE R A FOR F:\RVKTEST\F12\T.TXT FROM USER NOPASSUSER /FILES > F:\RVKCMP\OUT\F12_RAL.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\F12\T.TXT /FILES > F:\RVKCMP\SETUP\F12_RAL_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\F12\T.TXT TO USER NOPASSUSER /FILES > F:\RVKCMP\SETUP\F12_RAL_PGRANT.OUT
\PUBLIC\REVOKE R A FOR F:\RVKTEST\F12\T.TXT FROM USER NOPASSUSER /FILES > F:\RVKCMP\PUBOUT\F12_RAL.OUT
ECHO Starting F13_ALL file revoke ALL...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\F13\T.TXT /FILES > F:\RVKCMP\SETUP\F13_ALL_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\F13\T.TXT TO USER NOPASSUSER /FILES > F:\RVKCMP\SETUP\F13_ALL_NGRANT.OUT
\NPUBLIC\REVOKE ALL FOR F:\RVKTEST\F13\T.TXT FROM USER NOPASSUSER /FILES > F:\RVKCMP\OUT\F13_ALL.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\F13\T.TXT /FILES > F:\RVKCMP\SETUP\F13_ALL_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\F13\T.TXT TO USER NOPASSUSER /FILES > F:\RVKCMP\SETUP\F13_ALL_PGRANT.OUT
\PUBLIC\REVOKE ALL FOR F:\RVKTEST\F13\T.TXT FROM USER NOPASSUSER /FILES > F:\RVKCMP\PUBOUT\F13_ALL.OUT
ECHO Starting F14_N file revoke W from R W...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\F14\T.TXT /FILES > F:\RVKCMP\SETUP\F14_N_NREM.OUT
\NPUBLIC\GRANT R W FOR F:\RVKTEST\F14\T.TXT TO USER NOPASSUSER /FILES > F:\RVKCMP\SETUP\F14_N_NGRANT.OUT
\NPUBLIC\REVOKE W FOR F:\RVKTEST\F14\T.TXT FROM USER NOPASSUSER /FILES > F:\RVKCMP\OUT\F14_N.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\F14\T.TXT /FILES > F:\RVKCMP\SETUP\F14_N_PREM.OUT
\NPUBLIC\GRANT R W FOR F:\RVKTEST\F14\T.TXT TO USER NOPASSUSER /FILES > F:\RVKCMP\SETUP\F14_N_PGRANT.OUT
\PUBLIC\REVOKE W FOR F:\RVKTEST\F14\T.TXT FROM USER NOPASSUSER /FILES > F:\RVKCMP\PUBOUT\F14_N.OUT
ECHO Starting F15_S file revoke S...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\F15\T.TXT /FILES > F:\RVKCMP\SETUP\F15_S_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\F15\T.TXT TO USER NOPASSUSER /FILES > F:\RVKCMP\SETUP\F15_S_NGRANT.OUT
\NPUBLIC\REVOKE S FOR F:\RVKTEST\F15\T.TXT FROM USER NOPASSUSER /FILES > F:\RVKCMP\OUT\F15_S.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\F15\T.TXT /FILES > F:\RVKCMP\SETUP\F15_S_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\F15\T.TXT TO USER NOPASSUSER /FILES > F:\RVKCMP\SETUP\F15_S_PGRANT.OUT
\PUBLIC\REVOKE S FOR F:\RVKTEST\F15\T.TXT FROM USER NOPASSUSER /FILES > F:\RVKCMP\PUBOUT\F15_S.OUT
ECHO Starting F16_SAL file revoke S A...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\F16\T.TXT /FILES > F:\RVKCMP\SETUP\F16_SAL_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\F16\T.TXT TO USER NOPASSUSER /FILES > F:\RVKCMP\SETUP\F16_SAL_NGRANT.OUT
\NPUBLIC\REVOKE S A FOR F:\RVKTEST\F16\T.TXT FROM USER NOPASSUSER /FILES > F:\RVKCMP\OUT\F16_SAL.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\F16\T.TXT /FILES > F:\RVKCMP\SETUP\F16_SAL_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\F16\T.TXT TO USER NOPASSUSER /FILES > F:\RVKCMP\SETUP\F16_SAL_PGRANT.OUT
\PUBLIC\REVOKE S A FOR F:\RVKTEST\F16\T.TXT FROM USER NOPASSUSER /FILES > F:\RVKCMP\PUBOUT\F16_SAL.OUT
ECHO Starting S10_R subdirectory revoke R...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\S10 /SUBDIRECTORIES > F:\RVKCMP\SETUP\S10_R_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\S10 TO USER NOPASSUSER /SUBDIRECTORIES > F:\RVKCMP\SETUP\S10_R_NGRANT.OUT
\NPUBLIC\REVOKE R FOR F:\RVKTEST\S10 FROM USER NOPASSUSER /SUBDIRECTORIES > F:\RVKCMP\OUT\S10_R.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\S10 /SUBDIRECTORIES > F:\RVKCMP\SETUP\S10_R_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\S10 TO USER NOPASSUSER /SUBDIRECTORIES > F:\RVKCMP\SETUP\S10_R_PGRANT.OUT
\PUBLIC\REVOKE R FOR F:\RVKTEST\S10 FROM USER NOPASSUSER /SUBDIRECTORIES > F:\RVKCMP\PUBOUT\S10_R.OUT
ECHO Starting S11_RWC subdirectory revoke R W C...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\S11 /SUBDIRECTORIES > F:\RVKCMP\SETUP\S11_RWC_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\S11 TO USER NOPASSUSER /SUBDIRECTORIES > F:\RVKCMP\SETUP\S11_RWC_NGRANT.OUT
\NPUBLIC\REVOKE R W C FOR F:\RVKTEST\S11 FROM USER NOPASSUSER /SUBDIRECTORIES > F:\RVKCMP\OUT\S11_RWC.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\S11 /SUBDIRECTORIES > F:\RVKCMP\SETUP\S11_RWC_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\S11 TO USER NOPASSUSER /SUBDIRECTORIES > F:\RVKCMP\SETUP\S11_RWC_PGRANT.OUT
\PUBLIC\REVOKE R W C FOR F:\RVKTEST\S11 FROM USER NOPASSUSER /SUBDIRECTORIES > F:\RVKCMP\PUBOUT\S11_RWC.OUT
ECHO Starting S12_ALL subdirectory revoke ALL...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\S12 /SUBDIRECTORIES > F:\RVKCMP\SETUP\S12_ALL_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\S12 TO USER NOPASSUSER /SUBDIRECTORIES > F:\RVKCMP\SETUP\S12_ALL_NGRANT.OUT
\NPUBLIC\REVOKE ALL FOR F:\RVKTEST\S12 FROM USER NOPASSUSER /SUBDIRECTORIES > F:\RVKCMP\OUT\S12_ALL.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\S12 /SUBDIRECTORIES > F:\RVKCMP\SETUP\S12_ALL_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\S12 TO USER NOPASSUSER /SUBDIRECTORIES > F:\RVKCMP\SETUP\S12_ALL_PGRANT.OUT
\PUBLIC\REVOKE ALL FOR F:\RVKTEST\S12 FROM USER NOPASSUSER /SUBDIRECTORIES > F:\RVKCMP\PUBOUT\S12_ALL.OUT
ECHO Starting S13_SAL subdirectory revoke S A...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\S13 /SUBDIRECTORIES > F:\RVKCMP\SETUP\S13_SAL_NREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\S13 TO USER NOPASSUSER /SUBDIRECTORIES > F:\RVKCMP\SETUP\S13_SAL_NGRANT.OUT
\NPUBLIC\REVOKE S A FOR F:\RVKTEST\S13 FROM USER NOPASSUSER /SUBDIRECTORIES > F:\RVKCMP\OUT\S13_SAL.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\S13 /SUBDIRECTORIES > F:\RVKCMP\SETUP\S13_SAL_PREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\S13 TO USER NOPASSUSER /SUBDIRECTORIES > F:\RVKCMP\SETUP\S13_SAL_PGRANT.OUT
\PUBLIC\REVOKE S A FOR F:\RVKTEST\S13 FROM USER NOPASSUSER /SUBDIRECTORIES > F:\RVKCMP\PUBOUT\S13_SAL.OUT
ECHO Starting E90_NOTR no trustee...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\EMPTY > F:\RVKCMP\SETUP\E90_NREM.OUT
\NPUBLIC\REVOKE R FOR F:\RVKTEST\EMPTY FROM USER NOPASSUSER > F:\RVKCMP\OUT\E90_NOTR.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\EMPTY > F:\RVKCMP\SETUP\E90_PREM.OUT
\PUBLIC\REVOKE R FOR F:\RVKTEST\EMPTY FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\E90_NOTR.OUT
ECHO Starting E91_MUSR missing user...
\NPUBLIC\REVOKE R FOR F:\RVKTEST\G10 FROM USER NO_SUCH_USER > F:\RVKCMP\OUT\E91_MUSR.OUT
\PUBLIC\REVOKE R FOR F:\RVKTEST\G10 FROM USER NO_SUCH_USER > F:\RVKCMP\PUBOUT\E91_MUSR.OUT
ECHO Starting E92_MISD missing path...
\NPUBLIC\REVOKE R FOR F:\RVKTEST\MISSING\NOFILE.TXT FROM USER NOPASSUSER > F:\RVKCMP\OUT\E92_MISD.OUT
\PUBLIC\REVOKE R FOR F:\RVKTEST\MISSING\NOFILE.TXT FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\E92_MISD.OUT
ECHO Starting E93_BADD invalid right...
\NPUBLIC\REVOKE BADRIGHT FOR F:\RVKTEST\G10 FROM USER NOPASSUSER > F:\RVKCMP\OUT\E93_BADD.OUT
\PUBLIC\REVOKE BADRIGHT FOR F:\RVKTEST\G10 FROM USER NOPASSUSER > F:\RVKCMP\PUBOUT\E93_BADD.OUT
ECHO Starting E94_BOTH /FILES and /SUBDIRECTORIES...
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\OPTBOTH /FILES > F:\RVKCMP\SETUP\E94_NFREM.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\OPTBOTH /SUBDIRECTORIES > F:\RVKCMP\SETUP\E94_NSREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\OPTBOTH TO USER NOPASSUSER /FILES > F:\RVKCMP\SETUP\E94_NFGRANT.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\OPTBOTH TO USER NOPASSUSER /SUBDIRECTORIES > F:\RVKCMP\SETUP\E94_NSGRANT.OUT
\NPUBLIC\REVOKE R FOR F:\RVKTEST\OPTBOTH FROM USER NOPASSUSER /FILES /SUBDIRECTORIES > F:\RVKCMP\OUT\E94_BOTH.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\OPTBOTH /FILES > F:\RVKCMP\SETUP\E94_PFREM.OUT
\NPUBLIC\REMOVE USER NOPASSUSER FROM F:\RVKTEST\OPTBOTH /SUBDIRECTORIES > F:\RVKCMP\SETUP\E94_PSREM.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\OPTBOTH TO USER NOPASSUSER /FILES > F:\RVKCMP\SETUP\E94_PFGRANT.OUT
\NPUBLIC\GRANT S R W C E M F A FOR F:\RVKTEST\OPTBOTH TO USER NOPASSUSER /SUBDIRECTORIES > F:\RVKCMP\SETUP\E94_PSGRANT.OUT
\PUBLIC\REVOKE R FOR F:\RVKTEST\OPTBOTH FROM USER NOPASSUSER /FILES /SUBDIRECTORIES > F:\RVKCMP\PUBOUT\E94_BOTH.OUT
ECHO Starting E95_GRAM bad grammar...
\NPUBLIC\REVOKE R FOR F:\RVKTEST\G10 USER NOPASSUSER > F:\RVKCMP\OUT\E95_GRAM.OUT
\PUBLIC\REVOKE R FOR F:\RVKTEST\G10 USER NOPASSUSER > F:\RVKCMP\PUBOUT\E95_GRAM.OUT
ECHO === COMPARE NOVELL OUT AGAINST PUBLIC OUT === > F:\RVKCMP\COMPARE.LOG
ECHO Comparing D01_HELP >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\D01_HELP.OUT F:\RVKCMP\PUBOUT\D01_HELP.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing D02_NOAR >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\D02_NOAR.OUT F:\RVKCMP\PUBOUT\D02_NOAR.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G10_R >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G10_R.OUT F:\RVKCMP\PUBOUT\G10_R.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G11_W >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G11_W.OUT F:\RVKCMP\PUBOUT\G11_W.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G12_C >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G12_C.OUT F:\RVKCMP\PUBOUT\G12_C.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G13_E >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G13_E.OUT F:\RVKCMP\PUBOUT\G13_E.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G14_M >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G14_M.OUT F:\RVKCMP\PUBOUT\G14_M.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G15_F >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G15_F.OUT F:\RVKCMP\PUBOUT\G15_F.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G16_A >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G16_A.OUT F:\RVKCMP\PUBOUT\G16_A.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G17_S >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G17_S.OUT F:\RVKCMP\PUBOUT\G17_S.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G20_RF >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G20_RF.OUT F:\RVKCMP\PUBOUT\G20_RF.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G21_RW >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G21_RW.OUT F:\RVKCMP\PUBOUT\G21_RW.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G22_RWC >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G22_RWC.OUT F:\RVKCMP\PUBOUT\G22_RWC.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G23_RWCE >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G23_RWCE.OUT F:\RVKCMP\PUBOUT\G23_RWCE.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G24_EMF >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G24_EMF.OUT F:\RVKCMP\PUBOUT\G24_EMF.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G25_SAL >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G25_SAL.OUT F:\RVKCMP\PUBOUT\G25_SAL.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G26_ALL >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G26_ALL.OUT F:\RVKCMP\PUBOUT\G26_ALL.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G30_RE >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G30_RE.OUT F:\RVKCMP\PUBOUT\G30_RE.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G31_RWF >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G31_RWF.OUT F:\RVKCMP\PUBOUT\G31_RWF.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G32_RCM >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G32_RCM.OUT F:\RVKCMP\PUBOUT\G32_RCM.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G33_RFA >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G33_RFA.OUT F:\RVKCMP\PUBOUT\G33_RFA.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G34_WCM >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G34_WCM.OUT F:\RVKCMP\PUBOUT\G34_WCM.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G35_EMF >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G35_EMF.OUT F:\RVKCMP\PUBOUT\G35_EMF.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G36_RMF >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G36_RMF.OUT F:\RVKCMP\PUBOUT\G36_RMF.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G37_REMA >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G37_REMA.OUT F:\RVKCMP\PUBOUT\G37_REMA.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G38_SR >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G38_SR.OUT F:\RVKCMP\PUBOUT\G38_SR.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G39_SRF >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G39_SRF.OUT F:\RVKCMP\PUBOUT\G39_SRF.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing G40_SWCM >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\G40_SWCM.OUT F:\RVKCMP\PUBOUT\G40_SWCM.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing F10_R >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\F10_R.OUT F:\RVKCMP\PUBOUT\F10_R.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing F11_RF >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\F11_RF.OUT F:\RVKCMP\PUBOUT\F11_RF.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing F12_RAL >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\F12_RAL.OUT F:\RVKCMP\PUBOUT\F12_RAL.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing F13_ALL >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\F13_ALL.OUT F:\RVKCMP\PUBOUT\F13_ALL.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing F14_N >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\F14_N.OUT F:\RVKCMP\PUBOUT\F14_N.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing F15_S >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\F15_S.OUT F:\RVKCMP\PUBOUT\F15_S.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing F16_SAL >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\F16_SAL.OUT F:\RVKCMP\PUBOUT\F16_SAL.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing S10_R >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\S10_R.OUT F:\RVKCMP\PUBOUT\S10_R.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing S11_RWC >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\S11_RWC.OUT F:\RVKCMP\PUBOUT\S11_RWC.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing S12_ALL >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\S12_ALL.OUT F:\RVKCMP\PUBOUT\S12_ALL.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing S13_SAL >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\S13_SAL.OUT F:\RVKCMP\PUBOUT\S13_SAL.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing E90_NOTR >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\E90_NOTR.OUT F:\RVKCMP\PUBOUT\E90_NOTR.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing E91_MUSR >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\E91_MUSR.OUT F:\RVKCMP\PUBOUT\E91_MUSR.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing E92_MISD >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\E92_MISD.OUT F:\RVKCMP\PUBOUT\E92_MISD.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing E93_BADD >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\E93_BADD.OUT F:\RVKCMP\PUBOUT\E93_BADD.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing E94_BOTH >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\E94_BOTH.OUT F:\RVKCMP\PUBOUT\E94_BOTH.OUT >> F:\RVKCMP\COMPARE.LOG
ECHO Comparing E95_GRAM >> F:\RVKCMP\COMPARE.LOG
FC F:\RVKCMP\OUT\E95_GRAM.OUT F:\RVKCMP\PUBOUT\E95_GRAM.OUT >> F:\RVKCMP\COMPARE.LOG
REM --- Queue user-context RIGHTS readback helper. ---
IF "%LGNTPWD%"=="" GOTO NEEDPWD
IF EXIST \PUBLIC\DLYSTRT.EXE COPY \PUBLIC\DLYSTRT.EXE C:\RVKTMP > NUL
IF EXIST C:\RVKTMP\DLYSTRT.EXE GOTO HAVEDLY
ECHO ERROR: DLYSTRT.EXE not found. >> F:\RVKCMP\RUN.LOG
ECHO ERROR: DLYSTRT.EXE not found.
GOTO END
:HAVEDLY
COPY F:\RVKSTA.BAT C:\RVKTMP > NUL
COPY F:\RVKC.BAT C:\RVKTMP > NUL
C:
CD \RVKTMP
DLYSTRT /T:2 RVKC.BAT
ECHO RVKC queued via DLYSTRT. >> F:\RVKCMP\RUN.LOG
ECHO RVKC wurde via DLYSTRT gestartet.
ECHO Nach automatischem Re-Login wird RVKSTA PART2 gestartet.
GOTO END
:PART2
F:
CD \
IF NOT EXIST RVKCMP\UNOV MD RVKCMP\UNOV
IF NOT EXIST RVKCMP\UPUB MD RVKCMP\UPUB
IF EXIST C:\RVKTMP\UNOV\*.* COPY C:\RVKTMP\UNOV\*.* F:\RVKCMP\UNOV > NUL
IF EXIST C:\RVKTMP\UPUB\*.* COPY C:\RVKTMP\UPUB\*.* F:\RVKCMP\UPUB > NUL
IF EXIST C:\RVKTMP\HELPER.TXT COPY C:\RVKTMP\HELPER.TXT F:\RVKCMP\HELPER.TXT > NUL
IF EXIST C:\RVKTMP\ULOG1.OUT COPY C:\RVKTMP\ULOG1.OUT F:\RVKCMP\ULOG1.OUT > NUL
IF EXIST C:\RVKTMP\ULOGIN.OUT COPY C:\RVKTMP\ULOGIN.OUT F:\RVKCMP\ULOGIN.OUT > NUL
IF EXIST C:\RVKTMP\ULOG2.OUT COPY C:\RVKTMP\ULOG2.OUT F:\RVKCMP\ULOG2.OUT > NUL
IF EXIST C:\RVKTMP\ULGSUP.OUT COPY C:\RVKTMP\ULGSUP.OUT F:\RVKCMP\ULGSUP.OUT > NUL
ECHO === D90 no trustee on directory === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\REVOKE R FOR F:\RVKTEST\EMPTY FROM USER MARIO > F:\RVKCMP\OUT\D90_NO_TRUSTEE.OUT
ECHO === D91 missing user === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\REVOKE R FOR F:\RVKTEST\ONE FROM USER NO_SUCH_USER > F:\RVKCMP\OUT\D91_MISSING_USER.OUT
ECHO === D92 missing path === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\REVOKE R FOR F:\RVKTEST\MISSING\NOFILE.TXT FROM USER MARIO > F:\RVKCMP\OUT\D92_MISSING_PATH.OUT
ECHO === D93 both /FILES and /SUBDIRECTORIES === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\REVOKE R FOR F:\RVKTEST\OPTBOTH FROM USER MARIO /FILES /SUBDIRECTORIES > F:\RVKCMP\OUT\D93_FILES_AND_SUBDIRS.OUT
ECHO === D94 bad grammar / missing FROM === >> F:\RVKCMP\RUN.LOG
\NPUBLIC\REVOKE R FOR F:\RVKTEST\ONE USER MARIO > F:\RVKCMP\OUT\D94_BAD_GRAMMAR.OUT
ECHO === COMPARE NOPASSUSER NOVELL RIGHTS AGAINST PUBLIC RIGHTS === > F:\RVKCMP\UCOMP.LOG
ECHO Comparing G10_R >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G10_R.OUT F:\RVKCMP\UPUB\G10_R.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G11_W >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G11_W.OUT F:\RVKCMP\UPUB\G11_W.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G12_C >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G12_C.OUT F:\RVKCMP\UPUB\G12_C.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G13_E >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G13_E.OUT F:\RVKCMP\UPUB\G13_E.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G14_M >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G14_M.OUT F:\RVKCMP\UPUB\G14_M.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G15_F >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G15_F.OUT F:\RVKCMP\UPUB\G15_F.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G16_A >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G16_A.OUT F:\RVKCMP\UPUB\G16_A.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G17_S >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G17_S.OUT F:\RVKCMP\UPUB\G17_S.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G20_RF >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G20_RF.OUT F:\RVKCMP\UPUB\G20_RF.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G21_RW >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G21_RW.OUT F:\RVKCMP\UPUB\G21_RW.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G22_RWC >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G22_RWC.OUT F:\RVKCMP\UPUB\G22_RWC.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G23_RWCE >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G23_RWCE.OUT F:\RVKCMP\UPUB\G23_RWCE.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G24_EMF >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G24_EMF.OUT F:\RVKCMP\UPUB\G24_EMF.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G25_SAL >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G25_SAL.OUT F:\RVKCMP\UPUB\G25_SAL.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G26_ALL >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G26_ALL.OUT F:\RVKCMP\UPUB\G26_ALL.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G30_RE >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G30_RE.OUT F:\RVKCMP\UPUB\G30_RE.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G31_RWF >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G31_RWF.OUT F:\RVKCMP\UPUB\G31_RWF.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G32_RCM >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G32_RCM.OUT F:\RVKCMP\UPUB\G32_RCM.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G33_RFA >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G33_RFA.OUT F:\RVKCMP\UPUB\G33_RFA.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G34_WCM >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G34_WCM.OUT F:\RVKCMP\UPUB\G34_WCM.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G35_EMF >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G35_EMF.OUT F:\RVKCMP\UPUB\G35_EMF.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G36_RMF >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G36_RMF.OUT F:\RVKCMP\UPUB\G36_RMF.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G37_REMA >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G37_REMA.OUT F:\RVKCMP\UPUB\G37_REMA.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G38_SR >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G38_SR.OUT F:\RVKCMP\UPUB\G38_SR.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G39_SRF >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G39_SRF.OUT F:\RVKCMP\UPUB\G39_SRF.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing G40_SWCM >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\G40_SWCM.OUT F:\RVKCMP\UPUB\G40_SWCM.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing F10_R >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\F10_R.OUT F:\RVKCMP\UPUB\F10_R.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing F11_RF >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\F11_RF.OUT F:\RVKCMP\UPUB\F11_RF.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing F12_RAL >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\F12_RAL.OUT F:\RVKCMP\UPUB\F12_RAL.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing F13_ALL >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\F13_ALL.OUT F:\RVKCMP\UPUB\F13_ALL.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing F14_N >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\F14_N.OUT F:\RVKCMP\UPUB\F14_N.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing F15_S >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\F15_S.OUT F:\RVKCMP\UPUB\F15_S.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing F16_SAL >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\F16_SAL.OUT F:\RVKCMP\UPUB\F16_SAL.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing S10_R >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\S10_R.OUT F:\RVKCMP\UPUB\S10_R.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing S11_RWC >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\S11_RWC.OUT F:\RVKCMP\UPUB\S11_RWC.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing S12_ALL >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\S12_ALL.OUT F:\RVKCMP\UPUB\S12_ALL.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO Comparing S13_SAL >> F:\RVKCMP\UCOMP.LOG
FC F:\RVKCMP\UNOV\S13_SAL.OUT F:\RVKCMP\UPUB\S13_SAL.OUT >> F:\RVKCMP\UCOMP.LOG
ECHO === SUMMARY === > F:\RVKCMP\SUMMARY.TXT
ECHO RVKSTA REVOKE baseline finished. >> F:\RVKCMP\SUMMARY.TXT
ECHO. >> F:\RVKCMP\SUMMARY.TXT
ECHO Expected: >> F:\RVKCMP\SUMMARY.TXT
ECHO - D10/D11 capture normal directory revoke and trustee removal. >> F:\RVKCMP\SUMMARY.TXT
ECHO - D20 captures /SUBDIRECTORIES behavior using direct trustees on child directories. >> F:\RVKCMP\SUMMARY.TXT
ECHO - D21/D22 capture /FILES behavior for explicit files and directory file sets. >> F:\RVKCMP\SUMMARY.TXT
ECHO - D30 captures relative path behavior with absolute \NPUBLIC\REVOKE invocation. >> F:\RVKCMP\SUMMARY.TXT
ECHO - D90-D94 capture no-trustee, missing-user, missing-path/Novell no-trustee behavior, option combination, and grammar errors. >> F:\RVKCMP\SUMMARY.TXT
ECHO RVKSTA REVOKE comparison finished. >> F:\RVKCMP\SUMMARY.TXT
ECHO. >> F:\RVKCMP\SUMMARY.TXT
ECHO Direct mode compares NPUBLIC REVOKE against PUBLIC REVOKE. >> F:\RVKCMP\SUMMARY.TXT
ECHO Matrix covers single rights, mixed rights, ALL removal, file mode, and subdirectory mode. >> F:\RVKCMP\SUMMARY.TXT
ECHO User-context mode logs in as NOPASSUSER and compares RIGHTS output after PUBLIC REVOKE. >> F:\RVKCMP\SUMMARY.TXT
ECHO Optional: RVKZIP ausfuehren. >> F:\RVKCMP\SUMMARY.TXT
ECHO RVKSTA fertig.
ECHO RVKSTA PART2 fertig.
ECHO Ergebnisse liegen in F:\RVKCMP
ECHO Optional: RVKZIP ausfuehren.
GOTO END
:NEEDPWD
ECHO ERROR: LGNTPWD ist nicht gesetzt.
ECHO Fuer den automatischen REVOKE/NOPASSUSER-Test zuerst setzen, z.B.:
ECHO SET LGNTPWD=dein-supervisor-passwort
ECHO Danach starten:
ECHO F:\RVKSTA
ECHO Es wurde kein DLYSTRT installiert und kein User-Kontext-Test gestartet.
:END

View File

@@ -10,13 +10,13 @@ IF EXIST RVKSTA.ZIP DEL RVKSTA.ZIP
IF EXIST ZIP.LOG DEL ZIP.LOG
ECHO Creating RVKSTA.ZIP > ZIP.LOG
ZIP -r RVKSTA.ZIP RUN.LOG SUMMARY.TXT SETUP OUT >> ZIP.LOG
ZIP -r RVKSTA.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 \RVKTEST\NUL DELTREE /Y \RVKTEST >> ZIP.LOG
IF EXIST C:\RVKTMP\NUL DELTREE /Y C:\RVKTMP >> ZIP.LOG
CD \
ECHO.
ECHO ZIP step finished.