Linux | 权限概念

目录

用户

用户概念

用户分类

切换用户su

文件权限

访问文件的身份分类

文件类型与文件访问权限

文件权限管理

常见权限问题

umask权限掩码

目录的权限

 粘滞位


用户

用户概念

   因为Linux是一个多用户操作系统,所以Linux下可以同时存在多个用户。而超级用户root只有一个,root具有Linux最高权限,一般不受到权限约束;普通用户可以有多个,要受到权限的约束。Linux下的用户表示着权限大小。

用户分类

   在Linux中用户可以分为两类:一类是超级用户,另一类是普通用户。

  • 超级用户:超级用户root的权限很大,可以在Linux系统下做任何事情,不受权限的约束。
  • 普通用户:普通用户的权限不是很大,所以在Linux下只能做有限的事情,受到一定的约束。

   超级用户的命令提示符是 “ # ” ,普通用户的命令提示符是 “ $ ” :

切换用户su

   su指令的功能是进行用户切换。切换用户本质就是切换权限。

普通用户切换超级用户root:

1,su -(会退出当前的路径,进入root的工作路径)

2,su root 或者直接su指令(只是单纯切换为root超级用户,不会改变当前所在的路径)超级用户root切换普通用户

1,su 普通用户名(超级用户root切换为普通用户无需输入普通用户的密码,直接切换;只是单纯切换为普通用户,不会改变当前所在的路径)

2,Ctrl+d(退出超级用户root,进入最后一次所在的普通用户;会退出当前所在的路径,进入普通用户上次所在的路径)

普通用户切换为普通用户:

su 普通用户名(需要相应普通用户的密码,切换用户不会改变当前所在的路径)


文件权限

访问文件的身份分类

   访问文件的身份有三类分别是:拥有者(owner),所属组(group),其他(other)。那么我们该如何查看这三类身份对一个文件访问的权限呢?

文件类型与文件访问权限

   如上图可知,通过 ls -l 来查看所在目录下的文件或者文件夹的其他属性。在最前面的一串字符中, 第一列表示文件的类型,其中 d 表示目录,- 表示普通文件,p 表示管道文件,b 表示块设备,c 表示字符设备,l 表示链接文件...所以我们可以得出结论:在Linux下,操作系统不以文件后缀来区分文件类型,而是以上面一串字符中第一列出现的字符不同来区分文件类型。

   而后面九列三三为一组,第一组表示拥有者的访问权限,第二组表示所属组的访问权限,第三组表示other的访问权限。

   每一组的第一列表示是否有读的权限,如果该列为 r 表示该身份可以读该文件,如果为 - 表示该身份不可读该文件。

   每一组的第二列表示是否有写的权限,如果该列为 w 表示该身份可以写该文件,如果为 - 表示该身份不可写该文件。

   每一组的第三列表示是否有执行的权限,如果该列为 x 表示该身份可以执行该文件,如果为 - 表示该身份不可执行该文件。

   那么我们该如何看文件这三类身份分别是谁呢,也就是怎么看拥有者(owner,文件属于谁),所属组(group,文件属于哪一个组)其他(other,都不属于前两个身份的用户)都是哪些用户呢?

   如上图所示,红框第一列的就是说明拥有者是哪一个用户,而第二列的就是说明所属组是有哪一个用户;所以yx即是拥有者也是所属组,对于该文件其他用户就是other。需要说明的是:当拥有者与所属组是同一个用户时,文件权限只看其用户的拥有者身份权限,其用户的所属组身份权限不看。 

文件权限管理

   改文件对应身份的权限(更改文件对应身份的权限需要拥有者身份或者root用户的权限修改):

1,修改文件拥有者身份的权限,u表示拥有者(chmod  u+-rwx  文件名/目录名)

2,修改文件所属组身份的权限,g表示所属组(chmod  g+-rwx  文件名/目录名)

3,修改文件other身份的权限,o表示other(chmod  o+-rwx  文件名/目录名)

4,修改文件三类身份的权限,a表示所有身份(chmod  a+-rwx  文件名/目录名)

 最后还有一种通过八进制数值进行修改文件身份权限:

   改文件对应身份的用户(前提是更改拥有者或者所属组需要提升权限,在root用户下或者sudo更改):

1,修改拥有者(chown  用户名  文件名/目录名)-R 递归修改文件或目录的拥有者

将file.txt的拥有者从root改为yx

2,修改所属组(chgrp  用户名  文件名/目录名)-R 递归修改文件或目录的所属组

将file.txt的所属组从root改为yx

最后解释一下权限的概念:人的能力与事物的属性决定着权限,如下面的话就可以反应人的能力与事物的属性决定着权限 1,非VIP用户能不能看VIP电影  2,人能不能用面包在面包上看电影。


常见权限问题

umask权限掩码

在Linux中目录的起始权限是777,而普通文件的起始权限是666。但因为umask权限掩码的限制:凡是在umask中出现的权限,都不应该出现在最终权限中。(将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002)所以最终权限=起始权限&(~umask掩码)。umask掩码可以修改(umask  xxxx)。

目录的权限

可执行权限: 如果目录没有可执行权限, 则无法cd到目录中

可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容

可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件
总结:

  • Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录下的文件或者子目录信息的权限
  • Write对文件而言,具有修改文件内容的权限;对目录来说具有删除创建移动目录内文件或者目录的权限
  • Execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  • “ — ” 表示不具有该项权限

1,目录的可执行权限是表示你可否在目录下执行命令,如果目录没有 x 权限,则无法对目录执行任何命令,甚至无法cd进入到目录中, 即使用户仍然对目录有 r 读权限也无法进入到目录中。
2,如果目录具有 x 权限,但没有 r 权限,则用户可以执行命令,可以cd进入到目录中。但由于没有目录的读权限所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文件与目录信息。

 粘滞位

   如果用户具有目录的写权限, 用户就可以删除目录中的文件, 而无论这个用户是否有这个文件的写,读,执行权限或者这个文件属于别人。

   所以有这样的要求:当多个用户共享一个目录时,需要在该目录下进行读写执行删除创建文件时,自己只能删除自己创建的文件,而不能删除别人创建的文件。为了解决这个问题, Linux引入了粘滞位的概念,而粘滞位只能给目录设置,一般是root用户设置的,谁设置谁取消。

   怎么设置呢?(chmod   +t  目录名)

当一个目录被设置为"粘滞位"时,则该目录下的文件只能由
一、超级管理员删除 二、该目录的所有者删除 三、该文件的所有者删除 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值