[libvirt] [PATCH] storage: use 0711 as the default perms for dirs

John Ferlan jferlan at redhat.com
Thu May 11 22:36:22 UTC 2017



On 05/11/2017 04:31 AM, Christian Ehrhardt wrote:
> From: Serge Hallyn <serge.hallyn at ubuntu.com>
> 
> There should be no need to make dir based pools world readable.
> So use 0711, not 0755, as the default perms for storage dirs.
> 
> Signed-off-by: Christian Ehrhardt <christian.ehrhardt at canonical.com>
> ---
>  docs/formatstorage.html.in | 2 +-
>  src/storage/storage_util.h | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 

Kinda surprised this didn't generate some immediate discussion...  I
would also think that if you had a desire to change defaults you'd also
have a libvirt.spec.in adjustment...

Still 0755 or umask(022) seem to be fairly prevalent setting and having
the <mode> for the XML to be able to override a default certainly gives
credence to arguments in either direction whether or not to change the
defaults.

It's been a long while since I considered system/directory/file security
things, but I have this faint recollection of some strange issue when
not having world or group "executable" as a default.

Still for those that desire a higher level of protection and security
there are ways to set more stringent values, but out of the box going
with 755 still seems reasonable. Although I'm sure there's varying
opinions on that depending upon your expectations of a secure system.

Also your commit message notes "world readable", but by going from 755
to 711, you're also changing to "group readable" too ;-)

John
> diff --git a/docs/formatstorage.html.in b/docs/formatstorage.html.in
> index 225e190..4946ddf 100644
> --- a/docs/formatstorage.html.in
> +++ b/docs/formatstorage.html.in
> @@ -444,7 +444,7 @@
>          namespace. It provides information about the permissions to use for the
>          final directory when the pool is built. There are 4 child elements.
>          The <code>mode</code> element contains the octal permission set.
> -        The <code>mode</code> defaults to 0755 when not provided.
> +        The <code>mode</code> defaults to 0711 when not provided.
>          The <code>owner</code> element contains the numeric user ID.
>          The <code>group</code> element contains the numeric group ID.
>          If <code>owner</code> or <code>group</code> aren't specified when
> diff --git a/src/storage/storage_util.h b/src/storage/storage_util.h
> index a05c35d..6f2a1b1 100644
> --- a/src/storage/storage_util.h
> +++ b/src/storage/storage_util.h
> @@ -138,7 +138,7 @@ int virStorageBackendVolOpen(const char *path, struct stat *sb,
>      ATTRIBUTE_RETURN_CHECK
>      ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
>  
> -# define VIR_STORAGE_DEFAULT_POOL_PERM_MODE 0755
> +# define VIR_STORAGE_DEFAULT_POOL_PERM_MODE 0711
>  # define VIR_STORAGE_DEFAULT_VOL_PERM_MODE  0600
>  
>  int virStorageBackendUpdateVolInfo(virStorageVolDefPtr vol,
> 




More information about the libvir-list mailing list