chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令
常见报错提醒:Permission denied.
解决方法:chmod 777 lady.sh
原理详解:
首先,查看文件权限 命令: ls -l
若想设置文件权限,
基本语法:例如将lady.txt设置为所有人可写: chmod a+w lady.txt
其中a为所有人,可替换为ugo,“+”代表增加权限,w代表可写,lady.tst
为文件名。
其它who(用户类型),operator(操作符)和 permission(权限)见下表
who | 用户类型 | 说明 |
---|---|---|
u | user | 文件所有者 |
g | group | 文件所有者所在组 |
o | others | 所有其他用户 |
a | all | 所有用户, 相当于 ugo |
Operator | 说明 |
---|---|
+ | 为指定的用户类型增加权限 |
- | 去除指定用户类型的权限 |
= | 设置指定用户权限的设置,即将用户类型的所有权限重新设置 |
模式 | 名字 | 说明 |
---|---|---|
r | 读 | 设置为可读权限 |
w | 写 | 设置为可写权限 |
x | 执行权限 | 设置为可执行权限 |
X | 特殊执行权限 | 只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行 |
s | setuid/gid | 当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限 |
t | 粘贴位 | 设置粘贴位,只有超级用户可以设置该位,只有文件所有者u可以使用该位 |
八进制语法:将lady.sh设置为所有人可读可写可执行:chmod 777 lady.sh(通常情况下可解决所有问题)
第一个7代表所有者的权限用数字表达,第二个7代表用户组的权限用数字表达,第三个7代表其它用户的权限数字表达,lady.sh为文件名。
# | 权限 | rwx | 二进制 |
---|---|---|---|
7 | 读 + 写 + 执行 | rwx | 111 |
6 | 读 + 写 | rw- | 110 |
5 | 读 + 执行 | r-x | 101 |
4 | 只读 | r-- | 100 |
3 | 写 + 执行 | -wx | 011 |
2 | 只写 | -w- | 010 |
1 | 只执行 | --x | 001 |
0 | 无 | --- | 000 |