为自身用户授予权限的更安全方法?

为自身用户授予权限的更安全方法?

我知道有时我们可以这样做chmod 777,这样我们就有一个完全可以访问、读取和写入的目录。但通常我更喜欢做一个sudo chown {myusername} {directory}.

显然,chmod 777留下了一个对任何人完全开放的目录,但是,与 相比,我的使用实践sudo chown ...实际上是否为我的目录提供了保护chmod 777

答案1

chmod 777意思是“任何人都可以做任何事情”。好吧,几乎任何事情 - 一些操作,例如更改时间和权限,都保留给所有者。但任何人都可以创建、删除或覆盖任何文件,因此没有保护。

我几乎可以保证,如果你跑步chmod 777,你就做错了。如果您想共享文件并编辑彼此的文件,请设置修订控制系统并推送更改以共享它们。如果您只想将某些文件提供给其他人,请创建一个~/pub目录并将您自己的文件放在那里。

答案2

chmod 777 foo让任何有权访问您的盒子、访问该文件的人foo

chown user foo仅授予该用户访问该文件的权限foo

如果您将这两种方法结合起来,那么任何有权访问您的盒子的人都可以访问该文件。

答案3

在许多情况下,获取目录所有权而不是将其权限更改为 777 的方法更安全。

默认权限

许多系统的默认 umask 为 022。当创建一个目录时,通常会从 777 中减去 umask 来计算新目录的权限,这意味着大多数系统上默认的目录权限是 755。这意味着默认情况下,只有一个目录的权限所有者可以在其中创建和删除文件。但不会阻止其他用户写入该目录中的文件。这种保护是由文件的权限提供的。您应该知道,如果用户对某个目录具有写入权限,但对该目录中的文件没有写入权限,则他们可以简单地删除该文件并替换它。

答案

总之,获取目录的所有权而不是将其权限更改为 777 将阻止其他用户添加、删除或替换该目录中的文件,但不会阻止用户读取该目录中的文件。

关于目录权限的说明

与文件权限相比,目录权限有点奇怪和不直观。可执行权限 ( 1) 允许您检索目录中文件的元数据,包括文件的 inode。这意味着如果没有目录的执行权限,您无法仅知道文件的路径来读取该目录中的文件。读取权限 ( 4) 允许您查看目录中的文件列表,但看不到其元数据。写权限 ( 2) 允许您在目录中创建和删除文件。

相关内容