Klaas TJEBBES
2025-Apr-10 13:16 UTC
[Samba] Access denied on GPO after "ntacl sysvolreset"
Thank you for your answer. Problem is : root at smbserver:~# cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=24.04 DISTRIB_CODENAME=noble DISTRIB_DESCRIPTION="Ubuntu 24.04.2 LTS" There is no most recent Ubuntu LTS. Also we can't afford to recompile Samba and maintain it up-to-date, we have to rely on Ubuntu LTS system. So could you find which recently solved bug you're talking about (I've searched for it but could not find it even though I'm using a computer) ? This way we may be able to submit it to Ubuntu team who could perhaps backport the correction. Le 08/04/2025 ? 18:51, Luis Peromarta via samba a ?crit?:> I think 4.19 is ageing now as we are on 4.22 > > This looks very much like a recently solved bug (can?t find it now I?m on phone). You need at least 4.21.4 > > Try updating and see it it fixes things > On 8 Apr 2025 at 17:28 +0100, Klaas TJEBBES via samba <samba at lists.samba.org>, wrote: >> Hello. >> >> samba --version >> Version 4.19.5-Ubuntu >> >> Samba as Active Directory controller. >> >> 2 scenarios. >> >> >> # First scenario : >> >> * On a Windows client, from RSAT, I create a new GPO named "firstgpo". >> * Still in RSAT, I then create a second GPO "scndgpo" with some >> parameters that I backup (right clic on the GPO => Backup...). >> * Then I right clic on "firstgpo" and select "Import parameters...". I >> select the backup previously made. >> >> Parameters are correctly imported from "scndgpo" to "firstgpo". So far >> so good. >> >> Here is the problem, after running : >> samba-tool ntacl sysvolreset >> I can no longer "Import parameters". I get "Access denied" : >> >> """ >> [Error] The task cannot be completed. An error occurred with the >> [Registry] extension. Unable to access the file >> [\dc.dom.lan\sysvol\dom.lan\Policies{846F43A0-9299-4791-A16A-7E4AFDE257DF}\MachineStaging\registry.pol]. >> The following error occurred: >> Access denied. >> """ >> >> >> # Second scenario : >> >> * I use : >> samba-tool gpo backup >> to backup an existing GPO. >> >> * From RSAT I delete this GPO. >> * I run : >> samba-tool gpo restore >> to restore from the backup I just made. >> >> * At that moments : >> samba-tool ntacl sysvolcheck >> returns nothing, says that ACLs on sysvol are correct. >> >> On a Windows client, from RSAT, I try to modify this GPO : right clic on >> the GPO, "Edit..." and configure some settings. I get an error : "Access >> denied. HRESULT : 0x80070005 (E_ACCESSDENIED)". >> >> But, after running : >> samba-tool ntacl sysvolreset >> >> I can again modify the restored GPO without error. But at that moment >> I'm encountering the problem of the first scenario. >> >> >> What is the problem ? Is this a bug ? >> >> >> Kind regards, >> Klaas >> >> >> >> -- >> To unsubscribe from this list go to the following URL and read the >> instructions: https://lists.samba.org/mailman/options/samba-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Klaas TJEBBES - P?le Logiciel Libre (EOLE) - DSI - Dijon ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Rowland Penny
2025-Apr-10 13:27 UTC
[Samba] Access denied on GPO after "ntacl sysvolreset"
On Thu, 10 Apr 2025 15:16:52 +0200 Klaas TJEBBES via samba <samba at lists.samba.org> wrote:> Thank you for your answer. > > Problem is : > > root at smbserver:~# cat /etc/lsb-release > DISTRIB_ID=Ubuntu > DISTRIB_RELEASE=24.04 > DISTRIB_CODENAME=noble > DISTRIB_DESCRIPTION="Ubuntu 24.04.2 LTS" > > There is no most recent Ubuntu LTS. Also we can't afford to recompile > Samba and maintain it up-to-date, we have to rely on Ubuntu LTS > system. >See here for later Ubuntu Samba packages supplied by the Debian Samba maintainer: http://www.corpit.ru/mjt/packages/samba/ Rowland
Hi Klaas,
Luis may have been referring to bug 14213 (Windows Explorer crashes on
S-1-22-* Unix-SIDs when accessing the Security tab), fixed in version
4.21.4. This bug also causes gpedit to crash.
You may have a mapping issue with your IDmap on domain controllers.
I wrote a script to display the mapping in a readable form (see the end
of this post).
To reset the mapping on all DCs, here's what I do (note! You need to
adapt it to your configuration; this is for FreeBSD with a ZFS dataset
for Sysvol and NFS4ACL) (inspired by the migration of the RFC2703 schema
to TDB of Tranquil IT:
https://samba.tranquil.it/doc/en/samba_config_server/samba_rfc_to_tdb.html):
* On the DC that own FSMO :
** Cleaning mapping :
for i in $(samba-ldbsearch -H /var/db/samba4/private/idmap.ldb dn |
grep ^dn | awk '{ print $2 }' | grep -v CONFIG) ; do samba-ldbdel -H
/var/db/samba4/private/idmap.ldb $i ; done
** be sure that Administrator is mapped with uidNumber 0 (root) :
samba-ldbedit -H /var/db/samba4/private/idmap.ldb # and change uidNumber
of Administrator if need
net cache flush
service samba_server restart
** At this step my script getmapping.sh can help to populate the
idmap.ldb again or just wait a while
** Reseting sysvol ACL (it's an zfs dataset you need to adapt these
commands too) :
setfacl -b /var/db/samba4/sysvol
chown -R 'root:BUILTIN\administrators' /var/db/samba4/sysvol
chmod 755 /var/db/samba4/sysvol
samba-tool ntacl sysvolreset
** send new idmap to all others DC :
tdbbackup -s .new$(date +%y%m%d) /var/db/samba4/private/idmap.ldb
scp /var/db/samba4/private/idmap.ldb.new$(date +%y%m%d)
<Others_DC>:/var/db/samba4/private/idmap.ldb
* On others DC
** flush the cache
net cache flush
service samba_server restart
** wait for synchronization of sysvol for reset ACL (and/or xattr) and
check ACL
** After that you maybe need to re-apply Delegations in "Group Policy
Objets" on gpo editor. For me its enough and after that all my
delegation and ACL in sysvol are okay
Regards,
===== getmapping.sh ====
#!/bin/sh
#
#
#PATH=/usr/local/samba/bin/:/usr/local/samba/sbin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
. /etc/os-release
[ $ID = 'freebsd' ] && ifbsd='samba-' ||
ifbsd=''
showhelp ()
{
echo -e "Usage : $0 [-d sam|idmap] [-c 1|2|3|4] [-h] [-s {CN=XXX|OU=XXX}]
-d: database to use, sam or idmap for respectively sam.ldb or idmap.ldb
-c: column for sort :
1: by sid
2: by name
3: by type
4: by uid/gid
-s: scope for sam.ldb database ex: CN=Users"
}
while getopts d:c:s:h option; do
case $option in
d)
if [ "$OPTARG" = "sam" ] || [ "$OPTARG" =
"idmap" ]; then
dbf=$OPTARG
else
echo "Bad argument for -d option"
showhelp
exit 1
fi
;;
c)
if echo $OPTARG | grep -E '^([1-4])$' 1>/dev/null ; then
c=$OPTARG
else
echo "Bad argument for -s option"
showhelp
exit 1
fi
;;
s)
s=$OPTARG
;;
h)
showhelp
exit 0
;;
\?)
echo "wrong parameter"
showhelp
exit 1
;;
esac
done
if [ ! $dbf ]; then dbf=idmap; fi
if [ ! $c ]; then c=1; fi
rm -f /tmp/smbdynvar
samba -b |grep -E ": \/" | while read v; do
echo $(echo $v |awk -F ':' '{print $1}')="$(echo $v |awk
-F ' ' '{print
$2}')" >> /tmp/smbdynvar
done
. /tmp/smbdynvar
bdn="$(grep -i realm $CONFIGFILE |awk -F' = ' '{print
"DC="$2}' |sed
's/\./,DC=/g')"
if [ $dbf = "sam" ]; then
[ $s ] && scope="-b ${s},${bdn}" || scope="-b
CN=Builtin,${bdn}"
fi
echo "Maping from ${PRIVATE_DIR}/${dbf}.ldb ${scope}:"
for i in $(${ifbsd}ldbsearch -H ${PRIVATE_DIR}/${dbf}.ldb ${scope}
objectsid |grep objectSid |awk '{print $2}'); do
t="${t}
$(echo "$i | $(
n=$(wbinfo -s $i 2>/dev/null |sed 's/1$/\|\(Domain User\)/g ;
s/2$/\|\(Domain Group\)/g ; s/3$/\|\(Domain\)/g ; s/4$/\|\(Service
Group\)/g ; s/5$/\|\(NT Authority Group\)/g')
[ ! -n "$n" ] && echo '-----|-----' || echo $n
) | $(wbinfo -S $i 2>/dev/null|| wbinfo -Y $i 2>/dev/null)")"
done
case $c in
4)
echo "$t" | sort -t '|' -k $c | column -t -s'|'
;;
*)
echo "$t" | sort -fn -t '|' -k $c | column -t -s'|'
;;
esac
==============================================================================
Havany
Le 10/04/2025 ? 15:16, Klaas TJEBBES via samba a ?crit?:> Thank you for your answer.
>
> Problem is :
>
> root at smbserver:~# cat /etc/lsb-release
> DISTRIB_ID=Ubuntu
> DISTRIB_RELEASE=24.04
> DISTRIB_CODENAME=noble
> DISTRIB_DESCRIPTION="Ubuntu 24.04.2 LTS"
>
> There is no most recent Ubuntu LTS. Also we can't afford to recompile
> Samba and maintain it up-to-date, we have to rely on Ubuntu LTS system.
>
> So could you find which recently solved bug you're talking about
(I've
> searched for it but could not find it even though I'm using a computer)
?
> This way we may be able to submit it to Ubuntu team who could perhaps
> backport the correction.
>
>
>
> Le 08/04/2025 ? 18:51, Luis Peromarta via samba a ?crit?:
>> I think 4.19 is ageing now as we are on 4.22
>>
>> This looks very much like a recently solved bug (can?t find it now I?m
>> on phone). You need at least 4.21.4
>>
>> Try updating and see it it fixes things
>> On 8 Apr 2025 at 17:28 +0100, Klaas TJEBBES via samba
>> <samba at lists.samba.org>, wrote:
>>> Hello.
>>>
>>> samba --version
>>> Version 4.19.5-Ubuntu
>>>
>>> Samba as Active Directory controller.
>>>
>>> 2 scenarios.
>>>
>>>
>>> # First scenario :
>>>
>>> * On a Windows client, from RSAT, I create a new GPO named
"firstgpo".
>>> * Still in RSAT, I then create a second GPO "scndgpo"
with some
>>> parameters that I backup (right clic on the GPO => Backup...).
>>> * Then I right clic on "firstgpo" and select "Import
parameters...". I
>>> select the backup previously made.
>>>
>>> Parameters are correctly imported from "scndgpo" to
"firstgpo". So far
>>> so good.
>>>
>>> Here is the problem, after running :
>>> samba-tool ntacl sysvolreset
>>> I can no longer "Import parameters". I get "Access
denied" :
>>>
>>> """
>>> [Error] The task cannot be completed. An error occurred with the
>>> [Registry] extension. Unable to access the file
>>> [\dc.dom.lan\sysvol\dom.lan\Policies{846F43A0-9299-4791-
>>> A16A-7E4AFDE257DF}\MachineStaging\registry.pol].
>>> The following error occurred:
>>> Access denied.
>>> """
>>>
>>>
>>> # Second scenario :
>>>
>>> * I use :
>>> samba-tool gpo backup
>>> to backup an existing GPO.
>>>
>>> * From RSAT I delete this GPO.
>>> * I run :
>>> samba-tool gpo restore
>>> to restore from the backup I just made.
>>>
>>> * At that moments :
>>> samba-tool ntacl sysvolcheck
>>> returns nothing, says that ACLs on sysvol are correct.
>>>
>>> On a Windows client, from RSAT, I try to modify this GPO : right
clic on
>>> the GPO, "Edit..." and configure some settings. I get an
error : "Access
>>> denied. HRESULT : 0x80070005 (E_ACCESSDENIED)".
>>>
>>> But, after running :
>>> samba-tool ntacl sysvolreset
>>>
>>> I can again modify the restored GPO without error. But at that
moment
>>> I'm encountering the problem of the first scenario.
>>>
>>>
>>> What is the problem ? Is this a bug ?
>>>
>>>
>>> Kind regards,
>>> Klaas
>>>
>>>
>>>
>>> --
>>> To unsubscribe from this list go to the following URL and read the
>>> instructions: https://lists.samba.org/mailman/options/samba
>