Linux文件权限总结

一、用户组和用户

Linux是一个多用户、多任务环境,如下图,GroupA代表一个用户组,GroupB代表一个用户组,root是超级用户。

Linux文件权限总结

Linux中,任何一个文件都有User、Group和others3种身份的级别。以UserB为例,UserB属于GroupA,UserE相对于UserB就是others。

二、文件属性

查看文件属性的命令:

ls -al

在一个文件夹下使用上述命令:

Linux文件权限总结

返回结果从左到右一共有7列:
Linux文件权限总结

1:文件的类型与权限

第一列的前10个字符(@除外,mac特有)代表文件组的读、写、执行权限。

第一个字符代表文件是目录、文件或者连接文件。

  • d:代表目录
  • -:代表文件
  • l:连接文件
  • b: 可供存储的接口设备
  • c:串行端口设备(鼠标、键盘等)

后面9个每3个一组,均为”rwx”的组合:

  • r:代表可读
  • w:代表可写
  • x:代表可执行

第一组为文件所有者的权限、第二组为用户组的权限、第三组为其它非本用户组的权限。
drwxr-xr-x为列:

d    rwx     r-x    r-x
1    234     567    890

1:说明文件类型为文件夹
234:文件所有者可读、可写、可执行(rwx)
567:文件所有者的用户组可读、可执行不可写(r-x)
890: others用户可读、可执行不可写(r-x)

2:连接

第二列代表有多少个文件名连接到此节点。

3:所有者

第三列代表文件的所有者

4:用户组

第四列代表文件所属的用户组

5:文件大小

第五列代表文件大小,单位为B。如果想使用可读模型,使用-h参数,即:

ls -alh

6:修改日期

第六列代表文件的创建日期或者最近修改日期。格式为月、日和时间,若文件第修改时间较久,会显示年份。

7:文件名

第七列代表文件名,如果文件前面有一个.代表该文件是隐藏文件。

三、改变文件属性与权限

如果需要改变文件(夹)的文件所属用户组、文件所有者、文件的权限,Linux提供列了相应的修改命令。

3.1改变文件所属用户组

chgrp:change group的缩写,把install.log文件的用户组改为users:

chgrp users intall.log

如果是文件夹,需要添加-R参数,文件夹下的子文件和子文件夹都会递归添加。

3.2 改变文件所有者

chown:change owner的缩写,改变文件的所有者:

chown bee intall.log

同样,文件夹可以使用-R参数。

3.3改变文件的权限

chmod:改变文件的权限
linux的文件基本权限有9个,分别是owner、group和others三种身份各自有的读、写、执行权限,各权限读分数如下:

  • r:4
  • w:2
  • x:1

    每种身份的权限都需要累加,例如,对.bashrc文件,修改其执行权限为:owner=rwx=4+2+1,group=rwx=4+2+1,others=---=0+0+0=0,执行命令:

chmod 770 .bashrc

四、笔试题

在Linux中,对file.sh文件执行chmod 645 file.sh,该文件对权限是:(D)

  • A -rw-r--r--
  • B -rw-r--rx-
  • C -rw-r--rw-
  • D -rw-r--r-x

五、参考资料

《鸟哥的Linux私房菜》