Files

133 lines
12 KiB
JSON

{
"meta": {
"title": "Samba server i LXC | ProxMenux Dokumentation",
"description": "Kör en Samba (SMB / CIFS) server i en Proxmox LXC container med ProxMenux. Auto-installerar samba, hanterar /etc/samba/smb.conf, smbpasswd-användare, sharedfiles grupp för bindmonterade mappar. Kräver en privilegierad container.",
"ogTitle": "Samba server i LXC | ProxMenux Dokumentation",
"ogDescription": "Dela mappar via SMB/CIFS från en privilegierad LXC-container. Automatisk installation, smbpasswd-användare och behörigheter anpassade till bind-monteringar."
},
"header": {
"title": "Samba server i LXC",
"description": "Kör en Samba (SMB / CIFS) server i en Proxmox LXC container och exponera mappar till Windows / macOS / Linux klienter på nätverket. ProxMenux installerar samba, skapar en Samba användare med smbpasswd, hanterar /etc/samba/smb.conf, och tillämpar behörigheter anpassade till bind-monteringar när den delade mappen kommer från värden.",
"section": "Lagring & Dela · LXC"
},
"privReq": {
"title": "Privilegierad container krävs",
"body": "Samba antar den anslutande användarens identitet med <code>setgroups()</code> på varje trädanslutning (det ögonblick en klient öppnar en delning). I en oprivilegierad LXC avvisar kärnan det syscall eftersom containerns användarnamnrymd skapas med <code>setgroups=deny</code> - och <code>smbd</code> svarar genom att avsluta arbetsprocessen med <code>PANIC: sys_setgroups failed</code>. Resultatet är att <code>smbd</code> startar och binder portar 139/445, men varje klientanslutning misslyckas med <code>NT_STATUS_CONNECTION_DISCONNECTED</code>. Skriptet genomdriver en privilegierad CT av denna anledning och <strong>avbryter om CT:n är oprivilegierad</strong>. Det finns ingen ren fix på serversidan; använd en privilegierad CT eller kör Samba i en VM."
},
"what": {
"heading": "Vad detta gör",
"body": "Containern blir en SMB/CIFS-server: den kör <code>smbd</code>, exponerar en mapp via <code>/etc/samba/smb.conf</code> och accepterar klientanslutningar på portar <code>139</code>/<code>445</code>. Klienterna ser delningen på <code>\\\\&lt;ct-ip&gt;\\&lt;share-name&gt;</code> i Windows Explorer, <code>smb://&lt;ct-ip&gt;/&lt;share-name&gt;</code> i macOS Finder, eller via <code>mount.cifs</code> på Linux.",
"diagramServerLabel": "LXC (privilegierad) - Samba server",
"diagramServerDetail": "/mnt/data\n(mappen du delar)\n\nsmbd + nmbd körs\n\nAnvändare: <username>\n(via smbpasswd)\n\nTvingad grupp:\nsharedfiles",
"diagramClientLabel": "Valfri klient i nätverket",
"diagramClientDetail": "Windows: \\\\<ip>\\<share>\nmacOS: smb://<ip>/<share>\nLinux: mount.cifs",
"diagramArrow": "SMB / CIFS"
},
"perms": {
"heading": "Två tillståndsvägar beroende på mapptypen",
"body": "Innan delningen läggs till i <code>smb.conf</code> kontrollerar skriptet om mappen är en <strong>bind-montering från värden</strong> eller en vanlig <strong>lokal mapp i CT:n</strong> och anpassar ägare och behörigheter därefter:",
"headerType": "Mapptyp",
"headerAction": "Vad manuset gör",
"bindType": "Bind-mount från värd",
"bindTypeSubRich": "Detekteras via <code>mount</code>-utgång",
"bindActionRich": "Skapar grupp <code>sharedfiles</code> (standard GID 999, dynamisk om det tas), lägger till Samba-användaren till den, sedan <code>chown root:sharedfiles</code> + <code>chmod 2775</code> (SGID - nya filer ärver gruppen). Om användaren fortfarande inte kan skriva gäller <code>setfacl -m u:&lt;user&gt;:rwx</code>.",
"localType": "Lokal mapp i CT",
"localTypeSub": "Ingen bind-montering upptäckt",
"localActionRich": "Standard ägande: <code>chown -R &lt;user&gt;:&lt;user&gt;</code> + <code>chmod -R 755</code>. Ingen delad grupp behövdes eftersom ingen annan CT skriver till den här mappen. Falls tillbaka till <code>setfacl</code> om skrivåtkomst fortfarande saknas.",
"gidTitle": "GID för \"sharedfiles\" skiljer sig från NFS-serverflödet",
"gidBody": "Samba server script använder GID <strong>999</strong> för <code>sharedfiles</code>, medan <nfsLink>NFS server flow</nfsLink> använder GID <strong>101000</strong>. Om du kör båda servrarna i samma CT och vill ha en gemensam grupp över båda protokollen, redigera en av dem för att matcha den andra efter installationen (t.ex. <code>groupmod -g 101000 sharedfiles</code>) och sätt ägare på de berörda mapparna igen. Detta är en känd inkonsekvens i de nuvarande skripten."
},
"opening": {
"heading": "Öppna verktyget",
"body": "Öppna <strong>Storage & Share Manager → Configure Samba Server in LXC</strong> i huvudmenyn. Endast privilegierade CT:er visas. Välj mål-CT:n; skriptet startar den om den är stoppad och avvisar oprivilegierade CT:er. Menyn har fem alternativ.",
"imageAlt": "Samba Server Manager-menyn - Skapa / Visa / Ta bort / Status / Avinstallera"
},
"howRuns": {
"heading": "Hur manuset går (Skapa flöde)"
},
"modes": {
"heading": "De tre delningslägena",
"intro": "Varje läge skriver en annan stanza till <code>smb.conf</code>. Alla tre inkluderar <code>valid users = &lt;username&gt;</code> (ingen anonym), <code>force group = sharedfiles</code> (så nya filer tillhör den delade gruppen) och <code>veto files = /lost+found/</code> (döljer det från kunder).",
"headerMode": "Läge",
"headerBlock": "Block skriven till smb.conf",
"rwMode": "Läsning och skrivning",
"roMode": "Skrivskyddad",
"customMode": "Anpassad",
"customBodyRich": "Du skriver dina egna direktiv i en fritextlåda. ProxMenux placerar dem fortfarande i ett <code>[share]</code> block med standard <code>path</code>, <code>valid users</code>, <code>force group</code> och <code>veto files</code>."
},
"manual": {
"heading": "Manuell motsvarande",
"body": "Utför hela flödet manuellt. Varje kommando körs <strong>inne i CT:n</strong> via <code>pct exec &lt;ctid&gt; --</code> eller <code>pct enter &lt;ctid&gt;</code>:"
},
"connect": {
"heading": "Ansluta från klienter",
"headerOs": "Klientens operativsystem",
"headerHow": "Hur att ansluta",
"windowsOs": "Windows",
"windowsHowRich": "Utforskaren → adressfältet: <code>\\\\&lt;ct-ip&gt;\\&lt;share-name&gt;</code>. Eller <em>Anslut nätverksenhet</em> → markera ”Anslut med andra autentiseringsuppgifter”.",
"macosOs": "macOS",
"macosHowRich": "Finder → <em>Gå → Anslut till Server...</em> → <code>smb://&lt;ct-ip&gt;/&lt;share-name&gt;</code>. Eller <code>mount_smbfs //user@&lt;ct-ip&gt;/&lt;share&gt; /mountpoint</code>.",
"linuxOs": "Linux",
"linuxHowRich": "<code>mount -t cifs //&lt;ct-ip&gt;/&lt;share&gt; /mnt/x -o username=&lt;u&gt;,password=&lt;p&gt;,iocharset=utf8</code>. Eller använd <clientLink>Samba-klienten i LXC</clientLink>-sida om kunden är en annan Proxmox CT."
},
"view": {
"heading": "Visa aktuella delningar",
"body": "Läser <code>/etc/samba/smb.conf</code> inuti CT och listar varje <code>[share]</code> block (skippa <code>[global]</code>, <code>[homes]</code>, <code>[printers]</code>) med sin väg. Användbart som en snabb inventering."
},
"delete": {
"heading": "Ta bort en delning",
"body": "Låter dig välja en delning med namn, tar bort blocket från <code>smb.conf</code> (<code>sed</code> raderar från <code>[share]</code> ner till nästa tomma rad) och startar om <code>smbd</code>. Mappen själv och dess innehåll lämnas intakt."
},
"status": {
"heading": "Kontrollera Samba status",
"body": "Rapporter om <code>smbd</code> och <code>nmbd</code> är installerade och aktiva, listar Samba-användare (<code>pdbedit -L</code>) och trycker aktiva sessioner (<code>smbstatus</code>)."
},
"uninstall": {
"heading": "Avinstallera Samba server",
"body": "Fullständig rensning efter bekräftelse: stoppar och inaktiverar <code>smbd</code> och <code>nmbd</code>, säkerhetskopierar <code>smb.conf</code> till <code>smb.conf.backup.YYYYMMDD_HHMMSS</code>, tar bort Samba-användare med <code>smbpasswd -x</code> och Samba-paketen med <code>apt-get purge</code>. De <strong>exporterade mapparna raderas inte</strong>.",
"warnTitle": "Mappar överlever - säkerhetskopiera data separat",
"warnBody": "<em>Ta bort delning</em> och <em>Avinstallera Samba-server</em> tar bort delningskonfigurationen. Data i de delade mapparna bevaras. Om även data ska tas bort, gör det uttryckligen med <code>rm -rf</code> efter att skriptet avslutats."
},
"troubleshoot": {
"heading": "Felsökning",
"privTitle": "Privilegierad container krävs (skriptet avbryter)",
"privBody": "Den valda CT är oprivilegierad och <code>smbd</code> kan inte servera filer där. Om du kringgår kontrollen och konfigurerar Samba för hand börjar <code>smbd</code> och portarna öppna, men den första klientanslutningen orsakar en panik med <code>PANIC: sys_setgroups failed</code> i <code>/var/log/samba/log.&lt;client&gt;</code> och klienten ser <code>NT_STATUS_CONNECTION_DISCONNECTED</code>. Orsaken är det oprivilegierade användarnamnrymden med <code>setgroups=deny</code>, som blockerar Sambas per-anslutning impersonation. Varken <code>features=keyctl=1</code> eller ta bort <code>force user</code>/<code>force group</code> ändrar detta. De enda användbara alternativen är: konvertera CT till privilegierad, eller flytta Samba till en VM.",
"aptTitle": "apt-get install misslyckas",
"aptIntro": "Manuset antar en Debian-familj CT. På Alpine / Arch / Rocky / Alma, installera Samba för hand:",
"aptItems": [
"Alpine: <code>apk add samba</code>",
"Arch: <code>pacman -S samba</code>",
"Rocky / Alma: <code>dnf install samba</code>"
],
"aptOutro": "Kör sedan ProxMenux-skriptet igen; installationen hoppas över om verktygen redan finns.",
"noShareTitle": "Klienten ansluter men ser inte delningen",
"noShareBody": "Kontrollera att <code>browseable = yes</code> är inställd i delningsblocket (standard för rw / ro-lägen; kan saknas i anpassad). Kontrollera också CT brandvägg och Proxmox värd brandvägg tillåter TCP 445 (SMB) och 139 (NetBIOS). Vissa Windows-klienter kräver också namnupplösning - prova IP direkt först.",
"authTitle": "Autentisering misslyckas (NT_STATUS_LOGON_FAILURE)",
"authBody": "Antingen är lösenordet fel (Samba-lösenord är <em>separata</em> från systemlösenord; lista Samba-användare med <code>pdbedit -L</code>) eller saknas användaren i <code>valid users</code> för delningen. Återställ lösenordet i CT:n med <code>smbpasswd &lt;user&gt;</code>.",
"groupTitle": "Filer skrivna av kunden visas med fel grupp på servern",
"groupBody": "Skriptet sätter <code>force group = sharedfiles</code> i delningsblocket, så nya filer bör vara grupp <code>sharedfiles</code>. Om de inte är det kan SGID-biten på föräldrakatalogen ha gått förlorad (någon körde <code>chmod</code> för hand). Tillämpa igen: <code>chmod 2775 /mnt/&lt;share&gt;</code>.",
"bothTitle": "Dela samma mapp över både NFS och Samba",
"bothBody": "ProxMenux använder olika GID för <code>sharedfiles</code> i varje manus (Samba: 999, NFS: 101000). Om du tjänar samma mapp via båda, besluta om en GID och anpassa båda. Den enklaste fixen: efter att ha kört båda skripten, redigera den mindre GID:"
},
"related": {
"heading": "Relaterad",
"items": [
{
"href": "/docs/storage-share/lxc-samba-client",
"label": "Samba klient i LXC",
"tail": " — omvänt: montera externa Samba-delningar i en CT."
},
{
"href": "/docs/storage-share/lxc-nfs-server",
"label": "NFS server i LXC",
"tail": " — syskonsidan, samma mönster med NFS istället för CIFS."
},
{
"href": "/docs/storage-share/host-samba",
"label": "Samba / CIFS som Proxmox-lagring",
"tailRich": " — när CT:n delar ut via Samba, registrera Samba-delningen i Proxmox så att den visas under <em>Datacenter → Storage</em>."
}
]
}
}