{
"meta": {
"title": "Server Samba in LXC | Documentazione ProxMenux",
"description": "Esegui un server Samba (SMB / CIFS) in un container LXC Proxmox con ProxMenux. Installa samba automaticamente e gestisce /etc/samba/smb.conf, utenti smbpasswd e il gruppo sharedfiles per cartelle montate tramite bind mount. Richiede un container privilegiato.",
"ogTitle": "Server Samba in LXC | Documentazione ProxMenux",
"ogDescription": "Condividi cartelle via SMB/CIFS da un LXC privilegiato. Installazione automatica, utente smbpasswd e permessi adatti ai bind mount."
},
"header": {
"title": "Server Samba in LXC",
"description": "Eseguire un server Samba (SMB / CIFS) all'interno di un contenitore Proxmox LXC ed esporre le cartelle ai client Windows / macOS / Linux sulla rete. ProxMenux installa samba, crea un utente Samba con smbpasswd, gestisce /etc/samba/smb.conf, e applica permessi adatti ai bind mount quando la cartella condivisa viene dall'host.",
"section": "Archiviazione e condivisione · LXC"
},
"privReq": {
"title": "Contenitore privilegiato richiesto",
"body": "Samba impersona l'utente di collegamento con setgroups() su ogni connessione albero (il momento in cui un cliente apre una condivisione). In un LXC non privilegiato, il kernel rifiuta la chiamata di sistema perché lo spazio di nome utente del contenitore è creato con setgroups=deny — e smbd risponde interrompendo il processo di lavorazione con PANIC: sys_setgroups failed. Il risultato è che smbd inizia e lega porte 139/445, ma ogni connessione client non funziona con NT_STATUS_CONNECTION_DISCONNECTED. Lo script applica un CT privilegiato per questo motivo e si interrompe se il CT non è privilegiato. Non c'è correzione pulita sul lato server; utilizzare un CT privilegiato, o eseguire Samba all'interno di una VM."
},
"what": {
"heading": "Cosa succede?",
"body": "Il contenitore diventa un server SMB/CIFS: esegue smbd, espone una cartella tramite /etc/samba/smb.conf e accetta le connessioni client sulle porte 139 / 445. I client vedono la condivisione a \\\\<ct-ip>\\<share-name> in Windows Explorer, smb://<ct-ip>/<share-name> in macOS Finder, o tramite mount.cifs su Linux.",
"diagramServerLabel": "LXC (privilegiato) — server Samba",
"diagramServerDetail": "/mnt/data\n(cartella condivisa)\n\nsmbd + nmbd in esecuzione\n\nUtente: \n(via smbpasswd)\n\nGruppo imposto:\nsharedfiles",
"diagramClientLabel": "Qualsiasi client sulla rete",
"diagramClientDetail": "Windows: \\\\\\\nmacOS: smb:///\nLinux: mount.cifs",
"diagramArrow": "SMB / CIFS"
},
"perms": {
"heading": "Due percorsi di autorizzazione a seconda del tipo di cartella",
"body": "Prima di aggiungere la condivisione a smb.conf, lo script verifica se la cartella scelta è un bind mount proveniente dall’host oppure una normale cartella locale nel CT. Imposta quindi proprietario e permessi in modo diverso:",
"headerType": "Tipo di cartella",
"headerAction": "Cosa fa lo script",
"bindType": "Bind-mount da host",
"bindTypeSubRich": "rilevato tramite uscita mount",
"bindActionRich": "Crea gruppo sharedfiles (default GID 999, dinamico se assunto), aggiunge l'utente Samba ad esso, poi chown root:sharedfiles + chmod 2775 (SGID — nuovi file ereditano il gruppo). Se l'utente non può ancora scrivere, applica setfacl -m u:<user>:rwx.",
"localType": "Cartella locale dentro CT",
"localTypeSub": "nessun bind mount rilevato",
"localActionRich": "Proprietà standard: chown -R <user>:<user> + chmod -R 755. Nessun gruppo condiviso necessario perché nessun altro CT scrive a questa cartella. Torna a setfacl se manca ancora l'accesso alla scrittura.",
"gidTitle": "GID per 'sharedfiles' differisce dal flusso server NFS",
"gidBody": "Lo script del server Samba utilizza GID 999 per sharedfiles, mentre il flusso del server NFS utilizza GID 101000. Se si esegue entrambi i server nello stesso CT e desiderare un singolo gruppo condiviso su entrambi i protocolli, modificare uno di loro per abbinare l'altro dopo l'installazione (ad es. groupmod -g 101000 sharedfiles) e riapplicare la proprietà sulle cartelle interessate. Questa è una nota incoerenza negli script attuali."
},
"opening": {
"heading": "Apertura dello strumento",
"body": "Dal menu principale, apri Storage & Share Manager → Configure Samba Server in LXC. Sono elencati solo i CT privilegiati. Scegli il CT di destinazione; lo script lo avvia se è fermo e rifiuta i CT non privilegiati. Il menu presenta cinque opzioni.",
"imageAlt": "Menu Samba Server Manager — Crea / Visualizza / Elimina / Stato / Disinstallare"
},
"howRuns": {
"heading": "Come funziona lo script (Crea flusso)"
},
"modes": {
"heading": "Le tre modalità di condivisione",
"intro": "Ogni modalità scrive una sezione diversa in smb.conf. Tutti e tre includono valid users = <username> (non anonimo), force group = sharedfiles (così nuovi file appartengono al gruppo condiviso) e veto files = /lost+found/ (nascondere dai clienti).",
"headerMode": "Modalità",
"headerBlock": "Blocco scritto a smb.conf",
"rwMode": "Lettura e scrittura",
"roMode": "Sola lettura",
"customMode": "Personalizzato",
"customBodyRich": "Digita le tue direttive in una scatola di testo libero. ProxMenux li avvolge ancora in un blocco [share] con lo standard path, valid users, force group e veto files."
},
"manual": {
"heading": "Equivalente manuale",
"body": "Riproduci manualmente l’intera procedura. Ogni comando viene eseguito nel CT tramite pct exec <ctid> -- o pct enter <ctid>:"
},
"connect": {
"heading": "Collegamento da clienti",
"headerOs": "Sistema operativo del client",
"headerHow": "Come collegare",
"windowsOs": "Windows",
"windowsHowRich": "Esplora file → barra degli indirizzi: \\\\<ct-ip>\\<share-name>. Oppure Connetti unità di rete → seleziona «Connetti con credenziali diverse».",
"macosOs": "macOS",
"macosHowRich": "Finder → Vai → Connessione al server... → smb://<ct-ip>/<share-name>. O 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. Oppure utilizzare il client Samba nella pagina LXC se il client è un altro Proxmox CT."
},
"view": {
"heading": "Visualizza le condivisioni attuali",
"body": "Analizza /etc/samba/smb.conf all'interno del CT e elenca ogni blocco [share] (saltando [global], [homes], [printers]) con il suo percorso. Utile come un inventario rapido."
},
"delete": {
"heading": "Elimina una condivisione",
"body": "Consente di selezionare una condivisione per nome, rimuove il blocco da smb.conf (sed cancella da [share] fino alla prossima riga vuota), e riavvia smbd. La cartella stessa e il suo contenuto sono lasciati intatti."
},
"status": {
"heading": "Controlla lo stato Samba",
"body": "Indica se smbd e nmbd sono installati e attivi, elenca gli utenti Samba (pdbedit -L) e mostra le sessioni attive (smbstatus)."
},
"uninstall": {
"heading": "Disinstallare il server Samba",
"body": "Pulizia completa dopo conferma: arresta e disabilita smbd e nmbd, salva smb.conf in smb.conf.backup.YYYYMMDD_HHMMSS, rimuove gli utenti Samba con smbpasswd -x e i pacchetti Samba con apt-get purge. Le cartelle esportate non vengono eliminate.",
"warnTitle": "Le cartelle rimangono — esegui il backup dei dati separatamente",
"warnBody": "Elimina condivisione e Disinstalla server Samba rimuovono la configurazione della condivisione. I dati delle cartelle esportate vengono conservati. Per eliminarli, usa esplicitamente rm -rf dopo la fine dello script."
},
"troubleshoot": {
"heading": "Risoluzione dei problemi",
"privTitle": "Richiesto un container privilegiato (lo script si interrompe)",
"privBody": "Il CT selezionato non è privilegiato e smbd non può servire i file lì. Se si bypassa il controllo e si configura Samba a mano, smbd inizia e le porte si aprono, ma la prima connessione client provoca un arresto con PANIC: sys_setgroups failed in /var/log/samba/log.<client> e il client vede NT_STATUS_CONNECTION_DISCONNECTED. La causa è lo spazio di nome utente non privilegiato con setgroups=deny, che blocca l'impersonazione per connessione di Samba. Né features=keyctl=1 né rimuovere force user / force group cambia questo. Le uniche opzioni praticabili sono: convertire il CT in privilegiato, o spostare Samba in una VM.",
"aptTitle": "apt-get install non riesce",
"aptIntro": "Lo script assume una famiglia Debian CT. Su Alpine / Arch / Rocky / Alma, installare Samba a mano:",
"aptItems": [
"Alpine: apk add samba",
"Arch: pacman -S samba",
"Rocky / Alma: dnf install samba"
],
"aptOutro": "Esegui di nuovo lo script ProxMenux; l’installazione viene saltata se gli strumenti sono già presenti.",
"noShareTitle": "Il client si connette ma non vede la condivisione",
"noShareBody": "Controllare che browseable = yes è impostato nel blocco della condivisione (default per modalità rw / ro; può essere mancante in personalizzato). Controllare anche il firewall CT e il firewall host Proxmox consentire TCP 445 (SMB) e 139 (NetBIOS). Alcuni client Windows richiedono anche la risoluzione dei nomi — prova l'IP direttamente prima.",
"authTitle": "L'autenticazione fallisce (NT_STATUS_LOGON_FAILURE)",
"authBody": "La password è errata (le password Samba sono separate da quelle di sistema; elenca gli utenti Samba con pdbedit -L) oppure l’utente manca in valid users per la condivisione. Reimposta la password nel CT con smbpasswd <user>.",
"groupTitle": "I file scritti dal client appaiono con gruppo sbagliato sul server",
"groupBody": "Lo script imposta force group = sharedfiles nel blocco della condivisione, quindi nuovi file dovrebbero essere di gruppo sharedfiles. Se non lo sono, il bit SGID sulla directory principale può essere perso (qualcuno ha eseguito chmod a mano). Riapplica: chmod 2775 /mnt/<share>.",
"bothTitle": "Condividere la stessa cartella sia su NFS che su Samba",
"bothBody": "ProxMenux utilizza diversi GID per sharedfiles in ogni script (Samba: 999, NFS: 101000). Se si serve la stessa cartella tramite entrambi, decidere su un GID e allineare entrambi. La soluzione più semplice: dopo aver eseguito entrambi gli script, modificare il GID più piccolo:"
},
"related": {
"heading": "Correlati",
"items": [
{
"href": "/docs/storage-share/lxc-samba-client",
"label": "client Samba in LXC",
"tail": " — il caso inverso: montare condivisioni Samba esterne nel CT."
},
{
"href": "/docs/storage-share/lxc-nfs-server",
"label": "Server NFS in LXC",
"tail": " — pagina correlata, stesso schema con NFS al posto di CIFS."
},
{
"href": "/docs/storage-share/host-samba",
"label": "Samba / CIFS come storage Proxmox",
"tailRich": " — quando il CT espone l’esportazione, registra la condivisione Samba in Proxmox per visualizzarla in Datacenter → Storage."
}
]
}
}