【Linux】权限管理

目录

前言:

扩展 计算机结构-shell:

一、对人的权限:

1.Linux下的用户分级:

 2.权限中的人:

二、对文件的权限:

umask相关

三、对人和文件的权限进行操作:

1.修改文件属性:

2.修改权限人的属性:

粘滞位:


前言:

        hi~很荣幸你能够点进这篇文章,希望能够对你有所帮助!( • ̀ω•́ )✧

        本篇是小白整理学习了一些有关Linux权限管理相关的知识,认识面比较单一,还请多多包涵,也请指正,让我们一起共同进步!

扩展 计算机结构-shell:

        首先在了解权限的前面,我们需要明白权限的由来。

        我们知道计算机是一个工具,是辅助人去完成各项事宜的。但是计算机内部有很多硬件,不能全都交给人来管理,这样就起不到办正事和提高效率的问题。所以就有了操作系统。操作系统对下来控制好硬件之间的交互逻辑,对上服务好使用者,能够干事。但是,我们是直接操作操作系统的吗?

        答案并不是,如果是人直接操作的话还是会带来很多麻烦,所以无论是Linux还是Windows都是通过外壳程序(shell)来访问操作系统的。

"人"(‘人’不善于直接使用操作系统;如果让人直接访问操作系统,操作成本特别高,另外,人会犯错,会带来不安全因素)
shell 外壳程序(人 给外壳  外壳给操作系统)
操作系统(向下管理好软硬件,向上提供给用户良好的操作环境)
硬件驱动
硬件

计算机结构简图: 

         所以,我们用户不会直接访问操作系统,而是通过中介(无论是Linux的指令还是Windows的图形用户界面)

所以,外壳程序的意义:1.是用户和操作系统中间软件层    2.可以在一定程度,起到保护操作系统的作用。

一、对人的权限:

        首先,我们通过指令ls -l进行查看文件的详细信息时会发现有如下几列信息:

        这些就是显示文件的详细信息,蓝色就是对于文件和每个对象的权限,红色就是针对于对象(人)的权限。下面,我们来细说一下人的权限。

1.Linux下的用户分级:

首先说明一下Linux下的用户权限:

分为两种:root和普通用户。

        root也可以被称作超级管理员(任何权限在他面前均无效)

        普通用户需要受到权限的约束。

但是对于Linux来说,无论是root还是普通用户可以同时存在多个用户,多用户的操作系统。 

        那么,在Linux平台下如何做到用户之间的切换呢?(如果没有普通用户可在root权限下  useradd新建用户 passwd 用户名 修改密码)

切换普通用户:su 用户名 回车(如果设置的有密码,root权限下无需输入,其余用户需要输入)

切换超级管理员(root):su -或者空白 回车  (需要输入root的密码)

        root下切换其他用户:

        普通用户切换普通用户:

         普通用户切换root:

 2.权限中的人:

        在了解了root和普通用户后,就可以了解一下详细文件中的两个人名。

        

         第一个人名就是拥有者,第二个就是所属组,其余属于other

权限中的人:可以认为是一种角色,或者身份root或者普通用户均可
拥有者(owner):文件属于谁     (ll下人名的第一个名)

所属组(grp):文件属于哪一个组(第二个人名 可以自成一组)

other:不属于上面的任何一个 (不会记录,因为上面的记录了,只要不是就是other)

        那么,要如何理解所属组呢?

        就好比是一个小组合作做的一个文件,为了方便小组的人能够进行更加安全的访问,自然可以划分为一组更好的进行处理。

        那么,权限中的人究竟对文件有着什么样的权限呢?

二、对文件的权限:

        众所周知,对文件的操作就是读和写。进入文件夹也就是一个过程,属于可运行,所以,对文件操作的权限也就大抵如下:

r:可读(对于普通文件就是查看,文件夹是文件内信息可看)

w:可写(对于普通文件就是写入,文件夹就是创建文件和删除文件)

