mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-11-02 10:52:22 +00:00
133 lines
12 KiB
JSON
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>\\\\<ct-ip>\\<share-name></code> i Windows Explorer, <code>smb://<ct-ip>/<share-name></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:<user>:rwx</code>.",
|
|
"localType": "Lokal mapp i CT",
|
|
"localTypeSub": "Ingen bind-montering upptäckt",
|
|
"localActionRich": "Standard ägande: <code>chown -R <user>:<user></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 = <username></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 <ctid> --</code> eller <code>pct enter <ctid></code>:"
|
|
},
|
|
"connect": {
|
|
"heading": "Ansluta från klienter",
|
|
"headerOs": "Klientens operativsystem",
|
|
"headerHow": "Hur att ansluta",
|
|
"windowsOs": "Windows",
|
|
"windowsHowRich": "Utforskaren → adressfältet: <code>\\\\<ct-ip>\\<share-name></code>. Eller <em>Anslut nätverksenhet</em> → markera ”Anslut med andra autentiseringsuppgifter”.",
|
|
"macosOs": "macOS",
|
|
"macosHowRich": "Finder → <em>Gå → Anslut till Server...</em> → <code>smb://<ct-ip>/<share-name></code>. Eller <code>mount_smbfs //user@<ct-ip>/<share> /mountpoint</code>.",
|
|
"linuxOs": "Linux",
|
|
"linuxHowRich": "<code>mount -t cifs //<ct-ip>/<share> /mnt/x -o username=<u>,password=<p>,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.<client></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 <user></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/<share></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>."
|
|
}
|
|
]
|
|
}
|
|
}
|