Linux权限

Linux里一般将文件可存取访问的身份分为所有者(owner),用户组(group),其他人(others)。
有了这个概念,那我们再来了解什么是权限。在一个目录下执行 ls -al
Linux权限
我们来看最后一行fib.c这个文件,了解一下这些字母都是啥意思。
Linux权限
在图一中咱发现每个文件的第一个文件权限都不一样,而且一堆字母,都是什么意思呢?
第一个字符代表这个文件是什么类型的文件:

  • 【-】:普通文件
  • 【d】:目录文件
  • 【p】:管道文件
  • 【b】:块设备文件
  • 【c】:字符设备文件
  • 【s】:socket文件
  • 【l】:软连接文件

接下来的字符中,三个为一组,第一组对应“文件所以者的权限”,第二组对应“同用户组的权限”,第三组对应“其他人的权限”,我们还是拿上面的fib.c来示例说明。
Linux权限
其中,各字符和权限的对应关系是:

  • 【-】:无权限
  • 【r】:读
  • 【w】:写
  • 【x】:执行
  • 【s】:用户设置位

分析一下fib.c的权限属性,fib.c是普通文件,它的所有者可以对它进行读写操作,同组的用户可以对它进行读写操作,其他人只能读。

那么怎么来修改权限呢?
命令 chmod :改变文件的权限
这里权限的设置方法有两种:1.使用数字 2.使用符号

方法一:
设置的规则是:(owner,group,others)中各组中权限分数相加,再把各组合起来组成数字,比如
-(rw-)(rw-)(r- -) 是664(’r’=4,’w’=2,‘x’=1,‘-’=0)
-rwxrwxr– 是774
-r—w—- 是420

我们来试着改变fib.c的权限:命令 chmod 666 fib.c
{666(-rw- rw- rw-):【所有者:(可读,可写,不可执行)】【同组用户:(可读,可写,不可执行)】【其他用户:(可读,可写,不可执行)】}
改之前:Linux权限
改之后:Linux权限

改成774: {774(-rwx rwx r–):【所有者:(可读,可写,可执行)】【同组用户:(可读,可写,可执行)】【其他用户:(可读,不可写,不可执行)】}
Linux权限

方法二:
设置的规则是:
Linux权限
u:所有者,g:同组用户,o:其他用户,a:所有用户

比如在上面的基础上设置fib.c的权限为{666(-rw- rw- rw-)}
命令是:chmod u=rw,g=rw,o=rw fib.c
Linux权限
也可以:chmod ugo=rw fib.c
再给其他用户除去读和写的权限:chmod o-rw fib.c
Linux权限
给所有者加上执行权限,给同组用户减去写权限加上执行权限,给其他用户加上读和执行权限(结果应是:-rwxr-xr-x)
命令 chmod u+x,g-w,g+x,o+rx fib.c
Linux权限
也可以 chmod a+x,g-w,o+r fib.c