修改具有 777 权限但不具有 755 权限的文件?

Léo*_* 준영 1 unix command-line permissions

我可以使用 777 权限修改文件,但不能使用 755 权限。我通过获取一些 sed 命令来实现。我觉得这很奇怪,因为我可以在 Vim 中修改具有 700 个权限的文件。

为什么不能用 755 权限修改文件?sed、awk 和 find 等基本的 unix 工具是否需要 777 权限?

Joh*_*n T 12

UNIX 和类 UNIX 系统上的权限工作如下...

rwxrwxrwx = 777

您会注意到有 3 组 rwx。这些被指定用于:

  • 用户
  • 团体
  • 其他

用户- 拥有文件/目录所有权的人。
- 如果一个组可以控制一组特定的文件,并且您在该组中,则您将继承分配给该组的权限。
其他- 您不属于上述任何类别。

更图形化的表示:

uuu | ggg | ooo
rwx | rwx | rwx
 7  |  7  |  7
Run Code Online (Sandbox Code Playgroud)

你可能会问777来自什么?

读取权限 (r) - 4
写入权限 (w) - 2
执行权限 (x) - 1

3 位数字序列中的每个单独数字都以确切的顺序表示用户、组和其他类别。例如,如果数字是 777,则每个人都可以完全访问该文件。如果是 111,则每个人都只有执行权限。

对于具有 755 权限的文件,如果您不是该文件的所有者,则您只有读取和执行权限。您将无法写入这些文件。对于 700 权限的文件,您可能可以写入这些文件,因为它们是您自己创建的。该umask命令将告诉您可以从 777 中减去的数字,以查看默认情况下在您的系统上创建的权限文件。

  • 天哪,我从来没有意识到 Unix 权限是为位掩码设计的。http://en.wikipedia.org/wiki/Mask_(计算) (2认同)