Linux权限(详解!!!)

目录

一、Linux权限的概念

二、Linux权限管理

1.文件访问者分类 

2.文件类型和访问权限

2.1文件类型

2.2基本权限

2.3文件权限值的表示方法

2.4文件访问权限的相关设置方法

1.chmod

2.chown

3.chgrp

4.umask

 三、目录权限

粘滞位


一、Linux权限的概念

用户权限:
Linux下有两种用户:超级用户(root)、普通用户。
1. 超级用户( root ):可以再 linux 系统下做 任何事情,不受限制
2. 普通用户(非root):在 linux 下做 有限 的事情。
超级用户的命令提示符是 “#” ,普通用户的命令提示符是 “$“
  1. 命令 su  【用户名】 表示切换用户

普通用户切换成root,需要输入root密码

root账户切换成普通用户不需要认证

普通用户切换成另一个普通用户需要对方密码 

二、Linux权限管理

1.文件访问者分类 

所有者:u---User

所属组: g ---Group
其它用户: o ---Others

2.文件类型和访问权限

所有者、所属组、其他用户只是单纯的角色,它其实并不能决定某个用户就一定对一个文件有某种权限
用户对文件的权限不仅取决于这个用户对于这个文件的角色,还取决于文件的属性,即文件赋予角色什么权限。结合两者才能得知一个用户对于一个文件的权限。

 示例:

文件访问权限:

2.1文件类型

Linux中文件类型有如下几种:

 -  :普通文件:文本,源代码,图片,视频,库,可执行等;
 d  :文件夹
 l  :软链接(类似 Windows 的快捷方式)
 b  :块设备文件(例如硬盘、光驱等)
 p  :管道文件
 c  :字符设备文件(例如屏幕等串口设备)
 s  :套接口文件
并且Linux的文件类型 不通过后缀区分,只看 第一个字符是什么!!!
但是这并不代表Linux不使用后缀!
虽然Linux不通过后缀识别文件类型,但是我们依旧推荐使用的原因:
1.工具需要
2.人需要

2.2基本权限

用户对一个文件的权限有三种:可读、可写、可执行

  1. 可读用 表示(read):
    有了可读权限,就可以读取文件的内容 ,对目录来说,具有浏览该目录信息的权限可写
  2.  表示(write):
    有了可写权限,就可以在文件中写入或删除内容,对目录来说具有删除移动目录内文件的权限
  3. 可执行用 表示(execute):                                                                                            有了可执行权限,就可以执行该文件,对目录来说,具有进入目录的权限
  4. 表示没有某个权限

其中对每个角色三种权限的描述分别为可读、可写、可执行这些顺序都是固定的。

2.3文件权限值的表示方法

Linux表示说明八进制二进制
r - -只读4100
- w -仅可写2010
- - x仅可执行1001

r w -

可读可写6110
- w x可写 可执行3011
r - x可读 可执行5101
r w x可读 可写 可执行7111
 - - -无权限0000

2.4文件访问权限的相关设置方法

1.chmod
功能: 设置文件的访问权限
格式: chmod [参数] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限
+ : 向权限范围增加权限代号所表示的权限
-  : 向权限范围取消权限代号所表示的权限
= : 向权限范围赋予权限代号所表示的权限
用户符号:  
u :拥有者
g :拥有者同组用
o :其它用户
a :所有用户

示例1:通过权限字符来设置文件访问权限

示例2:通过二进制来设置文件访问权限

这里的777表示 u 对应的 rwx :111  g对应的rwx :111   o对应的rwx :111

大家参考上面的表格来学习,这里就很容易明白!

2.chown
功能 :修改文件的拥有者
格式 chown [参数] 用户名 文件名
实例:
# chown user1 f1
# chown -R user1 filegroup1

示例:

这里需要注意一下:

普通用户指令 :sudo  chown  xxx    file.txt

root指令:hown  xxx    file.txt(root权限非常大!!!)

Linux 上权限是约束普通用户的,root 不会被约束。对于普通用户,被权限约束了什么都干不了,哪怕他是这个文件的拥有者。

对于 root,即使没有权限还是能畅通无阻

3.chgrp
功能 :修改文件或目录的所属组
格式 chgrp [参数] 用户组名 文件名
常用选项 -R 递归修改文件或目录的所属组
4.umask
功能
1.查看或修改文件掩码
2.新建文件默认权限=0666
3.新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 umask的影响。假设默认权限是 mask ,则实际创建的出来的文件权限是 :
mask & ~umask
格式 umask 权限值
说明 :将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为 0022,普通用 户默认为0002
root:
普通用户:
  
那为什么我们新建文件默认权限不是666而是 644,新建目录默认权限不是777而是755
(本篇博客默认掩码为0022)
本质是 mask (默认权限)& ~umask
如下图所示:只是让默认权限对应的umask值为1的位上的数变成 零,其他数不变!!!

 三、目录权限

对于目录:

  1. 可执行权限: 如果目录没有可执行权限, 则无法cd到目录中
  2. 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容
  3. 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件

那让我们来看一下吧!

首先权限全开的情况下:目前这个账号被other权限限制

o-r:可以查看文件目录,但是不能读

o-w:能查看目录详情,但是不能读写

o-x:不能查看目录详情

但是当klm目录对其他用户有写权限时,就可以直接删除这个目录中的文件,无论对其中的文件是否有写权限:

粘滞位

那么如何防止别人在共享空间删除我们的文件呢?

这时我们就可以引入粘滞位这个概念:chmod +t [文件名]

给共享目录中的other设置一个权限位,具有x的意义同时也进一步对目录权限进行特殊设定:该目录中的文件,只有root或者文件拥有者有权利进行删除!其他人一概不允许!!!

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

示例: 

本篇博客就到这里啦!!希望能帮到大家!有错误望指出,谢谢大家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值