Samba 4.17.12 share probléma Debian 12
Előrebocsátom, olvastam, hogy AD szerveren ne legyen fájlmegosztás, de most erre lenne szükségem. Kicsit hosszú lesz, de megpróbálom részletesen leírni, hogy miket csináltam.
A samba telepítése után leállítottam az smbd, nmbd és winbind szolgáltatásokat, majd az
smbd -b | egrep "LOCKDIR|STATEDIR|CACHEDIR|PRIVATE_DIR"
kimenetében lévő könyvtárakból töröltem a fájlokat és a socket-eket. Átneveztem a /etc/samba/smb.conf fájlt. Ezután kezdtem a konfigurálást:
# samba-tool domain provision --use-rfc2307 --interactive
Realm [VALAMI.HOME.ARPA]:
Domain [VALAMI]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
DNS forwarder IP address (write 'none' to disable forwarding) [192.168.3.254]:
Administrator password:
A samba indítása előtt a /etc/resolv.conf fájlban beállítottam a samba domain-jét és a gép IP címét:
search valami.home.arpa
nameserver 192.168.1.2
A Kerberos konfigfájlt bemásoltam a /etc könyvtárba:
# cp /var/lib/samba/private/krb5.conf /etc/
A chrony miatt ezeket csináltam:
# mkdir /var/lib/samba/ntp_signd
# chgrp _chrony /var/lib/samba/ntp_signd
# chmod 750 /var/lib/samba/ntp_signd
A /etc chrony/chrony.conf fájlba beírtam az alábbiakat, utána elindítottam:
hwclockfile /etc/adjtime
bindcmdaddress 192.168.1.2
allow 192.168.1.0/24
ntpsigndsocket /var/lib/samba/ntp_signd
Aztán elindítottam a sambát:
# systemctl start samba-ad-dc
Megcsináltam a dns zónát és hozzáadtam a rekordot:
# samba-tool dns zonecreate dc2 1.168.192.in-addr.arpa -U Administrator
Password for [VALAMI\Administrator]:
Zone 1.168.192.in-addr.arpa created successfully
# samba-tool dns add dc2 1.168.192.in-addr.arpa 2 PTR dc2.valamii.home.arpa -U Administrator
Password for [VALAMI\Administrator]:
Record added successfully
Láthatóak az alap megosztások:
# smbclient -L localhost -N
Anonymous login successful
Sharename Type Comment
--------- ---- -------
sysvol Disk
netlogon Disk
IPC$ IPC IPC Service (Samba 4.17.12-Debian)
SMB1 disabled -- no workgroup available
# smbclient //localhost/netlogon -UAdministrator -c 'ls'
Password for [VALAMI\Administrator]:
. D 0 Thu May 8 12:11:35 2025
.. D 0 Thu May 8 12:11:40 2025
15373256 blocks of size 1024. 13149468 blocks available
A dns rendben van:
# host -t SRV _ldap._tcp.valami.home.arpa.
_ldap._tcp.valami.home.arpa has SRV record 0 100 389 dc1.valami.home.arpa.
# host -t A dc1.valami.home.arpa.
dc1.valami.home.arpa has address 192.168.1.2
# host -t PTR 192.168.1.2
2.1.168.192.in-addr.arpa domain name pointer dc1.valami.home.arpa.
# nslookup 192.168.1.2
2.1.168.192.in-addr.arpa name = dc1.valami.home.arpa.
# nslookup dc1.valami.home.arpa
Server: 192.168.1.2
Address: 192.168.1.2#53
Name: dc1.valami.home.arpa
Address: 192.168.1.2
A Kerberos működik:
# kinit administrator
Password for administrator@VALAMI.HOME.ARPA:
Warning: Your password will expire in 41 days on Thu 19 Jun 2025 12:11:40 PM CEST
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@VALAMI.HOME.ARPA
Valid starting Expires Service principal
05/08/2025 12:33:29 05/08/2025 22:33:29 krbtgt/VALAMI.HOME.ARPA@VALAMI.HOME.ARPA
renew until 05/09/2025 12:33:28
A wbinfo is jó választ ad vissza:
# wbinfo --ping-dc
checking the NETLOGON for domain[VALAMI] dc connection to "dc1.valami.home.arpa" succeeded
Látszanak az alap userek és csoportok:
# getent group "VALAMI\\Domain Users"
VALAMI\domain users:x:100:
# getent group "VALAMI\\Domain Admins"
VALAMI\domain admins:x:3000004:
# getent passwd "VALAMI\\Administrator"
VALAMI\administrator:*:0:100::/home/VALAMI/administrator:/bin/false
# getent passwd "VALAMI\\Domain Admins"
VALAMI\domain admins:*:3000004:3000004::/home/VALAMI/domain admins:/bin/false
A group policy miatt hozzáadtam az smb.conf fájl Global részéhez ezt a sort:
apply group policies = yes
Az extended acl-ek miatt pedig ezt:
map acl inherit = yes
Telepítettem a group policy-hez szükséges dolgokat:
# samba-tool gpo admxload -U Administrator
Password for [VALAMI\Administrator]:
Installing ADMX templates to the Central Store prevents Windows from displaying its own templates in the Group Policy Management Console. You will need to install these templates from https://www.microsoft.com/en-us/download/102157 to continue using Windows Administrative Templates.
Letöltöttem a Windows 10-hez tartozó group policy-t:
# wget "https://download.microsoft.com/download/c/3/c/c3cd85c0-0785-4cf7-a48e-c…"
Kicsomagoltam:
# msiextract Administrative\ Templates\ \(.admx\)\ for\ Windows\ 10\ October\ 2022\ Update.msi
Majd azt is telepítettem:
# samba-tool gpo admxload -U Administrator --admx-dir=Program\ Files/Microsoft\ Group\ Policy/Windows\ 10\ October\ 2022\ Update\ \(22H2\)/PolicyDefinitions/
Password for [VALAMI\Administrator]:
Installing ADMX templates to the Central Store prevents Windows from displaying its own templates in the Group Policy Management Console. You will need to install these templates from https://www.microsoft.com/en-us/download/102157 to continue using Windows Administrative Templates.
Látja is őket a samba:
# samba-tool gpo listall
GPO : {31B2F340-016D-11D2-945F-00C04FB984F9}
display name : Default Domain Policy
path : \\valami.home.arpa\sysvol\valami.home.arpa\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}
dn : CN={31B2F340-016D-11D2-945F-00C04FB984F9},CN=Policies,CN=System,DC=valami,DC=home,DC=arpa
version : 0
flags : NONE
GPO : {6AC1786C-016F-11D2-945F-00C04FB984F9}
display name : Default Domain Controllers Policy
path : \\valami.home.arpa\sysvol\valami.home.arpa\Policies\{6AC1786C-016F-11D2-945F-00C04FB984F9}
dn : CN={6AC1786C-016F-11D2-945F-00C04FB984F9},CN=Policies,CN=System,DC=valami,DC=home,DC=arpa
version : 0
flags : NONE
Hozzáadtam egy "Unix Admins" csoportot:
# samba-tool group add "Unix Admins"
Added group Unix Admins
# samba-tool group addunixattrs "Unix Admins" 20000
Modified Group 'Unix Admins' successfully
# samba-tool group show "Unix Admins"
dn: CN=Unix Admins,CN=Users,DC=valami,DC=home,DC=arpa
objectClass: top
objectClass: group
cn: Unix Admins
instanceType: 4
whenCreated: 20250508151458.0Z
uSNCreated: 4098
name: Unix Admins
objectGUID: 41ae1dcd-be4d-45e4-bb39-d42cf7614ade
objectSid: S-1-5-21-1237163036-1819395442-2334969554-1104
sAMAccountName: Unix Admins
sAMAccountType: 268435456
groupType: -2147483646
objectCategory: CN=Group,CN=Schema,CN=Configuration,DC=valami,DC=home,DC=arpa
gidNumber: 20000
whenChanged: 20250508151521.0Z
uSNChanged: 4099
distinguishedName: CN=Unix Admins,CN=Users,DC=valami,DC=home,DC=arpa
A "Unix Admins" csoportnak megadtam a SeDiskOperatorPrivilege jogot (lehet, hogy fölöslegesen):
# net rpc rights grant "VALAMI\Unix Admins" SeDiskOperatorPrivilege -U "VALAMI\Administrator"
Password for [VALAMI\Administrator]:
Successfully granted rights.
# net rpc rights list privileges SeDiskOperatorPrivilege -U "VALAMI\Administrator"
Password for [VALAMI\Administrator]:
SeDiskOperatorPrivilege:
VALAMI\Unix Admins
Egy Windows 10 gépet beléptettem a domain-be, majd beléptem rá a (domain) Administrator userrel, telepítettem az RSAT programokat. Aztán a "Unix Admins" csoportot beletettem a BUILTIN\Administrators csoportba az AD-ben.
Ext4 fájlrendszer van a gépen. Ezeket csináltam a megosztás létrehozásához:
# mkdir -p /srv/samba/teszt
# chown root:"Unix Admins" /srv/samba/teszt
# chmod 0755 /srv/samba
# chmod 0770 /srv/samba/teszt
Gyakorlatilag ennyi van az smb.conf fájlban:
[global]
dns forwarder = 192.168.3.254
netbios name = DC1
realm = VALAMI.HOME.ARPA
server role = active directory domain controller
workgroup = VALAMI
idmap_ldb:use rfc2307 = yes
# a group policy es a winbindd miatt
apply group policies = yes
# az extended acl-ek miatt
map acl inherit = yes
# logolasi szint felemelese 1-rol
log level = 5
[sysvol]
path = /var/lib/samba/sysvol
read only = No
[netlogon]
path = /var/lib/samba/sysvol/valami.home.arpa/scripts
read only = No
[teszt]
path = /srv/samba/teszt
read only = No
Windows 10-ből az AD-ben létrehoztam egy usert, akit beletettem a "Unix Admins" csoportba. Létrehoztam még két csoportot teszt_rw és teszt_ro néven, valamint egy rwuser és egy rouser nevű usert (értelemszerűen beletettem a csoportba rw-t az rw-be, ro-t a ro-ba).
Windows 10-ből a "Számítógép-kezelés" (bocs, magyar Windows) programból csatlakoztam az AD-hoz, hogy a megosztás jogosultságait beállítsam. Tehát jobb katt a megosztás nevére, Tulajdonságok. A "Megosztási engedélyek" fülön a "Mindenki" szerepel, mind a három opció be van pipálva (Teljes hozzáférés, Módosítás, Olvasás) - ezt nem módosítottam. A Biztonság fülön a Speciális gombot megnyomva a "Unix Admins" csoportnak teljes hozzáférést adtam "Ez a mappa, illetve almappái és fájljai" beállítással, a teszt_ro csoportnak "Olvasás és végrehajtás" jogot adtam, "Csak ez a mappa" beállítással, a teszt_rw csoportnak pedig Módosítás jogot "Ez a mappa, illetve almappái és fájljai" beállítással, mindenki mást kitöröltem. A samba ezt a jogosultságot "lefordította" linuxos acl-ekre, a getfacl paranccsal látszik is:
# getfacl teszt
# file: teszt
# owner: root
# group: VALAMI\\unix\040admins
user::rwx
user:root:rwx
user:VALAMI\\teszt_ro:r-x
user:VALAMI\\teszt_rw:rwx
group::rwx
group:VALAMI\\unix\040admins:rwx
group:VALAMI\\teszt_ro:r-x
group:VALAMI\\teszt_rw:rwx
mask::rwx
other::---
default:user::rwx
default:user:root:rwx
default:user:VALAMI\\teszt_rw:rwx
default:group::---
default:group:VALAMI\\unix\040admins:rwx
default:group:VALAMI\\teszt_rw:rwx
default:mask::rwx
default:other::---
Ezután beleírtam az smb.conf fájlba a teszt megosztáshoz az alábbi sorokat:
vfs objects = acl_xattr
acl_xattr:ignore system acls = yes
A fentiek hatására a teszt_rw csoport be tud lépni a teszt nevű megosztásba, tud létrehozni fájlokat és könyvtárakat.
A teszt_ro csoport szintén be tud lépni a teszt nevű megosztásba, látja az ott lévő fájlokat és könyvtárakat, de nem tud belépni a könyvtárakba, és nem tudja megnyitni (olvasni) a fájlokat.
Ez eddig jónak tűnik :)
Létrehoztam az AD-ben egy adminisztracio_rw nevű csoportot (beletettem egy shareelek nevű usert).
Az adminisztracio_rw csoportot beletettem a teszt_ro csoportba.
A teszt_rw csoporttal létrehoztam egy könyvtárat Adminisztráció néven a teszt megosztásban, majd beállítottam, hogy az adminisztracio_rw csoport erre a könyvtárra teljes jogosultsággal rendelkezzen. Ezután létrehoztam egy fájlt a könyvtárban, amelyre öröklődött az adminisztracio_rw csoport teljes jogosultsága.
Az adminisztracio_rw csoport be tud lépni a teszt nevű megosztásba, látja a fájlokat és a könyvtárakat, de nem tudja olvasni a fájlokat, és semelyik könyvtárba sem tud belépni, az Adminisztráció nevűbe sem.
Azt gondoltam, hogy ennek nem így kellene működnie :)
Arra számítottam, hogy az adminisztracio_rw be fog tudni lépni a megosztásba, mert a teszt_ro csoportnak a tagja, amely csoportnak van joga oda belépni - ez végülis működik.
De arra is számítottam, hogy az Adminisztráció nevű könyvtárat már a saját csoportjogán fogja tudni kezelni (be tud lépni, létre tud hozni fájlokat és könyvtárakat stb.).
Hosszas kísérletezés után azt gondolom, hogy a linuxos acl-ek akadályozzák meg az adminisztracio_rw csoportot már a könyvtárba belépésben is. Csak nem értem, hogy miért :) Az acl_xattr:ignore system acls = yes opciónak nem pont az lenne a lényege, hogy ne vegye figyelembe a linuxos acl-eket?
Köszi, hogy végigolvastad! Remélem, hogy ötleted is lesz a megoldásra :)
- Tovább (Samba 4.17.12 share probléma Debian 12)
- 544 megtekintés