Nuotrauka_generuota_Geminio_84jo6s84jo6s84jo.jpeg

Dalintis aplanku su Samba įvykdami Debian 13 (bendra / privatus)

0 komentaras(-ai)

Kiekvieną kartą, kai reikia suteikti prieigę prie Samba aplanko po to, kaip atnaujinu savo Debian, aš sekdami turtus.

Ateinau pamiršti iškart nuo vienos įvesties iki kitos, nes gali elgtis trys metai tarp dviejų atnaujinimų.

Dėl to, aš parašiau šį tutorialą savęs ir jums, kad būtų naudinga.

Aš taip pat paaiškinsiu, kad atnaujinsiu šį tutorialą pagal naujesnius Debian versijas, kurie bus išleisti, o jums tai padės.

Mūsų dalykai šiandien:

  • Įkelti aplanką /mnt/DATA/ sistemą paleidžiant su naudojant disks, grafikinę programą.
  • Instaliuoti Samba.
  • Nustatyti Samba, kad būtų galima bendrauti be jokių ribojimų (/mnt/DATA/Public) tik skaitymu.
  • Nustatyti Samba, kad būtų galima bendrauti su autentifikacija skaitymu ir rašymu (/mnt/DATA).

1. Pradėjimo išvados


Rekomenduoju būti sudoers sąraše, bet tai nereikia, galite daryti kaip root (komanda su).

Paaiškinsiu taip pat, kad turėtumėte vengti prisijungimo kaip su, nes tai blogas gyvenimas, kurį aš dažniausiai atlieku.

2. Patikrinimai


Norint nepasidaryti sunkumų, turime patikrinti šiuos elementus:

  • Patikrinkite, ar bendras aplankas yra egzistuoja ir jis turi teises.
  • Darykite tokią patį su privatus aplanku.
  • Patikrinkite, ar jusų privatūs vartotojas yra egzistuoja
Bash
# Vérifions que nos répertoire existe, privée et publique
ls -ld /mnt/DATA /mnt/DATA/Public
# Vérifion si le disque DATA est monté au démarrage
mount | grep DATA
# Regardons si notre utilisateur stunivers est connu du système :
id stunivers

Štai išvestis mūsų atveju:

Text
# ls -ld /mnt/DDAS /mnt/DDAS/Public
drwxrwx--- 15 stunivers 1005 4096 18 mai 12:52 /mnt/DATA
drwxrwxrwx 6 stunivers stunivers 4096 18 mai 13:37 /mnt/DATA/Public
# mount | grep DATA
# id stunivers
uid=1000(stunivers) gid=1000(stunivers) groupes=1000(stunivers),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),100(users),101(netdev),102(scanner),106(bluetooth),108(lpadmin)

2. Automatinė įkėlimo sąranka


Įkėlimas yra procesas, kurio metu jūsų diskaus, USB kauliuką ar HDD padaro matomas ir prieinamas sistemos.

Linux sistemaje, priklausomai nuo distribucijos, ir siekdami saugumo tikslų, tai nėra automatiškas procesas kaip Windows.

Ateityje mes norime, kad būtų automatinis.

Prieš tai aš pučiau į fstab failą, pritaikydavau jį, kol gauta automatinis įkėlimas.

Tai yra sintaksės klausimas, bet dėl mano disleksijos aš dažniausiai neturėjau visko teisingo.

Taigi, disks (arba diske en français) yra puikesnis man, jūs galite jį rasti savo GNOME programose:

Raskite „Gnome diskus“ savo programose

Diskeje galite nustatyti kažką tokiuo būdu:

Comment j'ai configurer le montage automatique

Idėja yra automatinis įkėlimas ir turėti pavadinimą, kuris atitinka norimus tikslus.

Iš naujo patikrinkite:

Bash
mount | grep DDAS
/dev/sda2 on /mnt/DATA type ext4 (rw,nosuid,nodev,relatime,x-gvfs-show)

3. Samba installacija


Tai yra paprasta, atnaujiname sistemą ir naudojame apt įdiegti:

Bash
sudo apt update
sudo apt install samba

Patikrinkite, kad viskas būtų teisingai įdiegta:

Bash
# on liste les 3 binaires smbd, nmbd et testparm
ls -l /usr/sbin/smbd /usr/sbin/nmbd /usr/bin/testparm
# Samba est lancé en service, on vérifie le status
systemctl status smbd nmbd --no-pager

4. Smb.conf failo rašymas


4.1. Originalaus failo saugojimas


Idėja yra, jei kada nors mes padarysime klaidą, atsarginę kopiją:

Bash
# Sauvegarde avec la date
sudo cp -a /etc/samba/smb.conf /etc/samba/smb.conf.bak.$(date +%F)

Jeigu reikia atkurti:

