{ "meta": { "title": "Samba server v LXC | ProxMenux Dokumentácia", "description": "Spustite server Samba (SMB / CIFS) v kontajneri Proxmox LXC cez ProxMenux. Automaticky nainštaluje samba a spravuje /etc/samba/smb.conf, používateľov smbpasswd a skupinu sharedfiles pre priečinky pripojené cez bind mount. Vyžaduje privilegovaný kontajner.", "ogTitle": "Samba server v LXC | ProxMenux Dokumentácia", "ogDescription": "Sprístupnite priečinky cez SMB/CIFS z privilegovaného LXC. Automatická inštalácia, používateľ smbpasswd a oprávnenia prispôsobené bind mountom." }, "header": { "title": "Samba server v LXC", "description": "Spustite server Samba (SMB / CIFS) v kontajneri Proxmox LXC a vystavte priečinky klientom Windows / macOS / Linux v sieti. ProxMenux nainštaluje samba, vytvorí používateľa Samba pomocou smbpasswd, spravuje /etc/samba/smb.conf a použije oprávnenia prispôsobené bind mountom, keď zdieľaný priečinok pochádza od hostiteľa.", "section": "Úložisko & Share · LXC" }, "privReq": { "title": "Požadovaný privilegovaný kontajner", "body": "Samba sa vydáva za pripájajúceho užívateľa setgroups() pri každom pripojení k zdieľaniu (v okamihu, keď klient otvorí zdieľanie). V neprivilegovaných LXC, jadro odmieta, že syscall, pretože používateľský menný priestor kontajnera je vytvorený s setgroups=deny a smbd reaguje prerušením pracovného procesu s PANIC: sys_setgroups failed. Výsledkom je, že smbd začína a viaže porty 139/445, ale každý klient spojenie zlyhá s NT_STATUS_CONNECTION_DISCONNECTED. Skript presadzuje privilegovaný CT z tohto dôvodu a sa ukončí, ak CT nie je privilegovaný. Na strane servera neexistuje čistá oprava; použite privilegovaný CT, alebo spustiť Samba vnútri VM." }, "what": { "heading": "Čo to robí?", "body": "Kontajner sa stáva SMB/CIFS serverom: prevádzkuje smbd, vystavuje priečinok cez /etc/samba/smb.conf a prijíma klientske pripojenia na portoch 139 / 445. Klienti vidia zdieľanie na \\\\<ct-ip>\\<share-name> vo Windows Explorer, smb://<ct-ip>/<share-name> v macOS Finder, alebo prostredníctvom mount.cifs na Linuxe.", "diagramServerLabel": "LXC (privilegovaný) — server Samba", "diagramServerDetail": "/mnt/data\n(sprístupnený priečinok)\n\nsmbd + nmbd spustené\n\nPoužívateľ: \n(via smbpasswd)\n\nVynútená skupina:\nsharedfiles", "diagramClientLabel": "Každý klient v sieti", "diagramClientDetail": "Windows: \\\\\\\nmacOS: smb:///\nLinux: mount.cifs", "diagramArrow": "SMB / CIFS" }, "perms": { "heading": "Dve cesty povolenia v závislosti od typu priečinka", "body": "Pred pridaním zdieľania do smb.conf skript overí, či je priečinok bind mountom z hostiteľa alebo bežným lokálnym priečinkom v CT. Podľa toho nastaví rôznych vlastníkov a oprávnenia:", "headerType": "Typ priečinku", "headerAction": "Čo robí skript", "bindType": "Bind mount z hostiteľa", "bindTypeSubRich": "detekovaný prostredníctvom výstupu mount", "bindActionRich": "Vytvorí skupinu sharedfiles (predvolené GID 999, dynamické, ak je obsadené), pridá používateľa Samba a použije chown root:sharedfiles a chmod 2775 (SGID — nové súbory zdedia skupinu). Ak používateľ stále nemôže zapisovať, použije setfacl -m u:<user>:rwx.", "localType": "Lokálny priečinok vnútri CT", "localTypeSub": "Nebol zistený bind mount", "localActionRich": "Štandardné vlastníctvo: chown -R <user>:<user> + chmod -R 755. Žiadna spoločná skupina nie je potrebná, pretože do tohto priečinku nepíše žiadna iná CT. Vracia sa do setfacl ak stále chýba prístup k zápisu.", "gidTitle": "GID pre „sharedfiles“ sa líši od toku servera NFS", "gidBody": "Skript Samba server používa GID 999 pre sharedfiles, zatiaľ čo postup servera NFS používa GID 101000. Ak spustíte oba servery v rovnakom CT a chcete jednu spoločnú skupinu v oboch protokoloch, upravte jeden z nich tak, aby zodpovedal druhému po inštalácii (napr. groupmod -g 101000 sharedfiles) a znova nastavte vlastníkov príslušných priečinkov. Toto je známy nesúlad v aktuálnych skriptoch." }, "opening": { "heading": "Otvorenie nástroja", "body": "V hlavnej ponuke otvorte Storage & Share Manager → Configure Samba Server in LXC. Zobrazia sa iba privilegované CT. Vyberte cieľový CT; skript ho spustí, ak je zastavený, a neprivilegovaný CT odmietne. Ponuka má päť možností.", "imageAlt": "Ponuka servera Samba — Vytvoriť / Zobraziť / Odstrániť / Stav / Odinštalovať" }, "howRuns": { "heading": "Ako prebieha vytvorenie v skripte" }, "modes": { "heading": "Tri režimy zdieľania", "intro": "Každý režim zapíše iný blok do smb.conf. Všetky tri zahŕňajú valid users = <username> (nie anonymné), force group = sharedfiles (takže nové súbory patria do zdieľanej skupiny) a veto files = /lost+found/ (skrýva ich od klientov).", "headerMode": "Režim", "headerBlock": "Blok napísaný smb.conf", "rwMode": "Čítanie a zápis", "roMode": "Iba na čítanie", "customMode": "Vlastné", "customBodyRich": "Svoje vlastné smernice zapíšete do voľného textu. ProxMenux ich stále zabalí do bloku [share] štandardným path, valid users, force group a veto files." }, "manual": { "heading": "Ručný ekvivalent", "body": "Celý postup môžete vykonať ručne. Každý príkaz sa spúšťa v CT cez pct exec <ctid> -- alebo pct enter <ctid>:" }, "connect": { "heading": "Pripojenie od klientov", "headerOs": "Operačný systém klienta", "headerHow": "Ako sa pripojiť", "windowsOs": "Windows", "windowsHowRich": "Prieskumník → panel s adresou: \\\\<ct-ip>\\<share-name>. Alebo Pripojiť sieťovú jednotku → začiarknite „Pripojiť pomocou iných prihlasovacích údajov“.", "macosOs": "macOS", "macosHowRich": "Finder → Choď → Pripojiť k serveru… → smb://<ct-ip>/<share-name>. Alebo mount_smbfs //user@<ct-ip>/<share> /mountpoint.", "linuxOs": "Linux", "linuxHowRich": "mount -t cifs //<ct-ip>/<share> /mnt/x -o username=<u>,password=<p>,iocharset=utf8. Alebo použite klienta Samba na stránke LXC, ak je klientom iný Proxmox CT." }, "view": { "heading": "Zobraziť aktuálne zdieľania", "body": "Analyzuje /etc/samba/smb.conf v CT a vypíše každý blok [share] s cestou, pričom preskočí [global], [homes] a [printers]. Hodí sa ako rýchly prehľad." }, "delete": { "heading": "Odstrániť zdieľanie", "body": "Umožňuje vybrať zdieľanie podľa mena, odstraňuje blok z smb.conf (sed odstráni z [share] do ďalšieho prázdneho riadku) a reštartuje smbd. Priečinok sám a jeho obsah sú ponechané neporušené." }, "status": { "heading": "Kontrola stavu Samby", "body": "Oznámi, či sú smbd a nmbd nainštalované a aktívne, vypíše používateľov Samba (pdbedit -L) a aktívne relácie (smbstatus)." }, "uninstall": { "heading": "Odinštalovať server Samba", "body": "Úplné čistenie po potvrdení: zastaví a vypne smbd a nmbd, zálohuje smb.conf do smb.conf.backup.YYYYMMDD_HHMMSS, odstráni používateľov Samba pomocou smbpasswd -x a balíky Samba pomocou apt-get purge. Exportované priečinky sa neodstránia.", "warnTitle": "Priečinky zostanú — dáta zálohujte samostatne", "warnBody": "Odstrániť zdieľanie aj Odinštalovať server Samba odstránia konfiguráciu zdieľania. Dáta v exportovaných priečinkoch sa zachovajú. Ak ich chcete tiež odstrániť, použite po dokončení skriptu výslovne rm -rf." }, "troubleshoot": { "heading": "Riešenie problémov", "privTitle": "Vyžaduje sa privilegovaný kontajner (skript sa ukončí)", "privBody": "Vybrané CT je neprivilegované a smbd tam nemôže slúžiť súbory. Ak obídete bránu a konfigurujete Sambu ručne, začne sa smbd a otvoria sa porty, ale prvé klientske spojenie spanikári s PANIC: sys_setgroups failed v /var/log/samba/log.<client> a klient vidí NT_STATUS_CONNECTION_DISCONNECTED. Príčinou je neprivilegované používateľský menný priestor s setgroups=deny, ktoré blokuje prevzatie identity používateľa Sambou pri každom pripojení. Ani features=keyctl=1 ani odstránenie force user / force group to nemení. Jediné funkčné možnosti sú: previesť CT na privilegované, alebo presunúť Samba na VM.", "aptTitle": "Príkaz apt-get install zlyhá", "aptIntro": "Skript predpokladá CT založený na Debiane. Na Alpine / Arch / Rocky / Alma nainštalujte Sambu ručne:", "aptItems": [ "Alpine: apk add samba", "Arch: pacman -S samba", "Rocky / Alma: dnf install samba" ], "aptOutro": "Potom znova spustite skript ProxMenux; ak sú nástroje už prítomné, inštalácia sa preskočí.", "noShareTitle": "Klient sa pripojí, ale nevidí zdieľanie", "noShareBody": "Overte browseable = yes v bloku zdieľania (predvolené pre rw / ro; vo vlastnom režime môže chýbať). Firewall CT aj hostiteľa Proxmox musí povoľovať TCP 445 (SMB) a 139 (NetBIOS). Niektorí klienti Windows potrebujú preklad názvov; najprv skúste priamo IP adresu.", "authTitle": "Zlyhanie overovania (NT_STATUS_LOGON_FAILURE)", "authBody": "Heslo je nesprávne (heslá Samba sú oddelené od systémových; používateľov Samba vypíšete pomocou pdbedit -L) alebo používateľ chýba v valid users daného zdieľania. Heslo obnovte v CT pomocou smbpasswd <user>.", "groupTitle": "Súbory napísané klientom sa objavujú s nesprávnou skupinou na serveri", "groupBody": "Skript nastaví force group = sharedfiles v bloku zdieľania, takže nové súbory by mali byť skupiny sharedfiles. Ak nie sú, SGID bit na rodičovskom adresári mohol byť stratený (niekto spustil chmod ručne). Opakovane: chmod 2775 /mnt/<share>.", "bothTitle": "Zdieľanie rovnakého priečinka na oboch NFS a Samba", "bothBody": "ProxMenux používa rôzne GIDs pre sharedfiles v každom skripte (Samba: 999, NFS: 101000). Ak podávate rovnaký priečinok prostredníctvom oboch, rozhodnite sa pre jednu GID a zarovnajte obe. Najjednoduchšia oprava: po spustení oboch skriptov upravte menšie GID:" }, "related": { "heading": "Súvisiace", "items": [ { "href": "/docs/storage-share/lxc-samba-client", "label": "Samba klient v LXC", "tail": " — opačný smer: pripojenie externých zdieľaní Samba v CT." }, { "href": "/docs/storage-share/lxc-nfs-server", "label": "NFS server v LXC", "tail": " — súvisiaca stránka s rovnakým postupom, ale NFS namiesto CIFS." }, { "href": "/docs/storage-share/host-samba", "label": "Samba / CIFS ako úložisko Proxmox", "tailRich": " — keď CT sprístupňuje export, zaregistrujte zdieľanie Samba v Proxmoxe, aby sa zobrazilo v Datacenter → Storage." } ] } }