6.1 Skupna raba datotek

Najenostavnejši način distribucije: omrežni disk.


Zakaj skupna raba datotek?

Prednosti:

  • ✓ Dodaten strežnik ni potreben
  • ✓ Hitro nastavljeno
  • ✓ Dovoljenja preko Windows ACL
  • ✓ Vsi poznajo mape

Slabosti:

  • ✗ Brez samodejnega verzioniranja
  • ✗ Brez upravljanja odvisnosti
  • ✗ Potrebno ročno kopiranje

Struktura imenikov

Priporočena struktura za skupno rabo:

\\server\builds\openssl\
├── 3.6.0\
│   ├── win-x64\
│   │   ├── bin\
│   │   │   ├── libcrypto-3-x64.dll
│   │   │   ├── libssl-3-x64.dll
│   │   │   └── openssl.exe
│   │   ├── ssl\
│   │   │   └── openssl.cnf
│   │   └── README.txt
│   ├── win-x64-fips\
│   │   └── ... (s FIPS Provider)
│   ├── linux-x64\
│   │   └── ... (Shared Objects)
│   └── wasm\
│       └── ... (JS + WASM)
├── 3.5.0\
│   └── ... (starejša različica)
└── latest -> 3.6.0\

Nastavitev skupne rabe

1. Ustvarjanje mape

# Na strežniku
mkdir D:\Builds\OpenSSL
mkdir D:\Builds\OpenSSL\3.6.0
mkdir D:\Builds\OpenSSL\3.6.0\win-x64

2. Kopiranje datotek

# Kopiranje rezultata gradnje
Copy-Item -Recurse "D:\Projects\openssl-3.6.0\bin\*" "D:\Builds\OpenSSL\3.6.0\win-x64\"

3. Ustvarjanje skupne rabe

# Kot administrator
New-SmbShare -Name "OpenSSL" -Path "D:\Builds\OpenSSL" -ReadAccess "Domain Users"

Ali preko GUI:

  1. Desni klik na mapo
  2. Lastnosti → Skupna raba
  3. Napredna skupna raba → Dovoljenja

Uporaba

Z razvojnega računalnika

# Dostop do skupne rabe
dir \\server\openssl\3.6.0\win-x64\bin\
 
# Kopiranje v projekt
copy "\\server\openssl\3.6.0\win-x64\bin\*.dll" C:\MojProjekt\

Priklop kot disk

# Trajno kot O: (za OpenSSL)
net use O: \\server\openssl /persistent:yes
 
# Nato enostavno:
copy O:\3.6.0\win-x64\bin\*.dll C:\MojProjekt\

Dovoljenja

Skupina Dovoljenje
———————
Build strežnik Poln dostop (piše nove gradnje)
Razvijalci Branje (kopiranje DLL-jev)
CI/CD agenti Branje

PowerShell

# Nastavitev dovoljenj (NTFS)
$acl = Get-Acl "D:\Builds\OpenSSL"
 
# Razvijalci: samo branje
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule(
    "DOMAIN\Developers", "ReadAndExecute", "ContainerInherit,ObjectInherit", "None", "Allow")
$acl.AddAccessRule($rule)
 
# Build račun: poln dostop
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule(
    "DOMAIN\BuildService", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow")
$acl.AddAccessRule($rule)
 
Set-Acl "D:\Builds\OpenSSL" $acl

Za enostaven dostop do trenutne različice:

# Ustvarjanje junction (kot symlink)
cmd /c mklink /J "D:\Builds\OpenSSL\latest" "D:\Builds\OpenSSL\3.6.0"
 
# Nato deluje:
# \\server\openssl\latest\win-x64\...

Pri novi različici posodobite symlink!


Avtomatizacija

PowerShell skripta za nove izdaje:

# publish-openssl.ps1
 
param(
    [string]$Version = "3.6.0",
    [string]$SourceDir = "D:\Projects\openssl-3.6.0\bin",
    [string]$SharePath = "\\server\openssl"
)
 
$TargetDir = "$SharePath\$Version\win-x64"
 
# Ustvarjanje mape če ne obstaja
if (!(Test-Path $TargetDir)) {
    New-Item -ItemType Directory -Path $TargetDir -Force
}
 
# Kopiranje datotek
Copy-Item -Recurse -Force "$SourceDir\*" $TargetDir
 
# Dodajanje README
@"
OpenSSL $Version
================
Datum gradnje: $(Get-Date -Format 'yyyy-MM-dd HH:mm')
Platforma: Windows x64 (VC-WIN64A)
 
Vsebuje:
- libcrypto-3-x64.dll
- libssl-3-x64.dll
- openssl.exe
 
Post-Quantum: ML-DSA, ML-KEM
"@ | Out-File "$TargetDir\README.txt"
 
Write-Host "Objavljeno: $TargetDir"

Naprej na


Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional

Zuletzt geändert: dne 15.12.2025 ob 21:23