Ubuntu 中用户主目录的默认访问模式(例如 0755)是什么(例如 的输出是什么ls -ld /home/*
)?在其他主要的 Linux 发行版中(Debian、RedHat、Gentoo、Arch)呢?
我怎样才能改变这个默认设置?
附言:抱歉,但我现在找不到 ubuntu 并自己测试。
答案1
当使用 创建用户时,将复制useradd --create-home username
骨架目录(通常是),包括其权限。/etc/skel
主目录( )以 中的设置/home/username
为准。默认情况下设置为,因此 的权限变为 755。UMASK
/etc/login.defs
022
/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/skel
。0755 (drwxr-xr-x)
使用
具有正确权限的自定义骨架目录将允许新主目录具有所需的权限。
的默认值在中adduser
定义/etc/adduser.conf
。中
的 默认值为。 更改为正确的权限(或类似权限)将允许新的主目录具有所需的权限。DIR_MODE
/etc/adduser.conf
0755
DIR_MODE
DIR_MODE=0750
根据 Ubuntu 文档,这似乎是最好的选择。
已经存在的用户主目录需要手动更改。
sudo chmod 0750 /home/username
因此,最好/etc/adduser.conf
在安装后立即进行更改,以避免新用户获得0755 (drwxr-xr-x)
类型权限。
不过,安装期间创建的第一个用户仍将0755
设置为其主目录,这应该手动更改。
UMASK
in/etc/login.defs
是用户创建的文件/目录/等的常规设置(不仅在他们的主目录中)。并且可以根据USERGROUPS_ENAB
in进行更改/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 发行版中都有使用,因此该解决方案适用于大多数情况。