zoukankan      html  css  js  c++  java
  • 认识 Linux 文件权限

      Linux 之所以是比较安全的操作系统,和它丰富的文件权限设定是有关系的,学习 Linux 操作系统一定要懂文件的权限识别和设置。通过这篇博文我们了解 Linux 操作系统的文件权限。

      拥有者  / 群组 / 其他人

           拥有者:谁创建了这个文件,谁就是文件的拥有者

      群组:文件创建者所在的群组,就是文件的群组,文件群组的权限,不是指这个群组的组织对文件的权限,而是在群组里面的成员拥有的权限。

            其他人:出去文件拥有者和群组外的人,就是文件权限中的其他人。

      这儿举个例子来说明下者三个概念:两个帮派,帮派 A 、帮派 B。帮派 A 里面有 张无忌、乔峰、杨过。帮派 B 里面有 鹤笔翁、鹿杖客、田伯光。这时候 张无忌自创了一套武功,降龙十九掌,那么张无忌就是这套武功的拥有者,帮派 A 就是这套武功的群组,乔峰和杨过就是帮派 A 的权限。剩下的人就是其他人了。

      文件权限

      我们先通过 ls -al 来看一下权限

       1、文件类型和权限:下图足以表达出权限中的含义

        1)第一个字符档案类型,分别有 文件、目录或者连接文件等,下面列出来具体的内容

    • 当为[ d ]则是目录,例如上表文件名为“.config”的那一行
    • 当为[ - ]则是文件,例如上表文件名为“initial-setup-ks.cfg”那一行
    • 若是[ l ]则表示为链接文件(link file)
    • 若是[ b ]则表示为设备文件里面的可供储存的周边设备(可随机存取设备)
    • 若是[ c ]则表示为设备文件里面的序列埠设备,例如键盘、鼠标(一次性读取设备)

      2、第二栏表示有多少文件名链接到此节点(i-node)

        每个文件都会将他的权限与属性记录到文件系统的i-node中,不过,我们使用的目录树却是使用文件名来记录, 因此每个文件名就会链接到一个i-node啰!这个属性记录的,就是有多少不同的文件名链接到相同的一个i-node号码去就是了。 关于i-node的相关数据我们会在第七章谈到文件系统时再加强介绍的。(这个还不是太了解,待第七章江西了解下)

      后面几项都好理解,这儿就不在介绍。

      改变文件属性与权限

      既然有文件权限,那么肯定也应该可以修改的,权限的修改主要有一下两种:

    • chgrp:改变文件所属群组。
    • chown:改变文件拥有者
    • chmod:改变文件的权限。

      为了更好的演示这三个命令,我们先来看一下另外一个命令:touch(新建文件,用法:touch [fileName]),mkdir (新建目录,用法:mkdir  [fileName])。我们在 admin 账号主文件夹下创建一个 mydir 目录。然后在这个文件里面创建 两个文件:mytstfile、mytstfile2,创建好的目录和文件如下图:

      1、chgrp:chgrp [群组] [文件名] 

        把 mytstfile 文件群组由 root 修改为 admin。命令如下:chgrp admin mytstfile 。

        如果是修改目录,那么 中间加 R 就表示所有文件都要修改。

        *** 需要注意的是,要修改到的群组,在 /etc/group 文件中必须存在。*******

      2、chown:chgrp [拥有者] [文件名]  用法如修改群组

         *** 需要注意的是,要修改到的拥有者,在 /etc/passwd 文件中必须存在。*******

      3、chmod:权限我们知道除了第一个表示文件类型外,后面的都是三个一组的,三组分别是 拥有者/群组/其他人。而每种权限又是 r 读、w 写、x 执行 - 无权限 中一个或几个。其中我们可以用数字来代表各个权限,如:r = 4,w = 2,x = 1,- = 0。而权限就可以根据数据来表示,比如:

         [-rwxr-xrw-]   own = rwx = 4+2+1 = 7;group = r-x = 4+0+1 = 5 ;others = rw- = 4+2+0 = 6 。那么这个权限用数字表示就是 756

        1) 、数字类型修改文件权限。

        根据这个表示,我们接下来设置权限,就可以根据数字来表示了。修改权限为:chmod 命令数字,如: chmod 777 mytstfile 。具体看例子:

        2) 符号类型修改文件权限 

        权限中的的分组是:users、group、others三组身份。那么就用 u 代表 users,g 代表 group,o 代表 others。另外 a 代表全部的身份。读写执行权限就用 r w x 来表示。设置权限命令: 

          chmod u=rwx,g=rx,o=r filename

     1 ##原来的文件权限
     2 [admin@bogon mydir]$ ls -al
     3 -rwxrwxrwx.  1 admin admin    0 12月  9 22:40 mytstfile
     4 
     5 ##修改命令
     6 [admin@bogon mydir]$ chmod u=rw,g=rx,o=r mytstfile
     7 
     8 ##修改后的权限
     9 [admin@bogon mydir]$ ls -al
    10 总用量 4
    11 -rw-r-xr--.  1 admin admin    0 12月  9 22:40 mytstfile

       也可以统一来加某项命令,或者减某项命令

    ##所有的加上执行的权限
    [admin@bogon mydir]$ chmod a+x mytstfile
    [admin@bogon mydir]$ ls -al
    总用量 1
    -rwxr-xr-x.  1 admin admin    0 12月  9 22:40 mytstfile
    
    ##所有的去掉可写的权限
    [admin@bogon mydir]$ chmod a-w mytstfile
    [admin@bogon mydir]$ ls -al
    总用量 1
    -r-xr-xr-x.  1 admin admin    0 12月  9 22:40 mytstfile
    
    ##给使用者加上 可写的权限
    [admin@bogon mydir]$ chmod u+w mytstfile
    [admin@bogon mydir]$ ls -al
    总用量 1
    -rwxr-xr-x.  1 admin admin    0 12月  9 22:40 mytstfile
    
    ##给群组和其他人加上可写的权限
    [admin@bogon mydir]$ chmod g+w,o+w mytstfile
    [admin@bogon mydir]$ ls -al
    总用量 1
    -rwxrwxrwx.  1 admin admin    0 12月  9 22:40 mytstfile

      小结

      此博文主要减少文件权限操作方面的一些知识。到此就结束了。学习权限方面的知识,还是需要多多操作,在电脑上安装一个虚拟机,然后安装一个 Linux 操作系统是最好的办法。

  • 相关阅读:
    Docker(二十一)-Docker Swarm集群部署
    Docker(十八)-Docker配置DNS
    Docker(十七)-修改Docker容器启动配置参数
    Docker(十六)-Docker的daemon.json的作用
    JavaScript实现无缝滚动 原理详细讲解
    JS 数字 、中文、 英文、判断
    JS常用属性方法大全
    vue.js插件使用(01) vue-resource
    Vue.js常见问题
    web前端开发必备技术
  • 原文地址:https://www.cnblogs.com/pengweiqiang/p/10085791.html
Copyright © 2011-2022 走看看