0


Linux的权限理解

    uu们在进行Linux学习的时候,肯定会涉及到用户权限的问题,这篇文章就来深入介绍介绍Linux中的权限~

1、什么是权限

    简单来讲,就是一件事是否能够被‘做’,是针对(人)和(事物的基本属性)决定的相关概念。也就是说**权限的核心为:人+事物属性**

2、Linux系统下的两种用户

超级用户

    可以在Linux系统下干任何事,几乎不受限制,超级用户的输入提示符为:#  

普通用户

    只能做有限的事情,普通用户的输入提示符为:$
  • su 【用户名】 //用来切换用户,当从普通用户切换到超级用户时需要输入超级用户的密码
  • Linux允许存在多个用户,用户之间不会相互影响

3、文件的访问者(人)

  • 文件和文件目录的所有者:u——User
  • 文件和文件目录的所有者所在的组:g——Group
  • 其他用户:o——others

4、文件类型和访问权限(事物属性)

以上是在Linux系统中查看文件所有属性的图片,拿第三行来进行说明:

drwxrwxr-x 3 JingLi JingLi 4096 Jul 21 11:00 d1

(1)第一列的第一个字符表示文件类型(Linux下,不以文件后缀名区分文件类型)

  • d:目录
  • -:普通文件
  • p:管道文件
  • b:块设备(磁盘设备)
  • c:字符设备(键盘或者显示器)
  • l:链接文件(类似于Windows上的快捷方式)

(2)第一列的第二个字符到第十个字符,每三个字符为一组,表示三种访问者的权限

  • rwx:User拥有读、写、执行三种权限
  • rwx:Group拥有读、写、执行三种权限
  • r-x:Others拥有读、执行两种权限,没有写的权限

(3)第二列的数字暂时先不讲

(4)第三列的字符串表示User,第四列的字符串表示Group

(5)第五列的数字表示所占内存大小,单位为字节(byte)

(6)第六列,第七列,第八列表示文件的创建月、日、时间

(7)最后一列为文件名

    所以对上面的示例行的解读为:这是一个名字为d1的目录文件,创建于7月21日11:00,占用4096字节的空间大小,拥有者为JingLi,拥有读、写、执行的权限,所属组为JingLi,同样拥有读、写、执行的权限,其他用户只拥有读、执行的权限,没有写的权限

5、文件权限的表示方法

基本权限:

  • 读(r):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  • 写(w):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  • 执行(x):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  • “-”表示不具有该项权限

字符表示方法:

八进制数表示方法:

6、文件权限修改的相关方法

chmod 指令

语法:chmod 【选项】 【权限】 【文件名】

功能:更改指定文件的权限

常用选项:

  • R :递归修改目录文件的权限 说明:只有文件的拥有者和root才可以改变文件的权限

权限的格式:

  • +:向权限范围增加权限代号所表示的权限
  • -:向权限范围取消权限代号所表示的权限
  • =:向权限范围赋予权限代号所表示的权限

**用户符号: **

  • u:拥有者
  • g:拥有者同组用
  • o:其它用户
  • a:所有用户

示例:

chmod u-x d1  //去掉文件d1的拥有者执行权限
chmod g+r file.txt    // 给file.txt的所属组加上读权限
chmod o+w test.c    // 给test.c的其他用户加上写权限
//
chmod 666 file.txt    //给文件file.txt的u、g、o读写权限,均无执行权限

chown 指令

语法:chown 【选项】 【用户名】 【文件名】

功能:修改文件的拥有者(只有文件的拥有者和root才能修改)

常用选项:

  • R :递归修改目录文件的拥有者 说明:只有文件的拥有者和root才可以改变文件的拥有者

chgrp 指令

与chown类似,chgrp时用来改变文件的所属组,这里就不多赘述

使用sudo分配权限

想要使用chown,chgrp指令来修改非本用户拥有的文件,可使用sudo指令

如果普通用户想要执行sudo来提升权限,需要该用户在信任列表里面,才可以执行sudo,然而添加用户到信任列表是需要root身份的!

添加到信任列表的方法:

chmod 740 /etc/sudoers
vi /etc/sudoer
//格式:接受权限的用户登陆的主机 =(执行命令的用户) 命令

使用示例:

sudo chown JingLi mycode.c     //将文件mycode.c的拥有者改为JingLi

7、umask

Linux默认:

  • 一个目录被创建时,起始权限为0777
  • 一个普通目录被创建时,起始权限为0666

但实际上你所创建的文件和目录,看到的权限往往不是上面这个值,原因就是创建文件或目录的时候还要受到 umask的影响,假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask

语法:umask

       umask 权限值

功能:查看权限掩码

       修改权限值

说明:

将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002

8、file 指令

语法:file 【选项】 【文件或者目录】

功能:辨识文件类型

常用选项:

  • -c 详细显示指令执行过程,便于排错或分析程序执行的情形
  • -z 尝试去解读压缩文件的内容

9、粘滞位

    如果大家所有用户都在一个目录下,对该目录具有相同的权限,那么张三在这个目录下创建的文件是可以被李四删除的,这就不合理了,如果采用将所在目录的w可写权限去掉,那么即使是张三也不能删除自己创建的文件了,肯定是不行的,那么我们就引入了粘滞位的概念

    我们可以**给目录加上粘滞位**来得到我们想要的结果:
chmod +t /home/   //给目录加上粘滞位
    当给目录加上粘滞位时,则该目录下的文件只能超级用户、文件拥有者、文件所属组删除,而不能被其他用户删除

注意:

  • 粘滞位只能给目录加,不能给普通文件加
  • 一般粘滞位是谁给的,谁才能取消(超级用户不受限制)

以上就是关于Linux权限理解的全部内容了~

有问题欢迎指出,多多点赞~

标签: 服务器 windows linux

本文转载自: https://blog.csdn.net/qq_57864385/article/details/125947424
版权归原作者 Joker2373 所有, 如有侵权,请联系我们删除。

“Linux的权限理解”的评论:

还没有评论