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
|
# 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:
# 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:

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

Idėja yra automatinis įkėlimas ir turėti pavadinimą, kuris atitinka norimus tikslus.
Iš naujo patikrinkite:
|
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:
|
sudo apt update |
sudo apt install samba |
|
Patikrinkite, kad viskas būtų teisingai įdiegta:
|
# 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ą:
|
# Sauvegarde avec la date |
sudo cp -a /etc/samba/smb.conf /etc/samba/smb.conf.bak.$(date +%F) |
|
Jeigu reikia atkurti:
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ūtistuniversdiske (suderinti su esama sąsaja).guest ok = yestik[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:
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ą:
|
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:
|
# 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:
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.
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ą:
|
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:
|
# 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ą:
|
# 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ę |
Komentarai
Kol kas nėra patvirtintų komentarų.
Prisijunkite su komentuotojo paskyra, kad galėtumėte komentuoti. Prisijungti.