参考链接:https://www.runoob.com/linux/linux-file-content-manage.html

1-查看权限

  1. ll
  2. 或者
  3. ls -l

image.png

2-文件权限解读

每个文件的属性由左边第一部分的 10 个字符来确定(如下图)。
2-文件基本属性 - 图2
第一个位置:

  • 当为 d 则是目录
  • 当为 - 则是文件;
  • 若是 l 则表示为链接文档(link file);
  • 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

从左至右用 0-9 这些数字表示:
0 位确定文件类型;
1-3 位确定属主(该文件的所有者)拥有该文件的权限;
4-6位确定属组(所有者的同组用户)拥有该文件的权限;
7-9位确定其他用户拥有该文件的权限。

其中:
1、4、7 位表示读权限,如果用 r 字符表示,则有读权限,如果用 - 字符表示,则没有读权限;
2、5、8 位表示写权限,如果用 w 字符表示,则有写权限,如果用 - 字符表示没有写权限;
3、6、9 位表示可执行权限,如果用 x 字符表示,则有执行权限,如果用 - 字符表示,则没有执行权限。

3-更改权限

chgrp:更改文件属组

语法:

  1. chgrp [-R] 属组名 文件名

-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。

chown:更改文件属主,也可以同时更改文件属组

语法:

  1. chown [–R] 属主名 文件名
  2. chown [-R] 属主名:属组名 文件名

例子:
进入 /root 目录(~)将install.log的拥有者改为bin这个账号:

  1. [root@www ~] cd ~
  2. [root@www ~]# chown bin install.log
  3. [root@www ~]# ls -l
  4. -rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log

将install.log的拥有者与群组改回为root:

  1. [root@www ~]# chown root:root install.log
  2. [root@www ~]# ls -l
  3. -rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log

chmod:更改文件9个属性

使用数字设置

语法:

  1. chmod [-R] xyz 文件或目录
  • xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
  • -R : 进行递归(recursive)的持续变更,以及连同次目录下的所有文件都会变更

各权限的分数对照表如下:

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

例子:

  1. [root@www ~]# ls -al .bashrc
  2. -rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc
  3. [root@www ~]# chmod 777 .bashrc
  4. [root@www ~]# ls -al .bashrc
  5. -rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc

使用符号设置

语法:
image.png

例子:
如果我们需要将文件权限设置为 -rwxr-xr— ,可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定:

  1. # touch test1 // 创建 test1 文件
  2. # ls -al test1 // 查看 test1 默认权限
  3. -rw-r--r-- 1 root root 0 Nov 15 10:32 test1
  4. # chmod u=rwx,g=rx,o=r test1 // 修改 test1 权限
  5. # ls -al test1
  6. -rwxr-xr-- 1 root root 0 Nov 15 10:32 test1

而如果是要将权限去掉而不改变其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:

  1. # chmod a-x test1
  2. # ls -al test1
  3. -rw-r--r-- 1 root root 0 Nov 15 10:32 test1