详细刨析Linux权限。包含权限的概念、权限的修改、粘滞位等等。

Linux权限管理

    • 1、权限概念(谈谈我对权限的理解)
    • 2、认识Linux中的人(文件用户类别)和文件属性
    • 3、文件权限值的表示方法
      • a、字符标识
      • b、进制标识
      • c、Linux中用户权限的分配
    • 4、权限的修改
      • 1)使用chmod来修改权限
      • 2)使用chown来修改拥有者
      • 3)使用chgrp来修改所属组
      • 4)使用umask来修改文件的默认权限
    • 5、粘滞位

1、权限概念(谈谈我对权限的理解)

既然在这里要讲解权限的相关知识,那么我想先谈谈什么是权限,在Linux中我对于权限的认识是一件事情是否允许被特定的人做。这句话可能还是比较抽象,下面举一个例子:某视频网站,如果是普通用户大家不可以观看VIP影视,但是VIP用户则可以观看,这里的能否观看VIP影视就是一件事情是否可以被特定的人做,而那个特定的人指的就是VIP用户。

在Linux中关于权限的概念可以理解为不同的用户对事物属性的操作。在Linux中权限约束用户对文件操作时文件本身具有的天然的权限属性:r读权限、w写权限、x执行权限这些属性是否可以做。

2、认识Linux中的人(文件用户类别)和文件属性

用户类别:

  1. 拥有者:仅自己具有访问文件的权限。
  2. 所属组:仅自己和所在组具有访问的权限
  3. 其他:除拥有者和所属组外的其他成员就是其他。

用户类别与root和普通用户的关系
拥有者、所属组、其他指的是一种角色身份,root和普通用户指的是具体的一个人。

Linux中的文件属性
注意:在Linux下一切皆文件!!!这句话贯穿整个Linux的学习过程中,希望大家能够多多体会。

Linux系统中不以文件的后缀来区分文件的类型,他以列属性的第一个字符来区分,但是对于编译器他需要识别文件后缀,下面来看不同的字符所代表的不同的含义。
d:文件夹
-:普通文件(文本、动静态库等)
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

3、文件权限值的表示方法

a、字符标识

  1. r-- 只读权限
  2. rw-读写权限
  3. rwx读写执行权限
  4. -w-只写权限
  5. -wx写执行权限
  6. –x只执行权限
  7. r-x读执行权限
  8. —无权限

b、进制标识

权限符号 二进制位
r 100
w 010
x 001
rw 110
rx 101
wx 011
rwx 111
—‘ 000

c、Linux中用户权限的分配

Linux中在文件的属性列中,从左到右三三为一组分别标识拥有者的权限、所属组的权限和其他用户的权限,具体如下图所示。
详细刨析Linux权限。包含权限的概念、权限的修改、粘滞位等等。_第1张图片

4、权限的修改

1)使用chmod来修改权限

格式:chmod [参数] 权限 文件名
说明:只有文件的拥有者和root才可以改变文件的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
使用实例如下:

chmod g+x test.txt //test.txt的拥有者添加可执行权限
chmod g-rwx test.txt //test.txt的拥有者除去读写可执行权限
chmod a-rwx test.txt //test.txt的所有用户除去读写可执行权限

此外权限在系统中按照二进制的方式进行标识,有权限则对应的二进制位1,反之为0;例如rw-rw-rw-对应的二进制位为:110110110,所有也可以使用chmod配合二进制来修改权限。使用实例如下:

chmod 777 test.txt
chmod 666 test.txt

2)使用chown来修改拥有者

格式:chown [参数] 用户名 文件名
注意:在将文件给其他用户的时候,需要征得其他用户的允许。

chown user1 f1

3)使用chgrp来修改所属组

格式:chgrp [参数] 用户组名 文件名

4)使用umask来修改文件的默认权限

我们可以观察到在我们创建的文件中基于文件的类别有相同的权限,这是系统给普通文件的默认权限为666,目录文件的权限为777。

功能:
查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到
umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
格式:umask 权限值
**说明:**将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002
实例:

umask //查看文件掩码
umask 022 //设置文件掩码

5、粘滞位

先来看一种需求分析:在特定场景下其他用户可以在特定的目录下创建文件,并写入,但是不允许任何人删掉自己的文件,在这种情况下便衍生出来了粘滞位来解决相关的问题。

对目录设置粘滞位:
chmod o+t dir

**注意:**粘滞位只能对目录设置,一般是限制other的权限。对于设置了粘滞位的目录,在该目录下,只能文件的拥有者可以删除,其他人不能删除,root除外。

你可能感兴趣的:(Jiawen的Linux,linux,运维,服务器)