Bash
sudo cp -a /etc/samba/smb.conf.bak.AAAA-MM-JJ /etc/samba/smb.conf
sudo systemctl restart smbd nmbd

4.2. Smb.conf failo rašymas


Štai turinys, kurį mes naudosime pakeisti originalų turinį, idėja yra pridėti ir pritaikyti jame norimąsias funkcijas:

[global]
workgroup = WORKGROUP
server string = Servbian DATA
security = user
map to guest = Bad User
guest account = nobody
# Hide shares the connecting identity cannot access
access based share enum = yes
# Useful on a home LAN; adjust if you use a domain later
server role = standalone server
disable netbios = no
smb ports = 445 139
logging = file
log file = /var/log/samba/log.%m
max log size = 1000
# -----------------------------------------------------------------------------
# Authenticated only: full DATA tree for user stunivers
# Not listed for anonymous / guest clients thanks to access based share enum
# -----------------------------------------------------------------------------
[DATA]
comment = Private DATA storage
path = /mnt/DATA
valid users = stunivers
browseable = yes
guest ok = no
read only = no
force user = stunivers
create mask = 0660
directory mask = 0770
veto files = /lost+found/
# -----------------------------------------------------------------------------
# Guest-visible public folder
# -----------------------------------------------------------------------------
[Public]
comment = Public folder (no login required)
path = /mnt/DATA/Public
browseable = yes
guest ok = yes
read only = no
force user = stunivers
create mask = 0664
directory mask = 0775

Svarbiausi taškai:

  • map to guest = Bad User : nežinomas / tuščias prisijungimas padaro vartotoją „nobody“.
  • access based share enum = yes + valid users = stunivers į [DATA] : be prisijungimo, klientas tik gali matyti [Public].
  • force user = stunivers: failai sukurti per SMB turi būti stunivers diske (suderinti su esama sąsaja).
  • guest ok = yes tik [Public].

Apskaičiau daug laiko, kad užtikrintumėte geriausią konfigūraciją. Norėjau, jog nieko nereikėtų būti matoma.

5. Patikrinti failo sintaksę


Svarbu Samba yra neatsisprendžia jums patekti į klaidingą konfigūraciją ir grąžina klaidos pranešimus.

Naudojamas testparm įrankis, kuris gali būti naudingas patikrinimui failo smb.conf:

Bash
testparm -s
Load smb config files from /etc/samba/smb.conf
lpcfg_do_global_parameter: WARNING: The "raw NTLMv2 auth" option is deprecated
Loaded services file OK.
Weak crypto is allowed by GnuTLS (e.g. NTLM as a compatibility fallback)
Server role: ROLE_STANDALONE

Normaliai komanda turėtų grąžinti antraštę ir pranešti, kad failai yra teisingi. Jis taip pat išveda jūsų smb.conf turinį.

Jei klausitės dėl „Weak crypto is allowed“, žinoma, Debian leidžia kompatyvumą su SMB 1. Mes užtikriname, jog naudojamos SMB 3 versija, kad būtų galima naudotis jos saugumo funkcijomis.

6. Sukurti Samba vartotoją


Samba nežino apie Stunivers, todėl jūsų Debian ir Samba vartotojai yra skirtingi.

Todėl reikia sukurti naują:

Bash
sudo smbpasswd -a stunivers
New SMB password:
Retype new SMB password:
Added user stunivers.

7. Teisės prieiga


Matote, kad turime sąsają /mnt/DATA privatus ir /mnt/DATA/Public, kur Public yra viduje DATA.

Dėl to reikia užtikrinti, jog kiti Unix grupėse nei Stunivers neturi jokių teisių.

Toliau užtikrinsime, kad teisės būtų suderintos ir tinkamos naudotojui stunivers:

Bash
# Changement de propriétaire pour l'utilisateur stunivers
sudo chown -R stunivers:stunivers /mnt/DATA/
# Redéfinission des droits au cas ou pour DATA (stunivers à les droits, les autres rien)
sudo chmod -R 770 /mnt/DATA/
# en publique c'est autre chose, on veut que stunivers est tous les droits, et des droits en lecture pour les autres
sudo chmod -R 775 /mnt/DATA/Public/

Dėl ko reikia chmod -R ir chown -R? Dažnai pamiršame nurodyti teises arba keliai nepasiekia norimo rezultato.

Tai gali būti drastiška, bet aš jaučiu puika, kad viskas yra tikslu.

Paskutinė patikrinimas su ls ir mes esame gerai:

Bash
ls -ld /mnt/DATA/
ls -ld /mnt/DATA/Public/

7. Paleisti servisus iš naujo


Paleidimo servisų svarbu, nes jūsų Samba serveris, kaip įdiegtas, žinotės tik senąjį smb.conf failą.

