It is common that domain names contain the '-' character, as in "test-example.com", and adsys versions 0.9.2 and below cannot parse these correctly, leading to the error:
ERRORgithub.com/ubuntu/adsys/cmd/adsysd/main.go:50 main.run() Error from server: error while updating policy: can't get policies for "test-example.com": failed to retrieve offline state from SSSD: dbus: invalid message: invalid path name
when attempting to run adsys on a system attached to "test-example.com" Active Directory.
Currently, 0.9.2 only changes '.' into '_2e', and this would change all special characters to use their hexadecimal representations, notably '-' becomes '_2d'.
There is plans from Foundations + Desktop to SRU 0.11.0 back to at least Jammy, documented in bug 2020682 which depends on goland 1.20 to be included in the jammy archive, documented in bug 2020658. However, this fixup is required with high priority while the 0.11.0 release is being prepared, and the SRU will hopefully bridge a few weeks between SRU release to release of 0.11.0.
[Testcase]
Start a Windows Server VM, 2022 will be fine, and create an Active Directory with the domain "test-example.com".
Launch a Focal, or Jammy, or Kinetic VM, and use SSSD to join the domain.
Try to enable adsys:
$ sudo apt install adsys
$ adsysctl update
ERRORgithub.com/ubuntu/adsys/cmd/adsysd/main.go:50 main.run() Error from server: error while updating policy: can't get policies for "test-example.com": failed to retrieve offline state from SSSD: dbus: invalid message: invalid path name
There are test packages in the below ppa:
If you install the test package and retry to join the domain, it will succeed.
[Where problems could occur]
We are changing how domain names are being parsed and converted to valid dbus object path names. Domain names can only contain [0-9], [A-Z], [a-z], [.], and [-], so by adding '-' to being processed to its hexadecimal representation of '_2d', there should be limited scope of regressions.
However, if a regression were to occur, then users may not be able to use adsys to apply group policy restrictions, and could run into issues accessing files, shares and networks.
As mentioned in the impact section, this will be a temporary fix to 0.9.2 while 0.11.0 is being prepared to be released into the archive, which contains the full fix and testsuite coverage. This SRU should hopefully be short lived.
These commits are not compatible with 0.9.2 due to testsuite harnesses and frameworks and test data files not being added until 0.10.0, and adding such commits is numerous, and contains too many changes for a SRU. Regrettably, the testsuite commits must be omitted.
[Impact]
It is common that domain names contain the '-' character, as in "test-example.com", and adsys versions 0.9.2 and below cannot parse these correctly, leading to the error:
ERRORgithub. com/ubuntu/ adsys/cmd/ adsysd/ main.go: 50 main.run() Error from server: error while updating policy: can't get policies for "test-example.com": failed to retrieve offline state from SSSD: dbus: invalid message: invalid path name
when attempting to run adsys on a system attached to "test-example.com" Active Directory.
Currently, 0.9.2 only changes '.' into '_2e', and this would change all special characters to use their hexadecimal representations, notably '-' becomes '_2d'.
There is plans from Foundations + Desktop to SRU 0.11.0 back to at least Jammy, documented in bug 2020682 which depends on goland 1.20 to be included in the jammy archive, documented in bug 2020658. However, this fixup is required with high priority while the 0.11.0 release is being prepared, and the SRU will hopefully bridge a few weeks between SRU release to release of 0.11.0.
[Testcase]
Start a Windows Server VM, 2022 will be fine, and create an Active Directory with the domain "test-example.com".
Launch a Focal, or Jammy, or Kinetic VM, and use SSSD to join the domain.
Try to enable adsys:
$ sudo apt install adsys com/ubuntu/ adsys/cmd/ adsysd/ main.go: 50 main.run() Error from server: error while updating policy: can't get policies for "test-example.com": failed to retrieve offline state from SSSD: dbus: invalid message: invalid path name
$ adsysctl update
ERRORgithub.
There are test packages in the below ppa:
If you install the test package and retry to join the domain, it will succeed.
[Where problems could occur]
We are changing how domain names are being parsed and converted to valid dbus object path names. Domain names can only contain [0-9], [A-Z], [a-z], [.], and [-], so by adding '-' to being processed to its hexadecimal representation of '_2d', there should be limited scope of regressions.
However, if a regression were to occur, then users may not be able to use adsys to apply group policy restrictions, and could run into issues accessing files, shares and networks.
As mentioned in the impact section, this will be a temporary fix to 0.9.2 while 0.11.0 is being prepared to be released into the archive, which contains the full fix and testsuite coverage. This SRU should hopefully be short lived.
[Other Info]
The upstream merge request is:
https:/ /github. com/ubuntu/ adsys/pull/ 498
This was fixed in 0.10.0 by the commit:
commit 5752ba87347d781 3dd56bc6a9ec636 9ec56e5dc4 /github. com/ubuntu/ adsys/commit/ 5752ba87347d781 3dd56bc6a9ec636 9ec56e5dc4
Author: Didier Roche <email address hidden>
Date: Tue Nov 15 11:10:51 2022 +0100
Subject: Fix special characters in domain conversion to dbus object path
Link: https:/
Now, there were some additional commits that added testsuite coverage:
commit cd79b3f81441a3d 9ab50f11bc8c3b5 c7bf722540 /github. com/ubuntu/ adsys/commit/ cd79b3f81441a3d 9ab50f11bc8c3b5 c7bf722540
Author: Didier Roche <email address hidden>
Date: Tue Nov 15 11:13:03 2022 +0100
Subject: Refresh golden file now that we properly handle the path.
Link: https:/
commit 4571e39cd724a97 3270a586d2b18f6 53f0007de9 /github. com/ubuntu/ adsys/commit/ 4571e39cd724a97 3270a586d2b18f6 53f0007de9
Author: Didier Roche <email address hidden>
Date: Tue Nov 15 11:14:35 2022 +0100
Subject: Use a better case to assert on ServerURL() failure being ignored.
Link: https:/
commit fdca6e462c26e1c becdb8386f43515 c1947d423d /github. com/ubuntu/ adsys/commit/ fdca6e462c26e1c becdb8386f43515 c1947d423d
Author: Didier Roche <email address hidden>
Date: Tue Nov 15 11:16:21 2022 +0100
Subject: Add a separate case for special characters in domain name.
Link: https:/
These commits are not compatible with 0.9.2 due to testsuite harnesses and frameworks and test data files not being added until 0.10.0, and adding such commits is numerous, and contains too many changes for a SRU. Regrettably, the testsuite commits must be omitted.