欢迎光临
我们一直在努力

【Linux】Linux权限

本文将会围绕着下面5个问题进行讲解:

  • 认识Linux下用户的分类
  • 什么叫做权限
  • 没有权限会有什么现象
  • 如何进行权限的修改
  • 其他与权限相关的问题
  • 好了,本章内容就要开始了,准备你的大脑,开凿吧!!!


    认识Linux下用户的分类

    root用户:超级用户

    普通用户:自己新建的用户

    二者的差别:root用户基本不受权限的约束,普通用户是受权限约束的。

    问:这俩个用户之间是如何切换的?

            Linux中所有的用户都要有密码,无论是root还是其他,即使多个普通用户,也都要设置密码。这里建议root账号的密码和其他普通用户的密码不同。

    • 普通用户切换到超级用户

    su:切换到root账号,输入root密码

    exit:回退到普通用户

    Ctrl + D:回退到普通用户

    su – :切换到root账号,输入root密码

    • root用户切换到普通用户

    su 用户名:切换到普通用户,不用输入用户密码

    exit:回退到普通用户

    • 普通用户切换到普通用户

    su 普通用户:切换到普通用户,需要输入对应密码

    Ctrl+D / exit :退回

    如何只对一条指令进行提权?

            如果我们想暂时的对一条命名进行提权,可以输入指令:sudo command,这样就可以将sudo后面的指令切换成root指令了。

    【注意】目前使用adduser新建的用户,没有执行sudo的能力,系统不信任你,除非未来将普通用户添加到系统信任白名单中——即诚信用户才可提高权限。

    权限是什么

    一件事情是否允许被你做——你的权限。

    • 权限认证的是身份,权限是和人有关系的。

    即一家公司是否允许被进入,需要证明是否是这家公司的员工;或者说如果你是视频VIP会员,你将被允许看VIP视频。这就是权限,与你这个人以及身份有关。

    • 权限也和事物的“属性”有关

    即你的身份是可以进入篮球场的进行观看的,但是你在篮球场却干起了炒菜,这就和球场的属性不同了。就以文件为例子,文件的属性是可读的、可写的、可以被执行的。

    下面我们就看看不同用户在不同的文件上的权限?

    每一个文件的属性详情的左侧都有着十个字符,下面我们来一一分解:

    第一个字符——文件的类名

    在Linux系统中,文件名后缀没有直接的意义,当然,这里的没有意义不代表可以没有用处,就比如说gcc,gcc是一款编译器,软件,这款软件在编译的时候会识别是否是.c或者.cpp后缀的文本文件。也就是说,不代表其他Linux系统上运行的其他软件不需要后缀。

    • – : 普通文件——文本、可执行程序、库基本都属于是普通文件。
    • d:目录文件
    • b:块设备文件——磁盘文件
    • c:字符设备文件——键盘、显示器文件
    • p:管道文件——用来进行通信的

    … …

    在Linux中如何看待后缀:看用户需求。

    后九个字符——文件的权限属性

    在后面九个字符中,可以发现都是由四个字符组成:

    • r:可读
    • w:可写
    • x:可执行
    • -:对应的权限位置是没有权限的。

    在Linux中,“人”是如何理解的?

    人可以分成:具体的用户与角色,角色或者说是一种权限身份。(就比如说教师办公室,你的身份是老师,同时你的权限身份是允许进入的人)

    在Linux中,具体的用户分为俩种:root用户和普通用户

    在Linux中,角色或者权限身份分为三种:拥有者、所属者、其他人

    那么,角色和具体的用户是什么关系呢?

    那么后面九个字符是如何归类的?

    以test.c文件中的所属者rw-为例子

    r 有读权限,w 有写权限, – 没有执行权限

  • 位置的含义是确定的,
  • 每一个位置只有是或者不是,具有指定的权限。
  • 文件的类型

    那么其他人(other)呢?

    用户进行判断是否是拥有者和所属者,如果二者都不是,就是other

    三种权限的存在和不存在是什么现象

    指令chmod

    功能:设置文件的访问权限

    格式:chmod [参数] 权限 文件名

    常用选项:

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

    chmod命令权限值的格式:

    1.用户表示符 +/-/= 权限字符

    • +:向权限范围增加权限代号所代表的权限
    • -:向权限范围取消权限代号所代表的权限
    • =:向权限范围赋予权限代号所代表的权限
    • 用户符合
    • u:拥有者
    • g:所属者
    • o:其他用户
    • a:所有用户

    2.三位8进制的数字

    就以test.c文件为例子,看看权限的现象。

    这里基本就能明确,u(user)、g(group)、o(other)通过+\\-来设置权限。

    权限的更改

    权限属性的更改

    权限属性的更改方式有俩种:以用户表示符 +/-/= 权限字符设置,另一种是以八进制形式设置。

    下面简单演示一下俩种形式的设置。

    第一种:

    u+w:代表拥有者+可写权限

    第二种:

    如果说1代表权限允许,0代表权限不允许,那么在拥有者的权限设置为111就是全都允许,把111设置成8进制就是7。

    那么776就是111 110 110.

    权限拥有者的更改

    chown指令

    功能:修改文件的拥有者

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

    chgrp指令

    功能:修改文件或目录的所属组

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

    常用选项:-R 递归修改文件或目录的所属组

    将拥有者设置成abai 

    将所属者设置成abai 

    将拥有者和所属者设置成dabai

    【注意】必须切换到root账号才能进行设置。在进行认证的时候,只能选择其中一个角色进行权限判定(类似于if\\else)

    其他问题

    问题一:起始权限

    子问题一:为什么我们创建文件的默认权限是我们看到的固定样式?

    子问题二:为什么普通文件的八进制是664

    子问题三:为什么目录文件的八进制是775

    操作系统默认给普通文件的起始权限其实是666,给目录的起始权限是777.

    指令umask

    功能:查看或者修改文件掩码

    格式:umask权限值

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

    umask时权限掩码:凡是在umask中出现的权限不会在最终的文件权限中出现。

    虽然新建文件夹默认权限是0666,新建目录默认文件权限是0777,但是实际上所创建的文件和目录,看到的权限往往不是上面的这个值。原因就是创建文件或目录的时候,还要受到umask的影响。假设默认权限是mask,则实际创建处理的文件权限是:mask & (~umask)

  • 问题二:目录权限

    • -r:读权限不会影响进入目录,但是不允许查看文件下面的内容
    • -w:写权限不允许在目录传教,更改,“删除”
    • -x:是否允许用户进入对应目录

    问题三:共享目录

  • 普通用户自己的家目录权限是700,也就是说我在我们家目录下面创建的文件别人是看不到的。
  • 有时候,我们多个用户想进行文件数据之间的共享,我们所建立的共享文件,不能在任何一个人的家目录下面。
  • 一个文件能否被删除,并不由文件本身决定,由这个文件所处的目录决定。
  • 如果我们去掉了共享目录的权限,我们也同时无法创建文件了,共享目录的价值就无法体现。
  • 粘滞位
  • 粘滞位:给目录设置,一般是共享文件,大家可以进行在目录中进行各自文件的增删改查

    【注意】只允许文件的拥有者/root删除此文件,其他人不允许;t是特殊的x权限。

    赞(0)
    未经允许不得转载:171主机测评 » 【Linux】Linux权限
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址