/ home / <用户> /上的权限755


15

我想知道为什么默认情况下我的目录的/home/<user>/权限设置为755。这使其他用户可以进入目录并读取我家中的文件。有任何正当的理由吗?

我可以700为我的主目录和所有子目录设置权限吗,例如:

chmod -R o-xw /home/<user>/ 
chmod -R g-xw /home/<user>/

没有破坏任何东西?

另外,是否可以在我的家庭中设置权限,以便所有创建的新文件都具有600和目录700


1
在RHEL / CentOS 5中默认为700,但在Ubuntu 755中
Rahul Patil

2
在某些设置中很常见,它用于public_html允许Web服务器访问目录。尽管它对用户来说非常方便,但我并不喜欢它。
Marco Marco

Answers:


18

如果您的主目录是私有目录,则没有其他人可以访问您的任何文件。为了访问文件,进程需要对根目录下的树下路径上的所有目录具有执行权限。例如,要允许其他用户读取/home/martin/public/readme,目录//home/home/martin并且/home/martin/public都需要有权限d??x??x??x(它可以是drwxr-xr-xdrwx--x--x或其他一些组合),以及另外的文件readme必须是公开可读(-r??r??r??)。

通常,主目录的模式为drwxr-xr-x(755)或至少为drwx--x--x(711)。目录上的模式711(仅具有执行权限)允许他人在知道目录名称的情况下访问该目录中的文件,但不能列出目录的内容。在该主目录下,根据需要创建公共和私有子目录。

如果您从未希望其他人读取您的任何文件,则可以创建主目录drwx------(700)。如果这样做,则无需单独保护文件。除了其他人读取您的文件的能力之外,这不会破坏其他任何功能。

可能破坏,因为它是其他人阅读您的文件实例一件平常的事情,就是如果你有一个目录,如~/public_html~/www其中包含你的网页。根据Web服务器的配置,此目录可能需要全球可读。

您可以通过在中设置umask值来更改所创建文件的默认权限.profile。umask是文件最大权限的补充。公用值包括022(仅所有者可以写,所有人都可以读取和执行),077(仅所有者可以访问)和002(与022类似,但也可以组写)。这些是最大权限:应用程序可以设置更多的限制性权限,例如大多数文件最终都无法执行,因为创建它们的应用程序在创建文件时未设置执行权限位。


我没有在计算机上运行Web服务器,因此不需要允许访问~/public_html。除了Apache,是否还有其他通用程序需要访问我的家?怎么样postfix,例如。
Martin Vegter

1
@MartinVegter好点。电子邮件程序在传递邮件时始终以您的用户身份运行,但是某些系统要求.forward以系统用户身份运行的邮件系统可以读取。但是Postfix对于私有的很好.forward
吉尔(Gilles)'所以

3

如果您签入RHEL / CentOS 5.x,则默认权限为700,而在Ubuntu中为755。

Ubuntuforms.org的工作人员称,这是为了使新用户之间共享文件更加容易。如果您不希望他人读取和执行文件,则可以将权限更改为700或750。

另外,是否可以在我的家中设置权限,以便所有创建的新文件都具有600和目录700?

您可以umask 0077为此设置

它将像:

目录的默认权限是0777,因此当您设置umask时,0077将创建具有权限的新目录,(0777-0077)0700您想要的。


是否也umask适用于文件?它似乎仅在创建新目录时有效。
Martin Vegter

2
是的...您可以检入您当前设置的shell,然后设置umask 0077文件并创建目录,dir和检查权限stat filename
Rahul Patil

3

是的,有一个非常合理的理由。请注意,其他用户可以读取但不能写入您的文件。这在专业网络中非常有用,因为您可以轻松地与同事共享文件。

例如,在我以前工作的实验室中,我们所有人都可以访问彼此的$HOME目录,因此我们可以轻松地彼此共享数据或脚本。如果我的朋友爱丽丝(Alice)有一个很好的脚本来执行X,我将运行它:

~alice/bin/scriptX.pl mydata

如其他人所述,要更改此设置,您将需要设置umask。例如,要使新文件和文件夹仅对您可读,请将其添加到您的~/.bashrc

umask 0077

3
关于使用Alice的Perl脚本的一点点令人恐惧。将脚本复制到您的主目录,对其进行审核,然后仅使用您的副本。
AlexWebr

6
@AlexWebr首先,我会先阅读它,在这种情况下,第二个Alice是坐在我旁边的人,他刚刚写了一个很酷的脚本。我们可以假设我对他们的信任程度,就像我在机器上盲目安装并执行其工作的任何开发人员一样。实际上比大多数人都多。另外,这是一个实验室,因此我们经常下载几GB的基因组,这是相互之间访问它们的简便方法。
terdon

1

您需要更改umask,以更改在主文件夹中创建新文件的方式。这通常是通过编辑你的shell启动脚本做,有一个相当不错的概述这里

至于将主文件夹中的所有权限更改为700,我想知道这将如何影响在需要从主文件夹中获取配置信息的服务帐户下运行的服务...您可能最终会阻止这些服务读取它们所需的配置文件。

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.