x:可运行(普通文件--执行运行,文件夹是进入)

        除此之外,我们可以发现是一共有10个字符并且也有-的符号。这也就表示了状态,有字符就是这个状态,否则就是-无此状态就是不可了。

        针对于后9个字符,分别对应权限中的人操作:

前三:owner拥有者  简 u

中三:grp所属组 简g

后三:other 简o

(简后面表示执行操作管理时的简称)

        那么,第一个字符代表什么意思呢?

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

        利用上面所知信息,就可以明白下面这两个文件的详细信息了:

拥有者        所属组        文件类型        拥有者权限        所属组权限        other权限        

lly                lly                d                        rwx                rwx                        r-x

lly                lly                -                        rw-                 rw-                        r--

        那么,现在就有一个问题,这些默认的权限是怎么初始化的呢?这就要和umask扯上关系了。

umask相关

         Linux创建文件均是有起始权限的。

        首先文件权限 rwx事实上是一个状态的描述,也就是说可以用0和1进行表达,所以Linux也就推出了可以使用二进制来表达其含义,而三个二进制数合在一起也就是一个八进制数,所以后面9位状态就可以使用3位八进制数来表达其含义。

        简而言之,上述画横向也就可以表达为:rwx - 111 - 7   所以 rwxrwxrwx == 777。三个7分别针对owner、grp、other。

Linux起始权限:

目录:777

普通文件:666

        但是实际是 775和664。为什么不同呢?因为有 umask权限掩码的存在。

umask权限掩码:即让文件权限不存在这个里面设置的权限。

指令:umask -查看当前用户设置的权限掩码(默认0002,只看002即可。第一个0暂时不看)

         因为是002 -- 即other里面不能出现w的操作。所以原本的777other的w就被取消,变成775。666中other的w被取消,变成664。

        那么,具体是给系统怎么去算的呢?

最终权限 = 起始权限 & (~umask)(权限掩码)

三、对人和文件的权限进行操作:

        上面讲解了详细文件信息的rwx和文件类型以及权限中的owner(拥有者)、grp(所属组)、other。现在来说一说如何修改这些权限,即对此进行操作。

1.修改文件属性:

        首先拥有者(root无视)修改文件属性:

1.命令:chmod 选项/八进制 文件名

2.选项:u(owner)、g(grp)、o(other)找到对应三个字符所属的人。

+增加权限 -去掉权限

3.或者利用二进制 直接对整体进行操作。使用三位八进制。777 == rwxrwxrwx 666 == rw-rw-rw-

2.修改权限人的属性:

        一般情况下,此能力只有root可以,普通用户如果想执行此功能,需要添加到信任列表,执行sudo才行(上帝之手)。

chown        修改拥有者

chgrp        修改所属组

        也可以进行一次性修改 chown 用户:用户 文件名

        了解完上述的修改权限后,那么如果有一个多人进行操作的文件夹(例子,根目录下的temp文件),为了防止别人私自删除你的文件(删除不属于此文件的权限,而是属于文件夹的权限-w),但是不能修改当前所在文件夹的w属性,该如何操作呢?

        答案是利用粘滞位

粘滞位:

        比如使用root创建一个共享文件(temp),将other权限修改成w,让其他用户可以执行新建和删除文件操作:

         然后进入test用户创建一个普通文件,lly用户也创建一个普通文件。

         此时lly用户只能读该用户此文件的信息,不能修改,否则会报出W10: Warning: Changing a readonly file  的错误。

        但是能否删除此test呢?

         答案是当然。lly用户删除了test用户的文件,因为此删除的权限是所在root创建的文件夹赋予的w。但是一旦禁用w就都没法删除和创建了。

chmod +t 共享文件名  ---  root或者共享文件夹拥有者(一般是root)执行操作。这样就既可以创建自己删除自己的文件,也可以无法删除别人的文件了。

注意:此t只能给目录文件设置。
一般是谁设置,谁才能取消。(root除外)
只能给other设置。

         当root执行操作后,other的最后一个t也就会变成t。

        此时test用户删除lly的文件能否可以呢?

         显然,结果是:Operation not permitted不允许操作哦~

        这也就是粘滞位的作用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值