Sync from SUSE:SLFO:Main cloud-init revision 0df56b6a95c1a3d23a1ff16dbde8cc94
This commit is contained in:
parent
5ebdf99f85
commit
aac6763e4c
68
cloud-init-usr-sudoers.patch
Normal file
68
cloud-init-usr-sudoers.patch
Normal file
@ -0,0 +1,68 @@
|
||||
--- cloudinit/distros/__init__.py.orig
|
||||
+++ cloudinit/distros/__init__.py
|
||||
@@ -880,9 +880,12 @@ class Distro(persistence.CloudInitPickle
|
||||
# it actually exists as a directory
|
||||
sudoers_contents = ""
|
||||
base_exists = False
|
||||
+ system_sudo_base = "/usr/etc/sudoers"
|
||||
if os.path.exists(sudo_base):
|
||||
sudoers_contents = util.load_file(sudo_base)
|
||||
base_exists = True
|
||||
+ elif os.path.exists(system_sudo_base):
|
||||
+ sudoers_contents = util.load_file(system_sudo_base)
|
||||
found_include = False
|
||||
for line in sudoers_contents.splitlines():
|
||||
line = line.strip()
|
||||
@@ -907,7 +910,7 @@ class Distro(persistence.CloudInitPickle
|
||||
"#includedir %s" % (path),
|
||||
"",
|
||||
]
|
||||
- sudoers_contents = "\n".join(lines)
|
||||
+ sudoers_contents += "\n".join(lines)
|
||||
util.write_file(sudo_base, sudoers_contents, 0o440)
|
||||
else:
|
||||
lines = [
|
||||
--- tests/unittests/distros/test__init__.py.orig
|
||||
+++ tests/unittests/distros/test__init__.py
|
||||
@@ -230,6 +230,41 @@ class TestGenericDistro(helpers.Filesyst
|
||||
self.assertIn("josh", contents)
|
||||
self.assertEqual(2, contents.count("josh"))
|
||||
|
||||
+ def test_sudoers_ensure_append_sudoer_file(self):
|
||||
+ cls = distros.fetch("ubuntu")
|
||||
+ d = cls("ubuntu", {}, None)
|
||||
+ self.patchOS(self.tmp)
|
||||
+ self.patchUtils(self.tmp)
|
||||
+ util.write_file("/etc/sudoers", "josh, josh\n")
|
||||
+ d.ensure_sudo_dir("/b", "/etc/sudoers")
|
||||
+ contents = util.load_file("/etc/sudoers")
|
||||
+ self.assertIn("includedir /b", contents)
|
||||
+ self.assertTrue(os.path.isdir("/b"))
|
||||
+ self.assertIn("josh", contents)
|
||||
+ self.assertEqual(2, contents.count("josh"))
|
||||
+
|
||||
+ def test_usr_sudoers_ensure_new(self):
|
||||
+ cls = distros.fetch("ubuntu")
|
||||
+ d = cls("ubuntu", {}, None)
|
||||
+ self.patchOS(self.tmp)
|
||||
+ self.patchUtils(self.tmp)
|
||||
+ util.write_file("/usr/etc/sudoers", "josh, josh\n")
|
||||
+ d.ensure_sudo_dir("/b")
|
||||
+ contents = util.load_file("/etc/sudoers")
|
||||
+ self.assertIn("josh", contents)
|
||||
+ self.assertEqual(2, contents.count("josh"))
|
||||
+ self.assertIn("includedir /b", contents)
|
||||
+ self.assertTrue(os.path.isdir("/b"))
|
||||
+
|
||||
+ def test_usr_sudoers_ensure_no_etc_creat(self):
|
||||
+ cls = distros.fetch("ubuntu")
|
||||
+ d = cls("ubuntu", {}, None)
|
||||
+ self.patchOS(self.tmp)
|
||||
+ self.patchUtils(self.tmp)
|
||||
+ util.write_file("/usr/etc/sudoers", "#includedir /b")
|
||||
+ d.ensure_sudo_dir("/b")
|
||||
+ self.assertTrue(not os.path.exists("/etc/sudoers"))
|
||||
+
|
||||
def test_sudoers_ensure_only_one_includedir(self):
|
||||
cls = distros.fetch("ubuntu")
|
||||
d = cls("ubuntu", {}, None)
|
@ -1,3 +1,10 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 29 21:49:48 UTC 2024 - Robert Schweikert <rjschwei@suse.com>
|
||||
|
||||
- Add cloud-init-usr-sudoers.patch (bsc#1223469)
|
||||
+ Handle the existence of /usr/etc/sudoers to search for the expected
|
||||
include location
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 9 16:00:13 UTC 2024 - Robert Schweikert <rjschwei@suse.com>
|
||||
|
||||
|
@ -49,6 +49,8 @@ Patch11: cloud-init-ds-deterministic.patch
|
||||
Patch12: cloud-init-no-openstack-guess.patch
|
||||
# FIXME upstream comit 812df5038
|
||||
Patch13: cloud-init-no-nmcfg-needed.patch
|
||||
# FIXME https://github.com/canonical/cloud-init/pull/5161
|
||||
Patch14: cloud-init-usr-sudoers.patch
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: filesystem
|
||||
# pkg-config is needed to find correct systemd unit dir
|
||||
@ -160,6 +162,7 @@ Documentation and examples for cloud-init tools
|
||||
%patch -P 11
|
||||
%patch -P 12
|
||||
%patch -P 13
|
||||
%patch -P 14
|
||||
|
||||
# patch in the full version to version.py
|
||||
version_pys=$(find . -name version.py -type f)
|
||||
|
Loading…
Reference in New Issue
Block a user