Linux档案权限

一、简介

Linxu的档案权限分为使用者和群组。

在某目录执行ls -la命令,会列出形如下图所示的文件信息展示

-rwxr-xr-- 1 root root 1119 Nov 28 06:15 test.sh

其中各列的含义如下表所示:

含义
-rwxr-xr- - 档案类型权限
1 连结数
root root 分别表示档案拥有者和所属群组
1119 档案容量
Nov 28 06:15 档案最后被修改的时间
test.sh 档案名

二、档案类型权限

关于档案类型权限的详细解释如下图所示:

Linux档案权限_第1张图片

第一个属性代表这个档案是『目录、档案或连结文件等等』:
当为[ d ]则是目录;
当为[ - ]则是档案;
若是[ l ]则表示为连结档(link file);
若是[ b ]则表示为装置文件里面的可供储存的接口设备;
若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标。

接下来的属性中,三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(excute),下面以[-rwxr-xr- -]为例进行说明:
第一组为『拥有人的权限』,该档案的拥有人可以读写执行;
第二组为『同群组的权限』,可以进行读和执行;
第三组为『其它非本群组的权限』,只能进行读。

三、改变档案权限

改变档案权限的命令大致有三个:
chgrp :改变档案所属群组
chown :改变档案所属人
chmod :改变档案的属性、 SUID 等属性

[root@linux ~]# chgrp [-R] dirname/filename ...
参数:
-R : 进行递归( recursive )的持续变更,亦即连同次目录下的所有档案、目录都更新成为这个群组之意。常常用在变更某一目录的情况。 

#改变test.sh文件的所属群组为staff
[root@linux ~]# chgrp staff test.sh

[root@linux ~]# chown [-R] 账号名称 档案或目录
[root@linux ~]# chown [-R] 账号名称:群组名称 档案或目录
参数:
-R : 进行递归( recursive )的持续变更,亦即连同次目录下的所有档案、目录都更新成为这个群组之意。常常用在变更某一目录的情况。 

#改变test.sh文件的拥有者为user
[root@linux ~]# chown user test.sh
#改变test.sh文件的拥有者为user,所属群组为staff
[root@linux ~]# chown user:staff test.sh

对于chmod的命令,我们需要先了解一个简单的知识。
在“-rwxr-xr–”中,我们用数字来表示rwx,对照关系如下所示:
r : 4
w : 2
x : 1
同一组 (owner/group/others) 的三个属性 (r/w/x) 是需要累加的,例如当属性为 [-rwxr-xr- -] 则是:
owner = rwx = 4+2+1 = 7
group = r-x = 4+2+1 = 5
others= r- - = 4+0+0 = 4
所以,其属性为754

[root@linux ~]# chmod [-R] xyz 档案或目录
参数:
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
-R : 进行递归( recursive )的持续变更,亦即连同次目录下的所有档案、目录都更新成为这个群组之意。常常用在变更某一目录的情况。

#更改test.sh文件的属性为777,即[-rwxrwxrwx]
[root@linux ~]# chmod 777 test.sh 

还有一种更改属性的方法,即符号类型改变档案权限。
我们用u、g、o来分别代表user、group、other三个群组,a代表all,即全部三个群组;并用[+]代表添加权限,[-]代表取消权限,[=]代表设定权限。

#更改test.sh文件的属性为[-rwxr-xr-x]
[root@linux ~]# chmod u=rwx,go=rx test.sh
#为test.sh的其他用户增加文件执行权限
[root@linux ~]# chmod o+x test.sh

你可能感兴趣的:(Linux)