Ubuntu 官方博客宣布,即将发布的 Ubuntu 21.04 会将 Home 目录默认设置为私有。

Ubuntu 安全技术负责人 Alex Murray 解释了此改动的原因,传统的目录权限(如文件)可分为 3 种类型:读、写和执行,这些权限可以分配给 3 类用户:所有者、组和其他,拥有私有目录内文件的访问权限仅限于自己的用户,或者允许在个别目录上系统的其他用户访问公共数据。在 Ubuntu 系统中创建新用户时,其 Home 目录的权限是默认允许其他用户共享文件访问,具有读取和执行的权限,因此多个家庭成员可共享一台 PC,并便捷地彼此共享文件。该默认设定是 Ubuntu 的早期选择,但现在是云计算和物联网时代 ,为 Home 目录设置的这种默认权限具有安全风险,因此他们决定在新版本更换为私有的默认设置。

该变动对于许多只有一个主要用户的系统不会产生什么影响,下面举一个受影响的案例: 运行基于 libvirt 的虚拟机的用户将磁盘镜像存储在其 Home 目录中。这种情况下,虚拟机在 libvirt-qemu 用户下运行,因此,随着新权限的更改,libvirt 现在无法访问用户 Home 目录中存储的任何虚拟机。要解决此问题,用户可以通过使用 Home 主目录的访问控制列表条目来选择性地访问这些文件,如下所示:

setfacl -m u:libvirt-qemu:rx $HOME

此命令指定 libvirt-qemu 具有该用户的 Home 目录的读取和执行权限,因此 libvirt-qemu 可以根据需要查看任何虚拟机镜像的名称和内容。

当然,你也可以在升级到 Ubuntu 21.04 之后禁用此功能,默认情况下共享对 Home 目录的访问权限,只需运行以下命令:

# change adduser(8) to enable permissive home directory permissions
sudo dpkg-reconfigure adduser

# and ensure useradd also follows suit
sudo sed -i 's/^\(HOME_MODE\s\+0750\)/#\1/' /etc/login.defs

 

来源:森林小编收集整理