zoukankan      html  css  js  c++  java
  • 用户组与文件权限

    一、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 

    #删掉所有人的执行权限

  • 相关阅读:
    【JVM源码解析】模板解释器解释执行Java字节码指令(下)
    【JVM源码解析】模板解释器解释执行Java字节码指令(上)
    【超硬核】JVM源码解读:Java方法main在虚拟机上解释执行
    Airtest结合tidevice实现IOS自动化测试
    Xcode连接真机提示设备未认证或版本太旧解决方案
    Jmeter——SMTP Sampler发送邮件
    Jmeter——脱离Jenkins后,Ant集成邮件通知
    spring boot快速入门
    MyBatisPlus 快速入门
    VS 查看引用的DLL/Nuget包源码时,无法看到注释
  • 原文地址:https://www.cnblogs.com/aiguona/p/10634184.html
Copyright © 2011-2022 走看看