我有一个名为 的文件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
进一步阅读: