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


15

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

如何更改此默认设置?

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


我不要求有关的umask,而是skelhome-dirs
osgx

请不要在评论中添加新信息,而
应将

这不是新信息,而是有关对我的问题的理解不正确的评论
osgx 2011年

Answers:


15

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

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

来自以下内容的Ubuntu手册页的useradd相关摘录:

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

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

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


红帽/ debian呢?
osgx

AFAIK是的标准配置useradd,如果它是Ubuntu特有的,则应该在手册页中提到它。红帽手册页面:linux.die.net/man/8/useradd
Lekensteyn 2011年

10

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

  • 的骨架目录选项(-k, --skel SKEL_DIRuseradd
  • 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_MODE为正确的权限(DIR_MODE=0750或类似权限)将允许新的主目录具有所需的权限。
根据Ubuntu文档,这似乎是最好的选择。

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

sudo chmod 0750 /home/username

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

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

官方说明:用户管理-用户配置文件安全性也
请检查用户管理的其他部分。

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


3
仅链接的答案是不可以,因为将来可能会发生链接故障。请在答案中包含相关信息。
Ƭᴇcʜιᴇ007

@ techie007我知道。如果我有足够的代表,本该使用评论。
Sithsu

1
@ techie007在答案中添加了更多内容
Sithsu

设置DIR_MODE/etc/adduser.conf绝对是正确的道路要走。
user1338062 '16

2

注意:如果只想更改主目录权限,请不要在/etc/login.defs中更改UMASK值。原因更改UMASK会影响一切。

我曾经遵循相同的方法,当我使用pip安装了整个软件包系统时,其他用户将无法访问它,并且不断抛出拒绝权限。由于默认的UMASK影响了应用更改后创建的所有程序包目录的权限。

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


1

在Ubuntu中,/ home的默认权限是rwxr-xr-x或755。对于/ home / user,它也是rwxr-xr-x或755。至少在我的安装中。

要更改主目录的文件许可权,请打开终端并运行以下命令:

chmod 700 /home/user

切记将700更改为您实际要设置的chmod值。

如果您不拥有目录,则需要root特权才能更改权限。Ubuntu sudo为此使用:

sudo chmod 700 /home/user

当您运行此命令时,它将询问管理员密码。


2
第二部分不正确,主目录由您自己拥有,因此您不需要超级用户权限。
Lekensteyn 2011年

您假设他只想更改自己家庭目录上的权利。我确实说过“如果您不拥有目录”。我的代码可在任何用户的主目录下使用。
Rincewind42 2011年

我编辑了您的帖子以使其更正确(希望您喜欢它),您的原始帖子根本不包含该帖子:superuser.com/revisions/303995/1
Lekensteyn 2011年

0

检查umask手册页。

默认的umask设置是

0022

允许groupothers读取和执行访问。


不,我的问题不是关于umask,而是关于用户文件夹本身的默认权限(仅在a创建用户之后,它将是的输出ls -ld /home/a
osgx 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.