Yn y dyluniad hwn mae dau ganiatâd ar wahân yn cael eu cymysgu: pwy gaiff ddefnyddio cyfeiriadur, a pha gyfeiriadau gaiff gysylltu o gwbl. Mae ysgrifennu rhestr cyfrifon wrth ymyl rhestr ffynonellau yn teimlo fel paru, ond mae Samba yn gwerthuso'r ddwy restr fel dau ganiad annibynnol yn lle hynny. Derbynnir unrhyw un sy'n bodloni'r ddau, sy'n rheol changach nag y mae'r rhan fwyaf o weinyddwyr yn ei fwriadu. Yr ateb yw naill ai cynllun rhaniad gwahanol neu haen polisi a all fynegi pâr.

Y myth: mae dwy restr yn gwneud un rheol

Mae cyfeirlyfr smb.conf yn diffinio valid users a hosts allow fel dau baramedr heb gysylltiad, a gosod y ddau ar un rhaniad yw lle mae'r dryswch yn dechrau. Gosodwch valid users = mira, tomas a hosts allow = 10.77.0.21, 10.77.0.22 ac fe dderbynnir pedair cyfuniad: Mira o'r naill gyfeiriad neu'r llall, Tomas o'r naill gyfeiriad neu'r llall. Nid oes dim yn y ffurfweddiad yn clymu'r enw cyntaf i'r cyfeiriad cyntaf, ac nid oes ystyr i'r drefn y mae'r enwau'n ymddangos. Mae eu hail-drefnu, ychwanegu ail linell hosts allow neu roi un enw fesul llinell yn newid dim. Y canlyniad yw cynnyrch dwy restr, nid map rhyngddynt.

Yr hyn y mae'r rhan fwyaf o bobl ei eisiau mewn gwirionedd yw culach: Mira o un cyfeiriad yn unig, Tomas o gyfeiriad arall yn unig. Nid oes gan un diffiniad rhaniad gystrawen ar gyfer y clymu hwnnw, ac nid oes unrhyw drefniant cyfrwys yn ei greu. Mae hwnnw'n fath o bolisi nad yw Samba yn ei fynegi o fewn un rhaniad, a dyna lle mae'r myth yn goroesi.

Yr hyn y mae Samba yn ei werthuso, yn ei drefn

Mae'r camau'n rhedeg mewn trefn sefydlog, ac mae cael y drefn yn anghywir yn rhoi'r diagnosis anghywir. Mae cleient yn agor cysylltiad; mae archwiliad gwesteiwr byd-eang yn rhedeg os oes un wedi'i ffurfweddu; mae sefydlu sesiwn yn dilysu'r cyfrif; yna mae'r cleient yn cysylltu â rhaniad, lle caiff rhestr gwesteiwyr y rhaniad hwnnw ei hun, valid users a'r gosodiad darllen-yn-unig eu cymhwyso; a dim ond pan agorir ffeil y mae caniatâd system ffeiliau'r hunaniaeth ddilys yn penderfynu. Gall pob cam wrthod y cais ar ei ben ei hun, ac nid yw pasio un yn dweud dim am y nesaf. Y canlyniad pwysig yw bod y cyfrif yn hysbys erbyn i restr gwesteiwyr y rhaniad gael ei gwerthuso, ac nid oes gan y rhestr gwesteiwyr ffordd o enwi'r cyfrif hwnnw o hyd.

Dyna pam na all rhaniad glymu un defnyddiwr i un cyfeiriad: mae hosts allow a valid users yn ganiadau ar wahân a gymhwysir ar yr un cam cysylltu coeden, ac mae pob un yn ateb ei gwestiwn ei hun. Nid yw caniad y gwesteiwr byth yn cymryd enw'r cyfrif fel mewnbwn, felly ni ellir ei ysgrifennu fesul defnyddiwr. Dim ond ail raniad, neu haen polisi y tu allan i Samba, a all fynegi'r pâr.

Mae gwerthoedd byd-eang yn bwysig oherwydd y ffordd y cânt eu hetifeddu. Mae rhaniad sy'n hepgor hosts allow yn etifeddu'r gwerth byd-eang, ac mae rhaniad sy'n gosod ei un ei hun yn defnyddio'r gwerth hwnnw yn lle'r un byd-eang, nid yn ychwanegol ato. Felly mae rhestr fyd-eang eang yn ehangu'r rhaniadau nad ydynt byth yn gosod y paramedr, ac yn gwneud dim i raniad sy'n diffinio ei un ei hun. Rhedwch testparm -s a darllenwch y gwerthoedd fesul rhaniad y mae'n eu hargraffu, oherwydd y rhestr honno yw'r polisi effeithiol, nid y ffeil ar y disg.

Nid yw culhau un rhaniad yn gwneud dim i weddill y gweinydd chwaith. Mae rhaniadau eraill, ciwiau argraffu a'r cysylltiad IPC yn cadw eu rheolau eu hunain, felly mae dyluniad sy'n dibynnu ar restr gyfeiriadau un rhaniad yn gwarchod un llwybr yn hytrach na'r gwesteiwr.

Dau enw rhaniad dros un cyfeiriadur

Pan fo'n rhaid i'r un cyfeiriadur fod yn gyrraeddadwy gan ddau berson o ddau gyfeiriad, datgelwch ef ddwywaith dan enwau gwahanol. Mae pob rhaniad yn cario un cyfrif ac un ffynhonnell, sy'n troi'r pâr yn rhywbeth y gall y ffurfweddiad ei orfodi. Y gost yw bod pob person yn defnyddio enw rhaniad gwahanol i gyrraedd yr un ffeiliau, ac mae'n rhaid i hynny fod yn newid bwriadol ar ochr y cleient.

