Ubuntu中用户家庭目录的默认访问模式(例如0755)是什么(例如的输出是什么ls -ld /home/*
)?在其他主要的Linux发行版(Debian,RedHat,Gentoo,Arch)中?
如何更改此默认设置?
PS:抱歉,但是我现在找不到ubuntu并自己进行测试。
Ubuntu中用户家庭目录的默认访问模式(例如0755)是什么(例如的输出是什么ls -ld /home/*
)?在其他主要的Linux发行版(Debian,RedHat,Gentoo,Arch)中?
如何更改此默认设置?
PS:抱歉,但是我现在找不到ubuntu并自己进行测试。
Answers:
使用创建用户时useradd --create-home username
,通常/etc/skel
会复制框架目录(通常是),包括其权限。
主目录(/home/username
)以中的UMASK
设置为准/etc/login.defs
。022
默认情况下将其设置为,因此的权限/home/username
变为755。
来自以下内容的Ubuntu手册页的useradd
相关摘录:
/etc/login.defs中的以下配置变量更改了此工具的行为:
[..]
UMASK(数字)文件模式创建掩码将初始化为该值。如果未指定,则掩码将初始化为022。
useradd和newusers使用此掩码设置他们创建的主目录的模式
useradd
,如果它是Ubuntu特有的,则应该在手册页中提到它。红帽手册页面:linux.die.net/man/8/useradd
可以在以下位置控制用户主目录的默认权限。
-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
是用户创建的文件/目录/ etc的常规设置(不仅在其主目录中)。并可能根据USERGROUPS_ENAB
中的更改/etc/login.defs
。
官方说明:用户管理-用户配置文件安全性也
请检查用户管理的其他部分。
相关:https : //askubuntu.com/questions/46501/why-can-other-users-see-the-files-in-my-home-folder
DIR_MODE
在/etc/adduser.conf
绝对是正确的道路要走。
注意:如果只想更改主目录权限,请不要在/etc/login.defs中更改UMASK值。原因更改UMASK会影响一切。
我曾经遵循相同的方法,当我使用pip安装了整个软件包系统时,其他用户将无法访问它,并且不断抛出拒绝权限。由于默认的UMASK影响了应用更改后创建的所有程序包目录的权限。
正确的方法是在DIR_MODE中修改 DIR_MODE。由于大多数Linux发行版中都使用/etc/adduser.conf,因此该解决方案适用于大多数情况。
在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
当您运行此命令时,它将询问管理员密码。
a
创建用户之后,它将是的输出ls -ld /home/a
)
skel
和home-dirs