1 基础
说明
符号 | 数值 | 权限 | 对目录 | 对文件 |
---|---|---|---|---|
r | 4 | 读 | 可以查看(ls)目录下内容 | 可查看文件内容 |
w | 2 | 写 | 可以在目录想创建/删除文件(能进入目录的前提下) | 可修改文件内容 |
x | 1 | 执行 | 可以进入该目录 | 直接运行该文件 |
设置权限
chmod 755 aaa # 自己可在目录下
chmod g+w aaa
chmod o-x aaa
2 进阶
特殊符号 | 意义 | 说明 | 命令 |
---|---|---|---|
s | setuid | 作用于可执行文件,设置使文件在执行阶段具有文件所有者的权限. | chmod u+s FILE |
s | setgid | 作用于目录,任何用户在此目录下创建的文件都具有和该目录所属的组相同的组 | chmod g+s DIR |
t | sticky bit | 作用于目录,设置该位后, 就算用户对目录具有写权限, 也不能删除该文件 | chmod o+t DIR chmod a+t DIR |
那么原来的执行标志x到哪里去了呢? 系统是这样规定的, 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T)
用数值设定特殊权限,需要4位8进制数,第一个表示特殊权限,后三位表示基本权限
- 0: 不设置特殊权限 # 平时用的
chmod 755
相当于chmod 0755
- 1: 只设置sticky
- 2 : 只设置SGID
- 3: 只设置SGID和sticky
- 4 : 只设置SUID
- 5 : 只设置SUID和sticky
- 6 : 只设置SUID和SGID
- 7 : 设置3种权限
常用场景: 创建一个公共目录,
- 自己拥有全部权限,
- 同组人可以在该目录下创建,删除自己的文件,但不可以删除或修改其他人的文件
- 其他组只能进入查看该目录下的文件
mkdir pub
chmod 775 pub
chmod o+t pub # or chmod a+t pub
PS: 为了安全,可执行文件不能是解释性语言的脚本(shell, python等)
** 不过可以通过pyinstaller把Python脚本编译成可执行文件**