chmod 001 还是 111? Unix 可执行文件的权限问题

chmod 001 还是 111? Unix 可执行文件的权限问题

我很困惑这个问题要求我做什么。对于上下文,hello 是一个 C++ 文件。

“再次使用 chmod 命令使 hello 成为可执行文件,但对所有用户来说不可读且不可写。”

使用在线 chmod 计算器,我最好的猜测是chmod 001 hello,它可由公众执行,但公众无法读取或写入。

它是否正确?

答案1

首先请允许我解释一下 chmod 的基础知识。

Chmod 是一个 Unix 命令,允许您设置权限来确定谁可以访问该文件以及他们如何访问该文件。

您可以为 3 个不同的类别设置这些权限。

  1. 文件的所有者(U序列)
  2. 拥有该文件的组的成员 (G组)
  3. 其他所有人 (其他)

修改权限有两种方法:

1) 使用字母数字字符

权限分为 3 类:

A。伊德
莱特
角eX执行

您可以通过以下方式设置权限:让我们想象一个名为的文件file.sh 我们要设置权限以便

  • 用户可以r头,w仪式,eX执行
  • 该小组可以r头,w仪式
  • 其他人可以r电子头

我们所要做的就是奔跑

chmod u=rwx,g=rw,o=r file.sh

或者也许我们想让它对每个人都可执行,所以我们运行

chmod +x file.sh

如果想要与上述命令相反的命令,我们可以这样做

chmod -x file.sh

2)使用八进制数

另一种方法是使用八进制数字,其中每个数字按顺序代表用户、组和其他人的权限。

  • 4代表“读”
  • 2代表“写”
  • 1代表“执行”
  • 0 代表“无权限”。

通过添加这些数字,我们可以轻松设置单独的权限。所以如果我们采用前面的例子那就意味着

chmod 764 file.sh

7是权限4+2+1的结果,6是4+2+0,4是4+0+0

您可以通过运行查看更多信息man chmod


回到你的问题。虽然你的问题不清楚,但我想说你应该使用

chmod 711 hello

这意味着您(所有者)拥有完全权限,您的组只能执行,其他人也一样。

或(取决于你如何解释这些词“全部用户”

chmod 771 hello

这意味着您(所有者)拥有完全权限,您的组也是如此,但其他人只能执行。

现在我应该提到你可以使用类似的东西

chmod 001 hello

或者

chmod 111 hello

但我认为做这样的事情没有意义,除非它是一个编译的程序或其他东西。但仍然...

答案2

问题不太清楚,但我猜测他们想要 771 或 nn1 的任意组合。但我不认为001正是他们正在寻找的。他们只指定全部用户应该能够执行而不是读取或写入,因此所有者/组没有理由不能读取/写入。

另外如果你做过将权限设置为001无法执行,因此至少他们想要 111。

相关内容