Taip pat užtikrinsime, kad mūsų serverio servisas būtų paleistas pradedant sistemą ir jaučiame nmbd (NetBIOS), kuris nėra daug naudingas, sustabdytas.

Bash
sudo systemctl enable --now smbd
sudo systemctl disable --now nmbd
sudo systemctl status smbd --no-pager

Jei jums nebuvo klaidų jūsų smb.conf faile ir jūs tikrinate su testparm, turite šią informaciją:

Text
sudo systemctl enable --now smbd
sudo systemctl disable --now nmbd
sudo systemctl status smbd --no-pager
Synchronizing state of smbd.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable smbd
Synchronizing state of nmbd.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install disable nmbd
Removed '/etc/systemd/system/multi-user.target.wants/nmbd.service'.
Removed '/etc/systemd/system/nmb.service'.
● smbd.service - Samba SMB Daemon
Loaded: loaded (/usr/lib/systemd/system/smbd.service; enabled; preset: enabled)
Active: active (running) since Mon 2026-10-12 14:55:09 CEST; 40min ago
Invocation: e0631a439d694b7fae8d53bdf08e9783
Docs: man:smbd(8)
man:samba(7)
man:smb.conf(5)
Main PID: 15836 (smbd)
Status: "smbd: ready to serve connections..."
Tasks: 3 (limit: 18519)
Memory: 23.1M (peak: 23.9M)
CPU: 168ms
CGroup: /system.slice/smbd.service
├─15836 /usr/sbin/smbd --foreground --no-process-group
├─15840 "smbd: notifyd" .
└─15841 "smbd: cleanupd "
oct. 12 14:55:09 Servbian systemd[1]: Starting smbd.service - Samba SMB Daemon...
oct. 12 14:55:09 Servbian update-apparmor-samba-profile[15829]: grep: /etc/apparmor.d/samba/smbd-sh… nom
oct. 12 14:55:09 Servbian update-apparmor-samba-profile[15832]: diff: /etc/apparmor.d/samba/smbd-sh… nom
oct. 12 14:55:09 Servbian systemd[1]: Started smbd.service - Samba SMB Daemon.
Hint: Some lines were ellipsized, use -l to show in full.

8. Konfigūracija ufw arba firewalld


Prieigos apsaugos tikslas yra leisti įeinančius ir išeinančius tik tos, kurios reikalingos.

Yra fiziniai filtrai, kuriuos galite prijungti prie kompiutės vienoje pusėje ir interneto kitajame (nebūkite blogas, tai paprasta apibendrinimas).

Mano atveju, kompiuteris patys įdiegs mūsų programinę apsaugą tarp tinklo ir mus.

Mažasis vadovėlė šiai įdiegimui ir konfigūracijai:

Bash
# installation
sudo apt install ufw
# connexion root complet (outil sensible)
su -
# ouverture des ports pour samba
ufw allow 445/tcp
ufw allow 139/tcp
# rechargement des configurations
ufw reload
# activation de ufw
ufw enable

9. Testavimas kitame kompiuteryje


Galite tai padaryti grafine arba komandinės eilutės naudojant šią instrukciją:

Bash
# connection publique au répertoire publique
smbclient //192.168.1.250/Public -N
# tapez ls pour lister les fichiers, et faite ctrl+c si vous voyez votre arborescence
ls
# connexion en tant que stunivers au répertoire DATA
smbclient //192.168.1.250/DATA -U stunivers

10. Knygštelių sprendimas


Sintomas Nuoroda
smbd nepaleidžia journalctl -u smbd -e --no-pager + testparm -s
Galutinis vartotojas nieko neskantrai map to guest = Bad User, guest ok = yes [Public] sekcijoje, smbd paleidimas iš naujo
Duomenys matomi be prisijungimo Patvirtinkite access based share enum = yes ir guest ok = no / valid users = stunivers [DATA] sekcijoje
Prieigos atmestas į duomenis smbpasswd -a stunivers, teisės į /mnt/DATA, force user = stunivers
Galutiniam vartotojui rašymas nepavyksta /mnt/DATA/Public katalogo leidimai (pvz., 1)=à777 / 777), read only = no, force user = stunivers
Nepateikiamas iš Windows ping IP, 445/139 portai, paieška į šaltinį, bandykite naudoti IP adresą vietoje pavadinimo
Grupė 1005 « UNKNOWN » kosmetinis, kol stunivers yra savininkas; kitu atveju chgrp stunivers /mnt/DATA arba sukurkite trūkančią grupę

Jums taip pat gali patikti:

Komentarai

Kol kas nėra patvirtintų komentarų.

Prisijunkite su komentuotojo paskyra, kad galėtumėte komentuoti. Prisijungti.