1 基础

说明

符号 数值 权限 对目录 对文件
r 4 可以查看(ls)目录下内容 可查看文件内容
w 2 可以在目录想创建/删除文件(能进入目录的前提下) 可修改文件内容
x 1 执行 可以进入该目录 直接运行该文件

设置权限

  1. chmod 755 aaa # 自己可在目录下
  2. chmod g+w aaa
  3. chmod o-x aaa

image.png

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种权限

常用场景: 创建一个公共目录,

  • 自己拥有全部权限,
  • 同组人可以在该目录下创建,删除自己的文件,但不可以删除或修改其他人的文件
  • 其他组只能进入查看该目录下的文件
  1. mkdir pub
  2. chmod 775 pub
  3. chmod o+t pub # or chmod a+t pub

PS: 为了安全,可执行文件不能是解释性语言的脚本(shell, python等)
** 不过可以通过pyinstaller把Python脚本编译成可执行文件**