chmod 选项中的混淆

chmod 选项中的混淆

我有一个名为 的文件test.sh。我曾经chown将其所有者设置为user1

chown user1 test.sh

然后我使用 chmod 选项来看看我是否正确理解它们。

chmod 400 test.sh

我可以读取该文件但无法修改或执行它。

chmod 200 test.sh

我可以通过命令行修改文件,但无法读取或执行它。

chmod 100 test.sh

我应该能够执行但不能修改或读取文件。但是每次我尝试不使用 sudo 执行时都会收到权限被拒绝的错误。

我在这里做错了什么?

答案1

你也可以尝试一下这个。

这将为所有者添加执行权限

chmod u+x file

如果所有者拥有执行权限,此操作将删除该权限。

chmod u-x file

第一个字符表示谁会受到此更改的影响。

  • u = 用户 - 所有者
  • g = 组 - 所属组
  • o = 其他 - 任何人
  • a = 全部 - 与 ugo 相同

第二个字符表示您是否要添加或删除权限

  • + = 添加权限
  • - = 删除权限
  • == 设置权限并覆盖

第三个字符表示申请哪种权限

对于文件:

  • r = 读取 - 显示文件内容,复制
  • w = 写入 - 更改文件内容、删除、重命名
  • x = 执行——运行脚本,程序...

对于文件夹:

  • r = 读取-显示文件夹内容
  • w = 写入 - 创建、从目录中删除文件
  • x = 执行 - cd 进入目录

如果要为文件夹中的所有文件添加所有者的写权限,请运行

chmod u+w -R folder

您也可以将它们组合起来,因此以下内容有效

chmod ugo+r file
chmod ug+rx file

答案2

基本权限:

  • 阅读:r––→ 4
  • 写:–w–→ 2
  • 执行:––x→1

最常用的组合:

  • 阅读:r––→ 4+0+0 =4
  • 读取并执行: r–x→ 4+0+1 =5
  • 读写:rw–→4+2+0=6
  • 读取、写入并执行: rwx→ 4+2+1 =7

进一步阅读:

相关内容