Linux修改文件属性和权限

在Linux下,和文件有关的身份有用户组,所有者,others,这三种身份又有三种权限,即r(读)、w(写)、x(执行)。


首先,文件权限描述由10个字符组成,例如,“-rwxr-xr--”、"drwxr-xr-x".

其中,第一个字符的含义为:

d:表示目录

-:表示文件

l:表示连接文件

b:表示设备文件里面的可供存储的接口设备

c:表示设备文件里面的串行端口设置,例如键盘、鼠标


接下来的9个字符,分为三组,每组三个字符,均为“rwx”的三个参数组合。这三个字符的位置不会改变,如果没有某权限,则出现‘-’号。

这三组字符中,第一组表示文件所有者的权限;第二组表示同用户组的权限;第三组表示others的权限。


1、修改文件所属用户组

命令:chgrp

例如,修改文件install.log的所属用户组为users,则输入命令:

[plain] view plain copy
  1. # chgrp users install.log  

2、修改文件所有者

命令:chown

例如,修改install.log的所有者为bin,则输入命令:

[plain] view plain copy
  1. # chown bin install.log  

3.修改权限

命令:chmod

我们知道,Linux文件的基本权限有9个,分别是owenr、group、others三种身份各自有自己的r、w和x。假如文件的权限字符为:“-rwxrwxrwx”,这9个权限是三个三个一组的,我们可以使用数字表示权限:

r->4

w->2

x->1

所以,当文件权限为“-rwxrwx---”时,分数是:

owner->4+2+1=7

group->4+2+1=7

others->0+0+0=0

此时文件的权限数字就是770.

Linux修改文件属性和权限

假如有一文件bashrc,权限字符为“-rwxrwxrwx”,我们需要修改为“-rwxr-xr--”,计算得权限数字为754,所以,执行命令:

[plain] view plain copy
  1. # chmod 754 bashrc  

还有一个改变权限的办法。我们知道文件有9个基本权限,分别是owner、group和others三种身份各自的三个权限,我们用u、g、o代表三种身份,用a(all)代表所有身份,得到下表:

Linux修改文件属性和权限

例如,我们可以这样设置文件bashrc的权限:

[plain] view plain copy
  1. # chmod u=rwx,go=rx bashrc  

即user权限为rwx,group和others的权限均为rx。

如果我们想让每个人都可对文件bashrc写入,则可以:

[plain] view plain copy
  1. # chmod a+w bashrc  

而如果要将权限去掉,则用-。例如我们去掉全部人的执行权限:

[plain] view plain copy
  1. # chmod a-x bashrc