Я использую AlmaLinux и Samba Winbind, объединенные в Windows Server 2019 AD. У пользователей домена есть домашние каталоги и каталог pccommon (общая папка).
Когда я создаю нового пользователя домена в Active Directory, мне приходится создавать новую папку на Linux-машине в /home и менять ее владельца на имя этого пользователя.
mkdir -p /home/newaccount
chown IIT\\newaccount: /home/newaccount
/etc/samba/smb.conf
idmap config * : rangesize = 1000000
idmap config * : range = 100000-19999999
idmap config * : backend = autorid
template homedir = /home/%U
template shell = /sbin/nologin
; winbind use default domain = yes
; winbind enum users = yes
; winbind enum groups = yes
winbind max domain connections = 10
winbind expand groups = 5
ntlm auth = yes
# workaround za https://bugzilla.samba.org/show_bug.cgi?id=11081 ?
#client schannel = no
[homes]
writable = yes
create mask = 0711
directory mask = 0711
map hidden = yes
map system = yes
invalid users = root nobody
csc policy = disable
root preexec = /usr/local/bin/netlogonpr %U
veto files = /autorun.inf/*.zepto/*.ZEPTO/*.scr/*.SCR/*.wsf/*.WSF/*.docm/*.DOCM/
delete veto files = yes
[pccommon]
path = /home/pccommon
read only = no
acl_xattr:ignore system acls = yes
Проблема
Проблема в том, что пользователи домена могут видеть домашние каталоги друг друга. Даже если они не могут писать туда, это все равно проблема. Как сделать так, чтобы каждый пользователь домена видел только свой домашний каталог, а не все остальные?
решение1
Я бы посоветовал вам изменить скрипт «root preexec» так, чтобы он проверял, существует ли домашний каталог пользователя, и создавал его, если его нет.
Удалите строку недействительных пользователей и замените ее на «действительные пользователи = %S»
Это сделает домашний каталог пользователя видимым только ему и создаст его для вас, если он не существует.