[virt-tools-list] [PATCH] Don't create disk images world readable and executable
Martin Kletzander
mkletzan at redhat.com
Mon Jun 30 12:39:37 UTC 2014
On Sun, Jun 29, 2014 at 04:16:36PM +0930, Ron wrote:
>Python's os.open() defaults to mode 0777 if not explicitly specified.
Not really, or at least not on my system. That must be some umask or
fs issue or something:
$ rm -f asdf.txt
$ python2 -c "import os; f = os.open('asdf.txt', os.O_WRONLY | os.O_CREAT); os.close(f)"
$ ls -al asdf.txt
-rwxr-xr-x 1 nert nert 0 Jun 30 14:36 asdf.txt
$ rm -f asdf.txt
$ python3 -c "import os; f = os.open('asdf.txt', os.O_WRONLY | os.O_CREAT); os.close(f)"
$ ls -al asdf.txt
-rwxr-xr-x 1 nert nert 0 Jun 30 14:37 asdf.txt
That would be a huge security issue if 0777 was the default.
Martin
>Disk image files don't need to be executable, and having them world
>readable isn't an ideal situation either. Owner writable and group
>readable is probably more than sufficient when initially creating
>them.
>
>Signed-off-by: Ron Lee <ron at debian.org>
>---
> virtinst/diskbackend.py | 4 ++--
> virtinst/urlfetcher.py | 2 +-
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
>diff --git a/virtinst/diskbackend.py b/virtinst/diskbackend.py
>index 5f72d00..2c74a11 100644
>--- a/virtinst/diskbackend.py
>+++ b/virtinst/diskbackend.py
>@@ -383,7 +383,7 @@ class StorageCreator(_StorageBase):
> sparse = True
> fd = None
> try:
>- fd = os.open(self._path, os.O_WRONLY | os.O_CREAT)
>+ fd = os.open(self._path, os.O_WRONLY | os.O_CREAT, 0640)
> os.ftruncate(fd, size_bytes)
> finally:
> if fd:
>@@ -401,7 +401,7 @@ class StorageCreator(_StorageBase):
> try:
> try:
> src_fd = os.open(self._clone_path, os.O_RDONLY)
>- dst_fd = os.open(self._path, os.O_WRONLY | os.O_CREAT)
>+ dst_fd = os.open(self._path, os.O_WRONLY | os.O_CREAT, 0640)
>
> i = 0
> while 1:
>diff --git a/virtinst/urlfetcher.py b/virtinst/urlfetcher.py
>index 3f2744b..4e61814 100644
>--- a/virtinst/urlfetcher.py
>+++ b/virtinst/urlfetcher.py
>@@ -67,7 +67,7 @@ class _ImageFetcher(object):
> prefix = "virtinst-" + prefix
> if "VIRTINST_TEST_SUITE" in os.environ:
> fn = os.path.join(".", prefix)
>- fd = os.open(fn, os.O_RDWR | os.O_CREAT)
>+ fd = os.open(fn, os.O_RDWR | os.O_CREAT, 0640)
> else:
> (fd, fn) = tempfile.mkstemp(prefix=prefix,
> dir=self.scratchdir)
>--
>2.0.0.rc2
>
>_______________________________________________
>virt-tools-list mailing list
>virt-tools-list at redhat.com
>https://www.redhat.com/mailman/listinfo/virt-tools-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/virt-tools-list/attachments/20140630/a4e4e415/attachment.sig>
More information about the virt-tools-list
mailing list