From 83133ddce387649ec8bfb07c056282e590724286 Mon Sep 17 00:00:00 2001 From: Howard Enos Date: Wed, 10 Jun 2026 20:21:20 -0700 Subject: [PATCH] sync: auto-sync from HOWARD-HOME at 2026-06-10 20:21:07 Author: Howard Enos Machine: HOWARD-HOME Timestamp: 2026-06-10 20:21:07 --- ...rth-Shared-Drives-Reorganization-Plan.docx | Bin 0 -> 40556 bytes .../shares-permissions/_build_docx.py | 265 ++++++++++++++++++ .../acl-audit-detail-2026-06-10.md | 34 +++ .../current-state-2026-06-10.md | 46 +++ .../discovery-email-draft.md | 97 +++++++ .../projects/shares-permissions/roadmap.md | 94 +++++++ 6 files changed, 536 insertions(+) create mode 100644 clients/dataforth/docs/projects/shares-permissions/Dataforth-Shared-Drives-Reorganization-Plan.docx create mode 100644 clients/dataforth/docs/projects/shares-permissions/_build_docx.py create mode 100644 clients/dataforth/docs/projects/shares-permissions/acl-audit-detail-2026-06-10.md create mode 100644 clients/dataforth/docs/projects/shares-permissions/current-state-2026-06-10.md create mode 100644 clients/dataforth/docs/projects/shares-permissions/discovery-email-draft.md create mode 100644 clients/dataforth/docs/projects/shares-permissions/roadmap.md diff --git a/clients/dataforth/docs/projects/shares-permissions/Dataforth-Shared-Drives-Reorganization-Plan.docx b/clients/dataforth/docs/projects/shares-permissions/Dataforth-Shared-Drives-Reorganization-Plan.docx new file mode 100644 index 0000000000000000000000000000000000000000..0c81dd47ea603c883c967b7c6d5591a65144a57f GIT binary patch literal 40556 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" /save acl-backup-.txt /t` (or `Get-Acl` export) for each share → store in this folder before modifying. diff --git a/clients/dataforth/docs/projects/shares-permissions/current-state-2026-06-10.md b/clients/dataforth/docs/projects/shares-permissions/current-state-2026-06-10.md new file mode 100644 index 0000000..a18ab3c --- /dev/null +++ b/clients/dataforth/docs/projects/shares-permissions/current-state-2026-06-10.md @@ -0,0 +1,46 @@ +# Dataforth — Your Shared Drives Today (Plain Overview) + +*Prepared by Arizona Computer Guru, 2026-06-10. A simple snapshot of the shared network drives as they are now — to read alongside our email about setting up department access.* + +**Right now, every shared drive below is open to every employee** — anyone who logs in can open, change, or delete anything on all of them. The goal of this project is to give each department access to only what it needs, and to lock down the sensitive areas. + +Below is what's on each drive today, so you can decide who should have access to what. + +--- + +### Q: drive ("c-drive") — general company files +A bit of everything. Main areas: Documents, Manufacturing, Production Control, Shipping, SMT, Scanned Documents, Purchasing, and a number of personal/older folders. +**Sensitive folders here:** Payroll · OSHA 300 · OSHA Safety Training · Purchase Orders. + +### T: drive ("e-drive") — engineering & manufacturing +Engineering and manufacturing files: ENGR, ECO's, FMEA, Manufacturing, Test Engineering, plus utilities. +**Sensitive folder here:** QuickBooks / accounting files (QBfiles). + +### S: drive ("sage") — accounting / Sage ERP +Sage accounting system files, invoices, financial reports, and related tools. +**Sensitive — this is mostly Accounting/Finance data.** + +### W: drive ("sales") — sales & marketing +Sales and marketing materials, contacts, RMAs, videos, shipping handoffs, and weekly updates. + +### Y: drive ("archive") — engineering archive +Archived engineering data. + +### B: drive ("Engineering") — main engineering data +The primary, large Engineering data store. + +### itsvc — IT software & drivers +Software installers, printer/server drivers, and IT tools. **Used by IT.** + +### X: drive ("webshare") — website / test-datasheet system +Files for the automated website datasheet system. **Mostly automated — IT/Engineering.** + +--- + +**A note on cleanup:** the drives have collected a lot of old material over the years — duplicate folders, folders named "Do not use," and personal folders from former staff. As part of this we can tidy these up; we'll confirm with you before removing anything. + +*(There is also a "test" drive used by the DOS test stations on the manufacturing floor. It has to stay as-is for those machines to work, so it isn't part of this access exercise.)* + +--- + +*Technical permission details are kept separately in our internal records (`acl-audit-detail-2026-06-10.md`) and aren't needed to answer our questions.* diff --git a/clients/dataforth/docs/projects/shares-permissions/discovery-email-draft.md b/clients/dataforth/docs/projects/shares-permissions/discovery-email-draft.md new file mode 100644 index 0000000..e4341df --- /dev/null +++ b/clients/dataforth/docs/projects/shares-permissions/discovery-email-draft.md @@ -0,0 +1,97 @@ +# DRAFT — Dataforth shared-folder access & permissions discovery email + +> Draft for ACG review. Recipients/sender to be set before sending. +> Suggested To: Dan Center (dcenter@dataforth.com). Suggested CC: Kevin Wackerly. From: ACG (Howard/Mike). +> Tone: plain-language, non-technical where possible. Goal: get their departments + the access matrix + sensitive-data rules so we can build the permission model. + +--- + +**Subject:** Dataforth shared drives — setting up proper department access & permissions + +Hi Dan, + +As part of tightening things up after last year's security incident, we'd like to get Dataforth's shared network drives (the mapped drives everyone uses — Q:, S:, T:, W:, X:, Y:, B:, etc.) onto a proper department-based access model. + +Right now, essentially **every shared drive is open to every employee** — anyone who logs in can open, change, or delete files on all of them, including folders like Payroll, OSHA records, Purchase Orders, and the accounting/Sage data. There are also no department-based permission groups in place, so there's no easy way to say "only Accounting sees the accounting folder." We'd like to fix that: give each department access to what it needs, restrict the sensitive areas, and make ongoing access management simple. + +To do this right, we need your input on how *you* want it set up. Could you help us with the following? A short call works too if that's easier. + +### 1. Confirm your departments +Here's our starting guess at Dataforth's departments — please correct/add/remove: + +- Engineering +- Manufacturing / Production / Assembly +- Quality / Calibration +- Sales & Marketing +- Shipping / Receiving +- Accounting / Finance +- HR / Administration +- IT +- Management / Executive + +### 2. Who gets access to which shared drive +For each shared drive, tell us which departments should have **Read/Write** (open & edit), **Read-Only** (view only), or **No access**. Here are the current drives and roughly what's in each: + +| Drive | Share | What's in it (today) | +|---|---|---| +| Q: | c-drive | Company-wide mix — documents, Mfg, Shipping, SMT, Production Control, **Payroll, OSHA, Purchase Orders**, plus many person-named folders | +| T: | e-drive | Engineering & manufacturing (ENGR, ECO'S, FMEA, MANUFACT, TE) + **QuickBooks/accounting files** | +| S: | sage | Sage ERP / accounting, invoices, reports | +| W: | sales | Sales & marketing, contacts, RMAs, shipping handoffs | +| Y: | archive | Engineering archive (ENGR) | +| B: | Engineering | Main Engineering data (large) | +| B: | itsvc | IT software, drivers, server tools (IT use) | +| X: | webshare | Website/test-datasheet system (mostly automated — IT/Engineering) | + +A simple way to answer is to fill in this grid (RW = read/write, RO = read-only, blank = no access): + +``` +Department | Q c-drive | T e-drive | S sage | W sales | Y archive | B Engineering | itsvc | webshare +--------------------------|-----------|-----------|--------|---------|-----------|---------------|-------|--------- +Engineering | | | | | | | | +Manufacturing/Production | | | | | | | | +Quality/Calibration | | | | | | | | +Sales & Marketing | | | | | | | | +Shipping/Receiving | | | | | | | | +Accounting/Finance | | | | | | | | +HR/Administration | | | | | | | | +IT | | | | | | | | +Management/Executive | | | | | | | | +``` + +### 3. Sensitive areas — who specifically should see these? +These should almost certainly **not** be open to all staff. Please tell us who (which department, or specific people) should have access: + +- **Payroll** (currently on Q:) +- **OSHA 300 / OSHA Safety Training** (injury/safety records — currently on Q:) +- **Purchase Orders** (currently on Q:) +- **Accounting / Sage / QuickBooks / invoices** (S:, plus QBfiles on T:) +- Anything else you consider confidential (HR files, contracts, pricing, etc.) + +### 4. Who's in each department +So we can put the right people in the right groups, we need a list of employees by department. An existing org chart or staff roster is perfect — or if it's easier, we can put together a proposed list from what we know and you correct it. + +### 5. Cleanup +The drives have accumulated a lot of old material over the years — folders literally named "Do not use," duplicates, and per-person folders from former staff. As we go, we can archive or remove what's no longer needed. Are there any folders you already know are safe to clean up, or anyone we should check with first? + +### 6. Special cases +Anyone who needs access across departments (e.g. management seeing everything), contractors/outside parties, or individual exceptions? + +--- + +Once we have this, we'll put together a clear access plan (a simple "who sees what" map), send it back for your sign-off, and then implement it in stages so nobody loses access unexpectedly. Nothing changes on your end until you've approved the plan. + +Thanks Dan — happy to jump on a quick call to walk through it if that's easier. + +Best, +[Sender] +Arizona Computer Guru + +--- + +### Internal notes (do not send) +- The `test` drive (DOS test stations) stays open by necessity (SMB1/guest) — not part of this exercise; don't raise it with them. +- `webshare` must keep the `svc_testdatadb` service account — restrict humans only. +- Drive-letter B: covers both Engineering and itsvc in current docs — confirm during design. +- After their reply: build AD security groups (`SG--`), draft the group×share matrix, get sign-off (Phase 2), then staged build (Phase 3). See `roadmap.md`. +- Sensitive-data rules likely need HR/Finance sign-off, not just Dan — ask who owns that decision. diff --git a/clients/dataforth/docs/projects/shares-permissions/roadmap.md b/clients/dataforth/docs/projects/shares-permissions/roadmap.md new file mode 100644 index 0000000..dcf1e4f --- /dev/null +++ b/clients/dataforth/docs/projects/shares-permissions/roadmap.md @@ -0,0 +1,94 @@ +# Dataforth — File Shares & Permissions Remediation: Roadmap + +**Owner:** ACG (Howard) · **Client:** Dataforth (Dan Center, primary IT contact) +**Started:** 2026-06-10 · **Status:** Phase 0 complete; Phase 1 (client input) pending email +**Goal:** Move Dataforth from "every share open to every employee" to a **least-privilege, department-based access model** built on AD security groups, with sensitive data (payroll, OSHA, financials) properly restricted — without breaking the DOS/test-datasheet infrastructure or the in-flight post-ransomware file-recovery audit. + +Related docs: [current-state-2026-06-10.md](./current-state-2026-06-10.md) (plain client-facing overview) · [acl-audit-detail-2026-06-10.md](./acl-audit-detail-2026-06-10.md) (internal technical baseline) · [discovery-email-draft.md](./discovery-email-draft.md) (client ask) + +--- + +## Why now + +The 2026-06-10 read-only audit confirmed: all eight business shares grant access to all staff via `Everyone` / `Domain Users`, with `Domain Users:FullControl` on four of them (archive, sales, Engineering, sage). Payroll, OSHA injury logs, purchase orders, and accounting data are readable and writable by every employee. This is both a security/insider-risk problem and a compliance gap, and it follows a 2025 ransomware incident — tightening share access materially reduces blast radius of any future credential compromise. + +--- + +## Guiding principles (target model) + +- **Department-based AD security groups**, granted on resources; users join groups. Naming: `SG--` (e.g. `SG-Sales-RW`, `SG-Accounting-RW`, `SG-Engineering-RO`). +- **Least privilege:** users get **Modify** (not Full); only Administrators/owners get FullControl. Remove `Everyone`. Replace blanket `Domain Users` with department groups. +- **Access-Based Enumeration (ABE)** on every share so users see only what they can open. +- **Share ACL = permissive, NTFS = authoritative** (standard pattern): set share to `Authenticated Users:Full` (or the relevant groups), enforce real access at NTFS via groups. +- **Sensitive shares isolated:** Payroll/HR, OSHA, Accounting/Finance get their own restricted groups, broken inheritance, no `Domain Users`. +- **Infra/app shares excluded** from the department model and handled case-by-case: `test` (DOS/SMB1 guest — leave open), `webshare` (preserve `svc_testdatadb`), `ITSvc` (IT-RW + computers/all-RO), `NETLOGON`/`SYSVOL` (never touch). +- **Change is staged and reversible:** snapshot every ACL before change; one share at a time; pilot user validation before flipping `Everyone`/`Domain Users` off. + +--- + +## Phases + +### Phase 0 — Discovery (DONE 2026-06-10) +- [x] Read-only enumeration of shares, top-level folders, share ACLs, NTFS root ACLs on AD1/AD2/FILES-D1/SAGE-SQL. +- [x] Baseline written: `current-state-2026-06-10.md`. +- [x] Confirmed: no department groups; Domain Users has Modify/Full on all shares; sensitive data exposed. + +### Phase 1 — Client input (BLOCKING — pending) +Send the discovery email to Dataforth and capture their answers. We need: +1. **Department list** confirmed/corrected (starter list in the email). +2. **Department → share access matrix** — for each share: which departments get **Read/Write**, **Read-Only**, or **No access**. +3. **Sensitive-data rules** — who exactly may access Payroll, OSHA, Purchase Orders, Accounting/Sage (named people or a small group). +4. **Department rosters** — which employees belong to which department (or an org chart / they map names to departments). +5. **Legacy cleanup decisions** — which "Do not use"/person-named/legacy folders can be archived or deleted. +6. **Special cases** — execs who see everything, individuals with cross-department needs, external/contractor access. +- [ ] Email sent (recipients to be set by ACG). +- [ ] Replies received and logged into this folder. + +### Phase 2 — Target-state design (after Phase 1) +- [ ] Build the **AD security group list** (per share/department, RW + RO variants) with naming convention. +- [ ] Build the **permission matrix**: groups × shares with explicit Modify/Read/none. +- [ ] Decide **structure changes**: folder consolidation, legacy archive/delete list, whether to recreate the missing `staff` share, Engineering volume/letter cleanup. +- [ ] Decide **drive-mapping changes** (GPO) — keep current letters or map by group. +- [ ] Plan handling of the four special shares (test/webshare/ITSvc/sage-app). +- [ ] **Sign-off from Dataforth** on the matrix before any change. + +### Phase 3 — Build (staged, reversible) +- [ ] Snapshot/export current ACLs for every share (`icacls /save` or `Get-Acl` export) → store in this folder. +- [ ] Create AD security groups; populate membership from the rosters. +- [ ] Per share, in a controlled order (lowest-risk first, e.g. `archive` → `sales` → `e-drive`/`c-drive` → `Engineering` → sensitive last): + - Break inheritance where needed, add department groups (Modify), keep SYSTEM/Administrators Full. + - Apply ABE; set share ACL to permissive. + - **Leave `Domain Users`/`Everyone` in place initially** (additive) and validate with a pilot user in each department. +- [ ] Update GPO drive mappings if the model changes letters/targets. + +### Phase 4 — Cutover & validate +- [ ] Per share, once validated: **remove `Everyone` and `Domain Users`** (the enforcement step). +- [ ] Walk each department through their access; resolve "I can't get to X" tickets quickly (add to group, not re-open the share). +- [ ] Lock down the sensitive shares last, with explicit HR/Accounting confirmation. +- [ ] Archive/remove approved legacy folders (after the migration-gap audit clears them). + +### Phase 5 — Document & handoff +- [ ] Update the Dataforth wiki (shares map + new group model + matrix). +- [ ] Record group→share matrix as the source of truth in this folder. +- [ ] Vault any new service accounts (none expected). +- [ ] Set a review cadence (e.g. quarterly access review with Dan/HR). +- [ ] Bill per phase against the prepaid block (live-check `GET /customers/578095`). + +--- + +## Risks & watch-items + +- **Breaking app dependencies:** DOS stations (`test`), datasheet pipeline (`webshare`/`svc_testdatadb`), Sage (`sage` app paths), GageTrak, Epicor shortcuts. Validate before removing broad access. +- **Migration-gap audit overlap:** don't delete/move data the review-only audit still needs; sequence cleanup after it clears each share. +- **AD1 C: 90% full:** no staging copies on AD1; Engineering restructure needs a destination decision. +- **Hidden hard-coded UNC paths:** scripts/apps may reference `\\server\share\...` with assumed open access — surface during pilot validation. +- **Double-hop limitation:** ACL changes run locally on each file server (as SYSTEM via RMM) — fine; cross-server file moves use the documented GPO-mapped-drive workaround. +- **Single point of contact:** confirm Dan Center is authoritative for access decisions, or who signs off on the sensitive-data rules (likely needs HR/Finance input). + +--- + +## Open questions for ACG (internal, before/with the email) +- Confirm email recipients/sender (Dan Center primary; CC Kevin Wackerly? Mike or Howard sending?). +- Is HR/Finance input needed directly for payroll/OSHA/PO rules, or does Dan relay? +- Do we recreate the missing `staff` share in this project or keep it separate? +- Budget/timeline expectations (prepaid block — scope the build phase into billable chunks).