[Samba] ACL problem after sysvolreset (possible bug ?)
Rowland Penny
rpenny at samba.org
Wed Feb 26 19:38:56 UTC 2025
On Wed, 26 Feb 2025 18:57:13 +0100
denis bonnenfant--- via samba <samba at lists.samba.org> wrote:
> Hello,
>
> Summary :
>
> New gpo are created from windows with explicit rwx user and group
> acls for "Domain admins", which are inherited for every objects
> created, while sysvolreset is changing this to user:group ownership,
> which is not inheritable, and removes the acls for "Domain Admins".
>
> Detail :
>
> I'm facing a weird issue with sysvol acls on all my DC running samba
> 4.21 : the problem appeared after upgrade from 4.17 to 4.19, and is
> also present with on new servers provisonned directly with 4.21
>
> the context :
>
> First, I'm not running Samba with rfc2307, and "Domain Admins"
> doesn't have a gidNumber.
>
> My smb.conf on DC is the default one from domain provision.
>
>
> # wbinfo --uid-info=3000025
> DIDEROT\domain admins:*:3000025:3000025::/home/DIDEROT/domain
> admins:/bin/false
>
> # wbinfo --uid-to-sid=3000025
> S-1-5-21-909356044-1599522197-445740120-512
>
> This group is member of
>
> # wbinfo --uid-info=3000000
> BUILTIN\administrators:*:3000000:3000000::/home/BUILTIN/administrators:/bin/false
>
> # wbinfo --uid-to-sid=3000000
> S-1-5-32-544
>
> The problem :
>
> When creating a new gpo from windows GPO management tool with an user
> member of "Domain Admins" , everything works as expected, GPO can be
> modified, elements added in...
>
> After running sysvolreset on DC, GPO is broken, as no new folders can
> be created inside.
>
> ACL before sysvolreset :
>
>
> # getfacl
> /var/lib/samba/sysvol/diderot.org/Policies/\{2094568D-7BAD-4018-834C-13181AFA2514\}/User/Scripts/Logon/
> getfacl : suppression du premier « / » des noms de chemins absolus
> # file:
> var/lib/samba/sysvol/diderot.org/Policies/{2094568D-7BAD-4018-834C-13181AFA2514}/User/Scripts/Logon/
> # owner: 3000000
> # group: users
> user::rwx
> user:3000002:rwx
> user:3000003:r-x
> user:3000006:rwx
> user:3000009:r-x
> user:3000025:rwx
> group::---
> group:users:---
> group:3000000:rwx
> group:3000002:rwx
> group:3000003:r-x
> group:3000006:rwx
> group:3000009:r-x
> group:3000025:rwx
> mask::rwx
> other::---
> default:user::rwx
> default:user:3000000:rwx
> default:user:3000002:rwx
> default:user:3000003:r-x
> default:user:3000006:rwx
> default:user:3000009:r-x
> default:user:3000025:rwx
> default:group::---
> default:group:users:---
> default:group:3000002:rwx
> default:group:3000003:r-x
> default:group:3000006:rwx
> default:group:3000009:r-x
> default:group:3000025:rwx
> default:mask::rwx
> default:other::---
>
>
> Created folders or files inside GPO inherit these acls, and
> everything works.
>
>
> Acls After sysvolreset :
>
> # getfacl
> /var/lib/samba/sysvol/diderot.org/Policies/\{2094568D-7BAD-4018-834C-13181AFA2514\}/User/Scripts/Logon
> getfacl : suppression du premier « / » des noms de chemins absolus
> # file:
> var/lib/samba/sysvol/diderot.org/Policies/{2094568D-7BAD-4018-834C-13181AFA2514}/User/Scripts/Logon
> # owner: 3000025
> # group: 3000025
> user::rwx
> user:root:rwx
> user:3000000:rwx
> user:3000001:r-x
> user:3000002:rwx
> user:3000003:r-x
> group::rwx
> group:3000000:rwx
> group:3000001:r-x
> group:3000002:rwx
> group:3000003:r-x
> mask::rwx
> other::---
> default:user::rwx
> default:user:root:rwx
> default:user:3000000:rwx
> default:user:3000001:r-x
> default:user:3000002:rwx
> default:user:3000003:r-x
> default:group::---
> default:group:3000000:rwx
> default:group:3000001:r-x
> default:group:3000002:rwx
> default:group:3000003:r-x
> default:mask::rwx
> default:other::---
>
> When creating a new folder inside :
>
> # getfacl
> /var/lib/samba/sysvol/diderot.org/Policies/\{2094568D-7BAD-4018-834C-13181AFA2514\}/User/Scripts/Logon/test
> getfacl : suppression du premier « / » des noms de chemins absolus
> # file:
> var/lib/samba/sysvol/diderot.org/Policies/{2094568D-7BAD-4018-834C-13181AFA2514}/User/Scripts/Logon/test
> # owner: 3000000
> # group: users
> user::rwx
> user:root:rwx #effective:r-x
> user:3000000:rwx #effective:r-x
> user:3000001:r-x
> user:3000002:rwx #effective:r-x
> user:3000003:r-x
> group::---
> group:3000000:rwx #effective:r-x
> group:3000001:r-x
> group:3000002:rwx #effective:r-x
> group:3000003:r-x
> mask::r-x
> other::---
> default:user::rwx
> default:user:root:rwx
> default:user:3000000:rwx
> default:user:3000001:r-x
> default:user:3000002:rwx
> default:user:3000003:r-x
> default:group::---
> default:group:3000000:rwx
> default:group:3000001:r-x
> default:group:3000002:rwx
> default:group:3000003:r-x
> default:mask::rwx
> default:other::---
>
>
> So creating new folders is broken after sysvolreset. Running
> sysvolreset allows creation of one level again.
>
> Same problem using Administrator account from windows. So the only
> way to modify existing gpo is to create a new one and make all
> changes before sysvolreset.
>
>
> but when using smbclient, it is OK with Administrator :
>
> smb:
> \diderot.org\Policies\{2094568D-7BAD-4018-834C-13181AFA2514}\Machine\Scripts\Startup\>
> mkdir test2
>
> smb:
> \diderot.org\Policies\{2094568D-7BAD-4018-834C-13181AFA2514}\Machine\Scripts\Startup\>
> mkdir test2\test2
>
> but not with admin (member of "Domain Admins")
>
> smb:
> \diderot.org\Policies\{2094568D-7BAD-4018-834C-13181AFA2514}\Machine\Scripts\Startup\>
> mkdir test2
> NT_STATUS_ACCESS_DENIED making remote directory
> \diderot.org\Policies\{2094568D-7BAD-4018-834C-13181AFA2514}\Machine\Scripts\Startup\test2
>
There are three permissions in play here, the normal Unix 'ugo', the EA
you are reading with setfacl and a further one that is set with the
Windows permissions. Can you try to read the latter with:
samba-tool ntacl get <file> --as-sddl
Where '<file>' is the directory or file
For example, on my DC, this:
sudo samba-tool ntacl get /var/lib/samba/sysvol --as-sddl
Produces this:
O:LAG:BAD:P(A;OICI;FA;;;BA)(A;OICI;0x1200a9;;;SO)(A;OICI;FA;;;SY)(A;OICI;0x1200a9;;;AU)
Rowland
More information about the samba
mailing list