`chmod go-rwx` 和 `chmod 700` 有什么区别?

23
我的目标是防止除了所有者以外的其他用户修改/读取权限。在Ubuntu论坛上,提供了两种解决方案。请参考。
sudo useradd -d /home/newuser -m newuser
chmod 700 /home/newuser # or # chmod go-rwx /home/newuser

[Q] chmod go-rwxchmod 700有区别吗?它们是否都能达到相同的效果?如果有区别,哪一个更推荐使用?


我投票关闭此问题,因为它属于Ask Ubuntu - Andrew Morton
1
当然可以在Ubuntu上问。但是这不应该是适用于Linux的通用问题吗?@Andrew Morton - alper
2
这绝对不是针对Ubuntu的特定问题,因为我在Ubuntu出现之前就已经做过这个了... - Gonen I
1
@alper 无论如何,在 Stack Overflow 上都是不相关的话题。你在问题中提到了 Ubuntu,所以我花了一些功夫为你找到了一个专门针对 Ubuntu 的 SO 网站的链接,而不是点击“应该发布在 Super User 上”的选项。 - Andrew Morton
2个回答

35

go-rwx会从文件的group和other用户中移除read、write和execute权限。它不会改变文件拥有者的user的权限。

因此,例如,一个具有644 (rw-r--r--)权限的文件,在运行该命令后将具有600 (rw------)权限。

另一方面,chmod 700将始终将权限更改为700 (rwx------),无论先前的权限如何。

所以这取决于你想要实现什么目标。

注意:

  • 特别是在使用-R更改整个目录时,这使得go-rwx更有用,因为可执行标志通常仅希望出现在文件夹(以便可以进入)和需要执行的程序文件上。使用700将向所有尚未拥有它的文件添加可执行标志,这通常不是您想做的事情。
  • chmod 700的一般效果在其他符号表示法中实际上看起来像 chmod u+rwx,go-rwxchmodu=rwx,go=(授予所有权限给拥有文件的user,删除group和other的所有权限)。
  • 并非所有版本的chmod都支持ugo±rwx语法方案。

8
可能存在不同之处:
chmod 700 允许所有者读取、写入和执行,并且不给予组和其他用户任何权限。

chmod go-rwx 从组和其他用户中删除读/写/执行权限,但保留所有者拥有的权限。

例如,如果所有者一开始没有文件的执行权限,只有读和写权限,则结果可能会不同。使用 chmod 700,所有者也将获得执行权限,而使用 chmod go-rwx 则不会。


我想为文件所有者授予执行权限。所以chmod 700似乎是更好的选择?@Gonen - alper
只有当所有者没有读/写/执行权限时,才会有所不同。如果所有者拥有这三个权限是可以的,那么您可以安全地使用chmod 700。 - Gonen I

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接