Linux系统中,不同的用户处于不同的地位,拥有不同的权限。 为保护系统的安全性,Linux 系统对不同的用户访问同一文件或目录的权限做了不同的规定。

查看文件属性

在 Linux 中我们可以使用 ll 或者 ls –l 命令来显示一个文件的属性,如:

[root@centos /简历]# ll -h
总用量 516K 
文件权限  硬链次数  所属人  所属组  大小        创建日期      文件名
-rw-r--r--   1     root    root   196K    4月  26 13:43   岳丹丹.pdf
-rw-r--r--   1     root    root   320K    4月  26 13:42   张珂珂.pdf

文件权限比较复杂,来单独解读剖析下: - rw- r-- r--

第0个字符,即红色的那个,代表这个文件是目录、文件。当为 d 则是目录,当为 - 则是文件。

接下来的字符中,标识都是文件不同角色对应的读写权限,以三个为一组,且均为 rwx 的三个参数的组合,分别代表读权限、写权限、执行权限。

  • 第1~3个字符:代表当前用户的操作权限
  • 第4~6个字符:代表当前组的操作权限
  • 第7~9个字符:代表其它用户的操作权限

更改文件属性

在 Linux 中我们通常使用以下两个命令来修改文件或目录的所属用户与权限:
chown (change owner) : 修改所属用户与组。
chmod (change mode) : 修改用户的权限。

更改文件属组

chgrp 属组名 文件名

参数选项

  • -R:递归更改文件属组,该目录下的所有文件的属组都会更改。

更改文件属主

这个命令也可以同时更改文件属组

chown 属主名 文件名
chown 属主名:属组名 文件名

参数选项

  • -R:递归更改文件属组,该目录下的所有文件的属组都会更改。

更改文件9个属性

Linux 文件的基本权限就有九个rwxrwxrwx,分别是 拥有者/组/其他 三种身份各有自己的 读/写/执行 权限,这样就分成了3组,每组3个。一般使用 u, g, o 来代表三种身份的权限。a即all指全部的身份

命令给谁授权操作符那个文件或目录
chmodu、g、o、a+、-、=r、w、x文件或目录

如将文件权限设置为 【文件拥有者有所有权限,组只有读和执行但不能修改,其他人只能读取】,推算得出为-rwxr-xr-- ,即

chmod u=rwx,g=rx,o=r 文件名

再来个例子,使得某个文件具有可以执行的权限

chmod +x ./test.sh  #使脚本具有执行权限

以上为正规做法称之为符号类型改变文件权限,通常人们更喜欢用更简洁的写法数字类型改变文件权限

我们可用数字来代表各个权限,r:4、w:2、x:1。通过求和累加,用这个和来替代3个权限,比如上的例子

chmod u=rwx,g=rx,o=r 文件名 # 符号类型改变文件权限
chmod 754 # 数字类型改变文件权限 7是u(属主)的权限分、5是g(属组)的权限分、4是o(其它)的权限分

选项与参数:

  • -R : 进行递归(recursive)的持续变更,以及连同次目录下的所有文件都会变更