当前位置: 首页>>技术教程>>正文


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

, , , ,

问题描述

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

如何更改此默认设置?

PS:抱歉,但是我现在找不到ubuntu并自己进行测试。

最佳解决思路

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

主目录(/home/username)受/etc/login.defsUMASK设置的约束。默认情况下将其设置为022,因此/home/username的权限变为755。

来自useradd的Ubuntu手册页的相关摘录:

The following configuration variables in /etc/login.defs change the behavior of this tool:
[..]
UMASK (number)

The file mode creation mask is initialized to this value. If not specified, the mask will be initialized to 022.

useradd and newusers use this mask to set the mode of the home directory they create

次佳解决思路

可以在以下位置控制用户主目录的默认权限。

  • useradd的框架目录选项(-k, --skel SKEL_DIR)。

  • /etc/adduser.conf中的SKEL值,用于定义默认框架目录。

  • /etc/adduser.conf中的DIR_MODE值,用于定义默认权限。

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

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

现有的用户主目录将需要手动更改。

sudo chmod 0750 /home/username

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

/etc/login.defs中的UMASK是用户(不仅在其主目录中)创建的文件/目录/等的常规设置。并且可能会根据/etc/login.defs中的USERGROUPS_ENAB进行更改。

官方说明:User Management – User Profile Security还要检查“用户管理”的其他部分。

相关:为什么其他用户可以看到我的主文件夹中的文件?

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7476.html,未经允许,请勿转载。