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

What is the difference between `chmod go-rwx` and `chmod 700`

我的目标是防止 modify/read 除所有者以外的其他用户的许可。 On ubuntu forums 作为解决方案,两种方法都给出了。

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

[Q] chmod go-rwxchmod 700 之间有什么区别,或者两者完成的是同一件事吗?如果有区别,推荐哪一个?

可能会有所不同:
chmod 700 允许所有者读取、写入和执行,不授予组和其他权限。

chmod go-rwx 删除组和其他人的 read/write/execute 权限,但保留所有者拥有的任何权限。

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

则不会

go-rwx 删除 read,write,execute来自 g 组和 o 其他用户的权限。它将不会更改拥有该文件的u服务器的权限。

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

另一方面,

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

所以这取决于你想要完成什么。

备注:

  • 尤其是在使用 -R 更改整个目录时,这使得 go-rwx 更有用,因为 ex 可执行标志通常只需要在文件夹上使用(以便可以输入)和需要执行的程序文件。 使用 700 会将 executable 标志添加到 all 还没有它的文件,这通常不是你想要的倒是想做。
  • chmod 700 的一般效果在其他表示法中实际上看起来像 chmod u+rwx,go-rwxchmod u=rwx,go=(授予 u[=49= 所有权限]ser 拥有文件,删除 group 和 other)
  • 的所有权限
  • 并非所有版本的 chmod 都支持 ugo±rwx 语法方案。