Linux Samba, SMB, NFS

~ 0 min
2024-10-13 18:14

Samba installieren für SMB/Windows Zugriff
sudo apt-get install samba samba-common
• Freigaben werden in /etc/samba/smb.cnf angelegt

; /etc/samba/smb.conf
[global]
workgroup = Arbeitsgruppe
security = share (Zugriff auf Share ohne Passwort, es gelten nur Verzeichnisrechte)

[public]
path = /public
guest ok = yes (Gästezugriff)
guest only = yes (nur Gäste, Zugriff wird dem Default-Account guest (nobody) zugeordnet)

[daten]
path = /public/uwe
username = uwe
writable = true
browseable = true (Verzeichnis ist sichtbar, unabhängig vom Zugang)
# /etc/samba/smb.conf (Bsp. user-security)
[global]
workgroup = Arbeitsgruppe
security = user
username map = /etc/samba/smbusers
encrypt passwords = yes
map to guest = bad user
guest account = nobody (alle Benutzer ohne Zuordnung in smbusers werden dem Account nobody zugeordnet)

[homes] (Home-Verzeichnis des Linux-Users ist sichbar + RW)
writeable = true
browseable = false

- Verzeichnis public usw. wird für "Arbeitsgruppe" angeboten
- per Default immer read-only = yes, wenn nicht anders angegeben
- security: share / user / server / domain / ads

• Freigabe-User müssen ein Systemkonto (sudo adduser USER) und ein Samba-Konto () sudo smbpasswd -a USER) besitzen, idealerweise mit gleichem Passwort
• gleichlautende Windows-Konten haben Zugriff entsprechend deren Linux-Konten
• es ist möglich, in /etc/samba/smbusers eine Zuordnung Linuxkonto = Windowskonto zu treffen (#root = administrator)

Zugriff auf SMB-Freigaben im Linux Dateimanager:
smb://[IP-Adresse]
Zugriff auf SMB-Freigabe im Windows Dateimanager:
\\192.168.178.20

smbstatus - gibt alle Freigaben, Clients + User aus
Tutorial NFS - Samba: https://administrator.de/tutorial/lan-server-nfs-und-samba-grundlagen-18828.html


SMB-/ NFS-Share
(hdpool1) mit Samba direkt auf Proxmox-Host

  • apt-get install nfs-kernel-server rpcbind  - Dienste installieren, aktivieren, starten
    (https://www.number13.de/zfs-dateisystem-mit-nfs-oder-samba-smb-freigeben/)
  • zfs set sharenfs='rw,no_root_squash,insecure' hdpool1  - Datenpool per NFS frei geben
  • zfs set sharesmb=on pool-name/dataset-name  - Datenpool als SMB frei geben
  • apt-get install samba  - Samba installieren, Freigabe und Berechtgungen einrichten
    chmod 2775 /hdpool1 - Berechtigung setzen
    (https://computingforgeeks.com/how-to-configure-samba-share-on-debian/)
  • nano /etc/samba/smb.conf - Abschnitt für Freigabe(n) einfügen
    [daten1]
       comment = HD-Pool
       path = /hdpool1/daten1
       writable = yes
       guest ok = no
       valid users = @smbshare
       force create mode = 770
       force directory mode = 770
       inherit permissions = yes
    
    Test mit 'testparm'
  • smbclient '\\localhost\hdpool1' -U sambauser - Test vom eigenen Host
  • ggf. Firewall für Samba öffnen

SMB-Freigabe mounten

• CIFS Dateisystem installieren:
sudo apt-get install cifs-utils
• Mount-Verzeichnis (mnt/smb-mountpoint) mit MKDIR anlegen)
• Windows CIFS-Freigabe mounten:
mount -t cifs -o user=MeinLinuxUser //192.168.1.10/Freigabe /mnt/smb-mountpoint
• Verzeichnis dauerhaft mounten:
sudo nano /MyUser/.smbcredentials  - NAS Userdaten hinterlegen

username=maxmuster
password=geheimes-Passwort
domain=workgroup

sudo nano /etc/fstab  - Mount-Zeile in fstab eintragen
//10.20.20.110/pool/smb-freigabe /mnt/smb-mountpoint cifs uid=DeinLinuxNutzername,gid=DeinLinuxNutzername,rw,user,credentials=/home/DeinLinuxNutzername/.smbcredentials 0 0
oder ohne .smbcredentials:
//server/files/home /mnt/EINHAENGEPUNKT cifs uid=1000,gid=1000,rw,user,username=NUTZERNAME,domain=uni-kiel.de 0 0

FSTAB wird als ROOT ausgeführt. Für andere User muß man ggf. die User-ID und die Group-ID hinterlegen.
Die IDs eines Users ermittelt man über folgende Befehle:
id -u USERNAME
id -g USERNAME
Anschließend die ermittelte uid=Nummer und gid=Nummer in den Syntax einbinden.

//servername/sharename /media/windowsshare cifs credentials=/home/ubuntuusername/.smbcredentials, uid=1000,gid=1001,iocharset=utf8,sec=ntlm 0 0

Samba-Server Dienst neu starten:
"sudo service smbd restart" oder "sudo /etc/init.d/smbd restart" sowie "sudo initctl restart smbd"

Alle SMB-Freigaben (per anonymus) testen:
smbclient -N -L //192.168.1.2/

Alle SMB-Freigaben (per User) testen:
smbclient -U User -L //192.168.1.2/


Quelle: https://homelabtopia.com/smb-share-mounten-linux/

Durchschnittliche Bewertung 0 (0 Abstimmungen)

Es ist möglich, diese FAQ zu kommentieren.