[shared-mira]
    path = /srv/shared
    guest ok = no
    read only = yes
    valid users = mira
    hosts allow = 10.77.0.21
    hosts deny = ALL

[shared-tomas]
    path = /srv/shared
    guest ok = no
    read only = yes
    valid users = tomas
    hosts allow = 10.77.0.22
    hosts deny = ALL

Nid yw gât rhaniad yn ganiatâd system ffeiliau. Mae'r ddwy hunaniaeth o hyd angen mynediad at y cyfeiriadur trwy'r ACL sylfaenol, ac mae gosodiad darllen-yn-unig y rhaniad yn ail haen yn hytrach na'r unig un. Rhoi caniatâd ysgrifennu dim ond os yw'r llif gwaith yn gofyn amdano, yna gwiriwch fod ffeiliau a grëwyd gan un hunaniaeth yn aros yn ddefnyddiadwy i'r llall.

Mae'r ddau raniad yn pwyntio at un llwybr, felly mae newid yn y cyfeiriadur yn effeithio ar y ddau raniad. Dyna'r pwynt fel arfer, ond mae hefyd yn golygu bod camgymeriad caniatâd yn weladwy i'r ddau ddefnyddiwr ar unwaith.

Yr hyn y gall cyfeiriad y ffynhonnell ei brofi

Y cyfeiriad y mae Samba yn ei weld yw'r cyfeiriad a gyrhaeddodd y gweinydd, nid y cyfeiriad y mae'r cleient yn credu sydd ganddo. Mae pyrth VPN sy'n trosi pob cleient i un cyfeiriad ffynhonnell yn dymchwel y gwahaniaeth: mae pob cleient yn cyrraedd fel yr un gwesteiwr ac ni all y rhestr ffynonellau eu gwahaniaethu mwyach. Mae dyrannu sefydlog fesul cleient a phyrth sy'n cadw'r ffynhonnell yn rhagofynion ar gyfer defnyddio cyfeiriadau fel polisi o gwbl. Heb y ddau, mae'r cyfyngiad yn mesur y pyrth yn hytrach na'r defnyddiwr.

Hyd yn oed yna, nid dyfais yw cyfeiriad. Mae dau liniadur y tu ôl i un cyfeiriad twnnel, les a ailddyrannwyd a gorsaf waith a rennir i gyd yn gwrthbrofi'r dybiaeth bod ffynhonnell yn nodi person. Trinnwch y cyfyngiad fel cwmpas rhwydwaith a chadwch gyfrifon SMB dilys fel yr haen hunaniaeth, gyda chredensial dyfais fel tystysgrif os oes angen awdurdodi dyfais.

Dyma hefyd pam mae'r dyluniad yn gâtio rhaniadau ac nid y gweinydd. Gall pâr a wrthodir o hyd agor sesiwn, cyrraedd rhaniad arall neu restru'r gweinydd, sy'n ganlyniad gwahanol i fethiant dilysu ar adeg cysylltu. Os mai'r gofyniad yw gwrthod cyn dilysu, paramedrau rhaniad Samba yw'r offeryn anghywir.

Profwch ef gyda pharau croes

Dilyswch y ffurfweddiad, yna profwch y pedair cyfuniad gyda chysylltiadau newydd yn hytrach na sesiwn a ailddefnyddiwyd. Dylai'r pâr arfaethedig gyrraedd y cyfeiriadur, a dylai'r ddau bâr croes fethu. Bydd sesiwn wedi'i chache o brawf cynharach yn ateb yn llawen am y cyfuniad anghywir ac yn gwneud i reol sydd wedi torri edrych yn gywir.

testparm -s
smbclient //fileserver/shared-mira -U mira -c 'ls'
smbclient //fileserver/shared-tomas -U tomas -c 'ls'
smbstatus --shares

Nid yw archwiliad cystrawen yn profi ond bod y ffeil yn parsio. Mae manylion mewngofnodi, ACLau a'r penderfyniad gwesteiwr yn cael eu harfer gan gysylltiad go iawn, felly rhedwch orchymyn y cleient o'r cyfeiriad rydych am ei brofi a gwyliwch pa gam sy'n ei wrthod. Os bydd pâr croes yn llwyddo, mae'r rhestr gwesteiwyr effeithiol yn ehangach nag y mae'r bloc yn ei awgrymu, a testparm -s yw'r peth cyntaf i'w ddarllen. Os bydd pâr croes yn methu am y rheswm anghywir, y cyfrif neu'r ACL yw'r sawl dan amheuaeth.

Mae monitro sesiynau gyda smbstatus a'u lladd yn gam ymateb a gymerir ar ôl i fynediad ddechrau, nid rheolaeth dderbyn. Gall blocio cyfeiriad cyfan a arsylwyd hefyd ddatgysylltu defnyddwyr diberygl y tu ôl i'r un NAT, a dyna pam mae'r penderfyniad yn perthyn i ddiffiniad y rhaniad a'r monitro i'r broses ymateb. Cadwch y ddau ar wahân ac mae'r dyluniad yn aros yn onest ynglŷn â'r hyn y mae'n ei orfodi.

Erthyglau cysylltiedig