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

时间:2018-06-07 07:58:09

标签: unix filesystems chmod

我的目标是阻止除所有者之外的其他用户的修改/读取权限。关于评论的On ubuntu forum两种方法都给出了。

示例:

sudo useradd -d /home/newuser -m newuser;
sudo chmod 700 /home/newuser # or # chmod go-rwx /home/newuser

=> chmod go-rwxchmod 700之间是否有任何区别,或者两者都完成同样的事情?如果建议使用哪一个有区别?

2 个答案:

答案 0 :(得分:11)

go-rwx g 中删除 r ead, w rite,e x ecute权限roup和 o 其他用户。它将更改拥有该文件的 u 服务器的权限。

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

另一方面,

chmod 700将始终将权限更改为700(rwx------),无论之前的权限如何。

所以这取决于你想要完成的事情。

注意:

  • 特别是在使用-R更改整个目录时,这会使go-rwx更有用,因为e x 可执行标记通常只在文件夹上设置(因此它们可以是输入)和程序文件。 使用700会将 x 可执行标记添加到尚未拥有的所有文件中,这通常不是您所拥有的想做。
  • chmod 700在其他表示法中实际看起来的一般效果是chmod u+rwx,go-rwxchmod u=rwx,go=(授予对 u ser拥有文件的所有权限,删除 g roup和 o 的所有权限
  • 并非所有版本的chmod都支持ugo±rwx语法方案。

答案 1 :(得分:3)

可能会有所不同: chmod 700允许所有者读取,写入和执行,并且不为Group和Other提供权限。

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

因此,例如,如果所有者对文件没有执行权限,并且只有读写,则结果可能不同。使用chmod 700,所有者也将获得执行权限,而他不会使用chmod go-rwx