认识 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 操作系统是最好的办法。

原文地址:https://www.cnblogs.com/pengweiqiang/p/10085791.html