Make the overlayfs mount point's owners and modes match the underlay.
This fixes sudo in the chroot.
This commit is contained in:
parent
1939d1eda2
commit
964243ffb8
3 changed files with 6 additions and 1 deletions
1
BUGS
1
BUGS
|
|
@ -1,5 +1,6 @@
|
||||||
Current
|
Current
|
||||||
- Within the sandbox sudo is not working for tools.
|
- Within the sandbox sudo is not working for tools.
|
||||||
|
<- Sudo is working now but its always asking for a password.
|
||||||
- If a tool runs a script that needs sudo, the password prompt is garbling
|
- If a tool runs a script that needs sudo, the password prompt is garbling
|
||||||
the screen and stopping input.
|
the screen and stopping input.
|
||||||
- When paging the summary window, with the bottom scroll bar showing, the
|
- When paging the summary window, with the bottom scroll bar showing, the
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,9 @@ class OverlayfsMount():
|
||||||
subprocess.check_call(["sudo", "mount", "-t", "overlayfs", "-o",
|
subprocess.check_call(["sudo", "mount", "-t", "overlayfs", "-o",
|
||||||
option_string, "overlayfs", self.mount_point],
|
option_string, "overlayfs", self.mount_point],
|
||||||
stderr=subprocess.PIPE)
|
stderr=subprocess.PIPE)
|
||||||
|
for command in ["chmod", "chown"]:
|
||||||
|
subprocess.check_call(["sudo", command, "--reference", lower_dir,
|
||||||
|
mount_point])
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "<OverlayfsMount:%r over %r>" % (self.mount_point,
|
return "<OverlayfsMount:%r over %r>" % (self.mount_point,
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
# Licensed under the Artistic License 2.0.
|
# Licensed under the Artistic License 2.0.
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
import subprocess
|
||||||
import tempfile
|
import tempfile
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
|
@ -23,7 +24,7 @@ class SandboxFilesystemTestCase(unittest.TestCase):
|
||||||
|
|
||||||
def test_sandbox_minimal(self):
|
def test_sandbox_minimal(self):
|
||||||
foo_upper_path = os.path.join(self.sandbox.mount_point, "foo")
|
foo_upper_path = os.path.join(self.sandbox.mount_point, "foo")
|
||||||
open(foo_upper_path, "w").close()
|
subprocess.check_call(["sudo", "touch", foo_upper_path])
|
||||||
self.assertTrue(os.path.exists(foo_upper_path))
|
self.assertTrue(os.path.exists(foo_upper_path))
|
||||||
foo_lower_path = os.path.join(self.sandbox.overlay_mounts[0].lower_dir,
|
foo_lower_path = os.path.join(self.sandbox.overlay_mounts[0].lower_dir,
|
||||||
"foo")
|
"foo")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue