用户组与文件权限

Posted aiguona

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户组与文件权限相关的知识,希望对你有一定的参考价值。

一、ls命令

虽然本篇重点讲的是用户组与文件权限,但是这一切都要从ls这个命令说起,故先介绍ls这个命令。ls(List)命令是linux下最常用的命令之一,ls跟dos下的dir命令是一样的都是用来列出目录下的文件。

几个重要的参数如下:

 

1. ls -a 列出文件下所有的文件,包括以“.“开头的隐藏文件(linux下文件隐藏文件是以.开头的,如果存在..代表存在着父目录)。

2. ls -l 列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等。

3. ls -F 在每一个文件的末尾加上一个字符说明该文件的类型。"@"表示符号链接、"|"表示FIFOS、"/"表示目录、"="表示套接字。

4. ls -s 在每个文件的后面打印出文件的大小。 size(大小)

5. ls -t 按时间进行文件的排序 Time(时间)

6. ls -A 列出除了"."和".."以外的文件。

7. ls -R 将目录下所有的子目录的文件都列出来,相当于我们编程中的“递归”实现

8. ls -L 列出文件的链接名。Link(链接)

9. ls -S 以文件的大小进行排序

简单测试如下:

技术图片

补充三点:

1.文件名前面有.的表示隐藏文件

2.不同的颜色有不同的含义(上图不全):

绿色---->代表可执行文件

红色---->代表压缩文件

深蓝色---->代表目录

浅蓝色----->代表链接文件

灰色--→代表其它的一些文件

 

3.ls -al 显示的共有七列,含义分别为:

第一列:文件的类型与权限

第二列:有多少文件名连接到此节点(i-node)

第三列:所有者账号

第四列:文件所属用户组

第五列:容量大小,默认单位B

第六列:创建或最近修改日期

第七列:文件名

 

二、用户与用户组

在ls -al查看的文件中,第三列与第四列为所有者与文件所在组。这个概念比较重要。

由于Linux系统是多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

用户和用户组属于多对多关系,一个用户可以同时属于多个用户组,一个用户组可以包含多个不同的用户。使用用户组的好处是便于一个小组合作开发。

关于所有者,文件所在组与其他组的概念区分为:

所有者:一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者

文件所在组:当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组

其它组:除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组

三、文件类型与权限

在ls -al查看的文件中,第一列为文件权限。这个概念非常重要。

从上面可以看出,文件权限共有十个字符组成。第一个字符为文件类型,后面九个字符每三个为一组,分别表示所有者、文件所在组、其他人的权限。具体看下面介绍。

1.文件类型

在Linux中,文件类型此字符有关,并不像windows中以扩展名区分。(虽然Linux中有看起来像是扩展名的存在,比如proximity.conf,但是这个扩展名仅为了方便区分,并没有实质性作用)。

在Lunux中有这几种类型

-:普通文件    

d:目录    

c:字符设备    

s:套接字    

p:管道    

b: 块设备      

l:  链接

技术图片

例如上图,.bashrc就是文件,.cache就是目录(上面有介绍,开头是.表示隐藏文件)

2.文件权限

在剩余的九个字符中,每三个为一组,第一组是所有者的权限,第二组是文件所在组的权限,第三组是不同组的其他用户的权限。

每一组的顺序都是为RWX,含义分别为读(r)、写(w)、执行(x),如果没有权限就用-代替,但是顺序不会变化。

例如:如果一个文件的属性为-rwxrw-r--

解读一下就是:这个是一个文件(第一位为-),所有者的权限为可读可写可执行(RWX),同组的用户权限是可读可写不可执行(RW-),其他组的权限是可读不可写和不可执行(R–)

这是对于一个文件来说的,同样对于文件夹也有这样的属性,那文件夹的可执行是什么,可读可写又是什么?

 

对于文件夹(目录)来说,

r权限:可以查看目录中的文件信息

w权限:可以在目录中添加删除文件

x权限:可以进入目录

 

这个很难区分RX权限,具体看例子

如果一个目录权限是RWX 则表示,对这个目录,可以查看信息,可以在目录中添加删除文件,可以进入目录

如果一个目录权限是R-- 则表示,对这个目录,可以查看信息,不可以在目录中添加删除文件,不可以进入目录。这里解释一下:可以查看信息是指可以用ls查看目录下的内容,不可进入目录指的是不可cd进入作为工作目录。

如果一个目录权限是R-W 则表示,对这个目录,可以查看信息,不可以在目录中添加删除文件,可以进入目录。即可以查看信息是指可以用ls查看目录下的内容,可进入目录指的是不可cd进入作为工作目录,但是不能删除添加文件。

注意:W权限具有删除功能,不可随便添加这个权限。

四、群组和权限修改

简单的介绍完上面的第一列、第三列和第四列后,就说一下修改方法。

1.chgrp : 改变档案所属群组

chgrp [-R] dirname/filename ... 

选项与参数:-R :进行递归(recursive)的持续变更,亦即连同次目录下的所有档案、目录都更新成为这个群组之意。常常用在变更某一目录内所有的档案之情况。

2.chown : 改变档案拥有者

chown [-R] 账号名称 档案或目录 
chown [-R] 账号名称:组名 档案或目录
选项与参数: -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有档案都变更

3.chmod :改变文件或目录的权限

3.1 数字类型

刚才介绍了RWX三个表示可读可写可执行,三个权限的数字为:r:4   w:2   x:1 这样可以用0-7这8个数字表示所有的权限,例如RW-就是4+2+0=6,RWX就是4+2+1=7,—就是0+0+0=0

chmod [-R] xyz 档案或目录 
选项与参数: 
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。 
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有档案都会变更

3.2符号类型

刚才说的九个字符是三种用户的权限,用户分别是(1)user (2)group (3)others,那么我们就可以由u, g, o来代表三种身份的权限,此外, a 则代表 all 亦即全部的身份。

那么读写的权限就可以写成r, w, x也就是可以用下面的方式来看:

技术图片

例如:

chmod u=rwx,go=rx .bashrc 

# 设置user的权限是RWX,group和other的权限是RX,注意go是连在一起的,中间并没有任何空格符

chmod a-x .bashrc 

#删掉所有人的执行权限

以上是关于用户组与文件权限的主要内容,如果未能解决你的问题,请参考以下文章

Linux文件权限与文件夹权限实践

Linux目录与文件的权限

如何修改Linux文件的属性与权限

linux[基础]-20-用户与文件权限-[文件隐藏权限]-[02]

Linux的文件权限与目录配置

Linux的文件权限与目录配置