Ubuntu:用户主目录(/home/user)的默认访问模式(权限)

Ubuntu:用户主目录(/home/user)的默认访问模式(权限)

Ubuntu 中用户主目录的默认访问模式(例如 0755)是什么(例如 的输出是什么ls -ld /home/*)?在其他主要的 Linux 发行版中(Debian、RedHat、Gentoo、Arch)呢?

我怎样才能改变这个默认设置?

附言:抱歉,但我现在找不到 ubuntu 并自己测试。

答案1

当使用 创建用户时,将复制useradd --create-home username骨架目录(通常是),包括其权限。/etc/skel

主目录( )以 中的设置/home/username为准。默认情况下设置为,因此 的权限变为 755。UMASK/etc/login.defs022/home/username

相关摘录自Ubuntu 手册页useradd

/etc/login.defs 中的以下配置变量会改变此工具的行为:
[..]
UMASK(数字)

文件模式创建掩码初始化为此值。如果未指定,则掩码将初始化为 022。

useradd 和 newusers 使用此掩码来设置他们创建的主目录的模式

答案2

用户主页的默认权限可以在以下地方控制。

  • 的骨架目录选项 ( -k, --skel SKEL_DIR) useradd
  • SKEL/etc/adduser.conf定义默认骨架目录中的值。
  • DIR_MODE/etc/adduser.conf定义默认权限的值。

新用户的主目录是使用/etc/skel作为模板创建的(默认行为)。
的默认权限为/etc/skel0755 (drwxr-xr-x)使用
具有正确权限的自定义骨架目录将允许新主目录具有所需的权限。

的默认值在中adduser定义/etc/adduser.conf。中
的 默认值为。 更改为正确的权限(或类似权限)将允许新的主目录具有所需的权限。DIR_MODE/etc/adduser.conf0755
DIR_MODEDIR_MODE=0750
根据 Ubuntu 文档,这似乎是最好的选择。

已经存在的用户主目录需要手动更改。

sudo chmod 0750 /home/username

因此,最好/etc/adduser.conf在安装后立即进行更改,以避免新用户获得0755 (drwxr-xr-x)类型权限。
不过,安装期间创建的第一个用户仍将0755设置为其主目录,这应该手动更改。

UMASKin/etc/login.defs是用户创建的文件/目录/等的常规设置(不仅在他们的主目录中)。并且可以根据USERGROUPS_ENABin进行更改/etc/login.defs

官方解释:用户管理 - 用户配置文件安全
还请检查用户管理的其他部分。

有关的:https://askubuntu.com/questions/46501/why-can-other-users-see-the-files-in-my-home-folder

答案3

注意:不要改变玛莎价值/etc/login.defs如果您只想更改主目录权限。因为更改 UMASK 将影响所有内容。

我曾经也这样做过,当我使用 pip 在系统范围内安装任何软件包时,其他用户都无法访问它,并且不断抛出权限被拒绝。由于默认玛莎影响了应用更改后创建的所有包目录的权限。

正确的方法是修改DIR_MODE/etc/adduser.conf. 自/etc/adduser.conf在大多数 Linux 发行版中都有使用,因此该解决方案适用于大多数情况。

答案4

检查umask请参阅手册页。

默认的 umask 设置为

0022

允许group读取others和执行访问。

相关内容