Smb.conf.minimal: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(16 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= Vorbereitung =
 
= Vorbereitung =
== Benutzer anlegen ==
+
== Benutzer anlegen (Wenn dieser noch nicht existiert) ==
* '''useradd -m ''user'' -s /bin/bash -g sambashare'''
+
* '''useradd -m ''kit'' -s /bin/bash
  
== Passwörter setzen ==
+
== Passwörter setzen (Wenn dies noch nicht gesetzt ist)==
 +
Der Account muss bei einem einfachen Server zweimal angelegt werden.
 +
* '''passwd ''kit'' '''
 +
== Der Gruppe sambashare zuordnen ==
 +
*'''usermod -aG sambashare kit'''
  
Der Account muss bei einem einfachen Server 2 mal angelegt werden.
+
== Auf Seite von Samba muss der Benutzer nochmal angelegt werden ==
* '''passwd ''user'' '''
+
* '''smbpasswd -a ''kit'' '''
 
 
Geben Sie ein neues Passwort ein:
 
Geben Sie das neue Passwort erneut ein:
 
passwd: Passwort erfolgreich geändert
 
 
 
* '''smbpasswd -a ''user'' '''
 
 
 
New SMB password:
 
Retype new SMB password:
 
Added user ''user''.
 
  
 
= Verzeichnis anlegen und Rechte setzen =
 
= Verzeichnis anlegen und Rechte setzen =
*'''mkdir -pv ''/pfad/zum/share'' '''
+
* '''mkdir -pv /srv/samba/share'''
*'''chown root:sambashare ''/pfad/zum/share'' '''
+
* '''chown root:sambashare /srv/samba/share'''
*'''chmod 775 ''/pfad/zum/share'' '''
+
* '''chmod 2775 /srv/samba/share'''
  
 
= Konfiguration =
 
= Konfiguration =
* '''vim ''/etc/samba/smb.conf'' '''
+
* '''vim /etc/samba/smb.conf'''
  
 
  [global]
 
  [global]
Zeile 33: Zeile 27:
 
  [share]
 
  [share]
 
         comment = Sichtbar
 
         comment = Sichtbar
         path = ''/pfad/zum/share''
+
         path = /srv/samba/share
 
         read only = No
 
         read only = No
 
         store dos attributes = Yes
 
         store dos attributes = Yes
        inherit acls = Yes
 
  
=Optionen=
+
= Optionen =
=global=
+
== global ==
Globale Optionen des Samba Servers
+
Globale Optionen des Samba-Servers.
==workgroup = WORKGROUP==
+
 
Die Arbeitsgruppe oder Domaine.
+
=== workgroup = WORKGROUP ===
==server role = standalone server==
+
Die Arbeitsgruppe oder Domäne.
Ein frei stehender, eigenständiger Server kann ein Arbeitsgruppenserver oder ein Mitglied einer Arbeitsgruppenumgebung sein. Ein Stand-Alone-Server kontrolliert keine Domäne und übernimmt keine Rolle in einer Domäne.  
+
 
==passdb backend = tdbsam==
+
=== server role = standalone server ===
Wo werden die Accounts gespeichert. Das ist ein eigenständiged Datenbank Format
+
Ein eigenständiger Server kann ein Arbeitsgruppenserver oder Mitglied einer Arbeitsgruppenumgebung sein. Er kontrolliert keine Domäne.
 +
 
 +
=== passdb backend = tdbsam ===
 +
Bestimmt, wo die Accounts gespeichert werden (eigenständiges Datenbankformat).
  
=share=
+
== share ==
ist hier der Name der freigabe. share ist kein Schlüsselwort. Es gibt aber welche.
+
Dies ist der Name der Freigabe. "share" ist kein Schlüsselwort, sondern frei wählbar.
==comment = share dir==
 
Ein Kommentar
 
==path = /mnt/media/share==
 
Der Pfad zum Ordner. Dieser muss existieren und man muss zugreifen können.
 
==store dos attributes = Yes==
 
  
==inherit acls = Yes==
+
=== comment ===
Die Rechte werden vererbt
+
Ein beschreibender Kommentar für die Freigabe.
  
==path = /mnt/media/share==
+
=== path ===
Der Pfad zum Ordner. Dieser muss existieren und man muss zugreifen können.
+
Der Pfad zum Ordner auf dem Dateisystem. Dieser muss existieren und die Berechtigungen müssen korrekt gesetzt sein.
==store dos attributes = Yes===
 
  
==inherit acls = Yes==
+
=== store dos attributes = Yes ===
Die Rechte werden vererbt
+
Erlaubt das Speichern von DOS-Attributen (wie "Hidden" oder "Archive") im Dateisystem.
  
==read only = no==
+
=== inherit acls = Yes ===
Man darf die Freigabe beschreiben
+
Bewirkt, dass neue Dateien und Unterverzeichnisse die ACLs des übergeordneten Verzeichnisses erben.
=Tests=
+
 
==Läuft der Dienst?==
+
=== read only = No ===
*systemctl status smbd
+
Gibt an, ob auf die Freigabe geschrieben werden darf (entspricht "writable = Yes").
 +
 
 +
= Tests =
 +
== Läuft der Dienst ==
 +
* '''systemctl status smbd'''
 
<pre>
 
<pre>
 
● smbd.service - Samba SMB Daemon
 
● smbd.service - Samba SMB Daemon
     Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: en>
+
     Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled)
 
     Active: active (running) since Sun 2023-02-19 14:13:24 CET; 9min ago
 
     Active: active (running) since Sun 2023-02-19 14:13:24 CET; 9min ago
      Docs: man:smbd(8)
 
            man:samba(7)
 
            man:smb.conf(5)
 
    Process: 35115 ExecStartPre=/usr/share/samba/update-apparmor-samba-profile (c>
 
  Main PID: 35124 (smbd)
 
    Status: "smbd: ready to serve connections..."
 
      Tasks: 4 (limit: 2339)
 
    Memory: 8.3M
 
        CPU: 230ms
 
    CGroup: /system.slice/smbd.service
 
            ├─35124 /usr/sbin/smbd --foreground --no-process-group
 
            ├─35126 /usr/sbin/smbd --foreground --no-process-group
 
            ├─35127 /usr/sbin/smbd --foreground --no-process-group
 
            └─35128 /usr/sbin/smbd --foreground --no-process-group
 
 
</pre>
 
</pre>
=Sind die Ports offen?=
+
 
*ss -lntp | egrep "139|445"
+
== Sind die Ports offen ==
 +
* '''ss -lntp | egrep "139|445"'''
 
<pre>
 
<pre>
tcp        0      0 0.0.0.0:445            0.0.0.0:*               LISTEN      35124/smbd           
+
tcp        0      0 0.0.0.0:445            0.0.0.0:* LISTEN      35124/smbd           
tcp        0      0 0.0.0.0:139            0.0.0.0:*               LISTEN      35124/smbd         
+
tcp        0      0 0.0.0.0:139            0.0.0.0:* LISTEN      35124/smbd           
tcp6      0      0 :::445                  :::*                    LISTEN      35124/smbd         
 
tcp6      0      0 :::139                  :::*                    LISTEN      35124/smbd           
 
 
</pre>
 
</pre>
  
=Anonymes Browsing=
+
== Anonymes Browsing ==
*smbclient -U% -L localhost
+
* '''smbclient -N -L ''ip.oder.host.name'' '''
<pre>
+
 
Sharename      Type      Comment
+
== Anonymer Zugriff ==
---------      ----      -------
+
* '''smbclient -U % //localhost/share'''
share          Disk      share dir
 
IPC$            IPC      IPC Service (Samba 4.13.13-Debian)
 
SMB1 disabled -- no workgroup available
 
</pre>
 
=Anonymes Zugriff=
 
*smbclient -U % //localhost/share
 
 
  tree connect failed: NT_STATUS_ACCESS_DENIED
 
  tree connect failed: NT_STATUS_ACCESS_DENIED
=Personifizierter Zugriff=
 
*'''smbclient -U ''user''%''password'' //ip.oder.host.name/name_des_shares
 
Try "help" to get a list of possible commands.
 
  
=Die Befehle hier sind ähnlich wie beim ftp Client=
+
== Personifizierter Zugriff ==
*smb: \> dir  
+
* '''smbclient -U ''user''%''password'' //ip.oder.host.name/share'''
<pre>
+
 
dir
+
= Befehle im smbclient =
  .                                  D        0  Sun Feb 19 14:35:04 2023
+
Die Befehle sind ähnlich wie bei einem FTP-Client.
  ..                                  D        0  Sun Feb 19 14:35:04 2023
+
 
 +
== Verzeichnisinhalt ==
 +
* '''smb: \> dir'''
  
31861548 blocks of size 1024. 27737256 blocks available
+
== Hilfe anzeigen ==
</pre>
+
* '''smb: \> help'''
=Die Hilfe=
 
*smb: \> help
 
<pre>
 
?              allinfo        altname        archive        backup       
 
blocksize      cancel        case_sensitive cd            chmod         
 
chown          close          del            deltree        dir           
 
du            echo          exit          get            getfacl       
 
geteas        hardlink      help          history        iosize       
 
lcd            link          lock          lowercase      ls           
 
l              mask          md            mget          mkdir         
 
more          mput          newer          notify        open         
 
posix          posix_encrypt  posix_open    posix_mkdir    posix_rmdir   
 
posix_unlink  posix_whoami  print          prompt        put           
 
pwd            q              queue          quit          readlink     
 
rd            recurse        reget          rename        reput         
 
rm            rmdir          showacls      setea          setmode       
 
scopy          stat          symlink        tar            tarmode       
 
timeout        translate      unlock        volume        vuid         
 
wdel          logon          listconnect    showconnect    tcon         
 
tdis          tid            utimes        logoff        ..           
 
!             
 
</pre>
 
=Datei hochladen=
 
*mput .bashrc
 
Put file .bashrc? y
 
=Umbnennen=
 
*rename .bashrc bashrc
 
=Datei runterladen=
 
*mget bashrc
 
Get file bashrc? y
 
getting file \bashrc of size 571 as bashrc (278,8 KiloBytes/sec) (average 278,8 KiloBytes/sec)
 
=ACL Anzeige anschalten=
 
*smb: \> showacls
 
=Ausgabe testen=
 
*smb: \> dir
 
<pre>
 
FILENAME:bashrc
 
MODE:A
 
SIZE:571
 
MTIME:Sun Feb 19 15:04:15 2023
 
revision: 1
 
type: 0x9004: SEC_DESC_DACL_PRESENT SEC_DESC_DACL_PROTECTED SEC_DESC_SELF_RELATIVE
 
DACL
 
ACL Num ACEs: 3 revision: 2
 
---
 
ACE
 
type: ACCESS ALLOWED (0) flags: 0x00
 
Specific bits: 0x1ff
 
Permissions: 0x1e01ff: SYNCHRONIZE_ACCESS WRITE_OWNER_ACCESS WRITE_DAC_ACCESS READ_CONTROL_ACCESS
 
SID: S-1-5-21-278214866-4069143577-128479991-1000
 
  
ACE
+
== Datei hochladen ==
type: ACCESS ALLOWED (0) flags: 0x00
+
* '''smb: \> mput .bashrc'''
Specific bits: 0x89
 
Permissions: 0x120089: SYNCHRONIZE_ACCESS READ_CONTROL_ACCESS
 
SID: S-1-22-2-100
 
  
ACE
+
== Datei umbenennen ==
type: ACCESS ALLOWED (0) flags: 0x00
+
* '''smb: \> rename .bashrc bashrc'''
Specific bits: 0x89
 
Permissions: 0x120089: SYNCHRONIZE_ACCESS READ_CONTROL_ACCESS
 
SID: S-1-1-0
 
  
Owner SID: S-1-5-21-278214866-4069143577-128479991-1000
+
== Datei herunterladen ==
Group SID: S-1-22-2-100
+
* '''smb: \> mget bashrc'''
  
31861548 blocks of size 1024. 27737236 blocks available
+
== ACL Anzeige ==
</pre>
+
* '''smb: \> showacls''' (zum Einschalten)
=ACL Anzeige abschalten=
+
* '''smb: \> dir''' (zur Kontrolle der ACLs)
*smb: \> showacls
+
* '''smb: \> showacls''' (zum Ausschalten)

Aktuelle Version vom 31. März 2026, 14:52 Uhr

Vorbereitung

Benutzer anlegen (Wenn dieser noch nicht existiert)

  • useradd -m kit -s /bin/bash

Passwörter setzen (Wenn dies noch nicht gesetzt ist)

Der Account muss bei einem einfachen Server zweimal angelegt werden.

  • passwd kit

Der Gruppe sambashare zuordnen

  • usermod -aG sambashare kit

Auf Seite von Samba muss der Benutzer nochmal angelegt werden

  • smbpasswd -a kit

Verzeichnis anlegen und Rechte setzen

  • mkdir -pv /srv/samba/share
  • chown root:sambashare /srv/samba/share
  • chmod 2775 /srv/samba/share

Konfiguration

  • vim /etc/samba/smb.conf
[global]
        workgroup = WORKGROUP
        server role = standalone server
        passdb backend = tdbsam
        usershare allow guests = Yes
[share]
        comment = Sichtbar
        path = /srv/samba/share
        read only = No
        store dos attributes = Yes

Optionen

global

Globale Optionen des Samba-Servers.

workgroup = WORKGROUP

Die Arbeitsgruppe oder Domäne.

server role = standalone server

Ein eigenständiger Server kann ein Arbeitsgruppenserver oder Mitglied einer Arbeitsgruppenumgebung sein. Er kontrolliert keine Domäne.

passdb backend = tdbsam

Bestimmt, wo die Accounts gespeichert werden (eigenständiges Datenbankformat).

share

Dies ist der Name der Freigabe. "share" ist kein Schlüsselwort, sondern frei wählbar.

comment

Ein beschreibender Kommentar für die Freigabe.

path

Der Pfad zum Ordner auf dem Dateisystem. Dieser muss existieren und die Berechtigungen müssen korrekt gesetzt sein.

store dos attributes = Yes

Erlaubt das Speichern von DOS-Attributen (wie "Hidden" oder "Archive") im Dateisystem.

inherit acls = Yes

Bewirkt, dass neue Dateien und Unterverzeichnisse die ACLs des übergeordneten Verzeichnisses erben.

read only = No

Gibt an, ob auf die Freigabe geschrieben werden darf (entspricht "writable = Yes").

Tests

Läuft der Dienst

  • systemctl status smbd
● smbd.service - Samba SMB Daemon
     Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2023-02-19 14:13:24 CET; 9min ago

Sind die Ports offen

  • ss -lntp | egrep "139|445"
tcp        0      0 0.0.0.0:445             0.0.0.0:* LISTEN      35124/smbd          
tcp        0      0 0.0.0.0:139             0.0.0.0:* LISTEN      35124/smbd          

Anonymes Browsing

  • smbclient -N -L ip.oder.host.name

Anonymer Zugriff

  • smbclient -U % //localhost/share
tree connect failed: NT_STATUS_ACCESS_DENIED

Personifizierter Zugriff

  • smbclient -U user%password //ip.oder.host.name/share

Befehle im smbclient

Die Befehle sind ähnlich wie bei einem FTP-Client.

Verzeichnisinhalt

  • smb: \> dir

Hilfe anzeigen

  • smb: \> help

Datei hochladen

  • smb: \> mput .bashrc

Datei umbenennen

  • smb: \> rename .bashrc bashrc

Datei herunterladen

  • smb: \> mget bashrc

ACL Anzeige

  • smb: \> showacls (zum Einschalten)
  • smb: \> dir (zur Kontrolle der ACLs)
  • smb: \> showacls (zum Ausschalten)