目录

5.1 权限讲解

5.1.1 什么是权限

​ Linux是多用户,多任务的,当多个用户一起使用Linux服务器时,它们对机器上的文件操作,权限都是怎么样的,所有文件都是可以读取、写入、修改、执行的吗?在Linux系统中,一切皆文件,所以得进行一些权限管理。

5.1.2 为什么要管理权限
  1. 保护服务器数据、文件、进程等
  2. 不要莫名其妙的背黑锅,权限限制(你作为运维,要限制其他用户的权限,不要伤害你的机器,否则就背黑锅)
  3. 针对不同部门,不同员工的工作职责,分工不同,权限应该做好限制
  4. 针对来自外来的恶意攻击进行防御
5.1.3 权限的分类
权限针对文件 File 权限针对目录 Directory
读r,read 表示可以查看文件内容 表示可以(ls)查看目录中存在的文件名称
写w,write 表示可以更改文件的内容:vim修改,保存退出 表示是否可以删除目录中的子文件或者新建子目录(rm/touch/mkdir)
执行x,executable 表示是否可以执行文件,一般指二进制文件,或者脚本文件 表示是否可以进入目录中(cd)
5.1.4 Linux的文件属于谁?

​ d r-- r-- r-- 2 root root 6 Jan 13 18:25 kylin

​ - rw-- rw-- r-- 1 root root 6.1M Jan 13 18:34 kylin

文件类型 属主 属组 其他人权限 文件连接数 属主 属组 文件大小 文件最后修改时间 文件名

  • Linux中的每一个文件,都有自己的主人,并且有权限限制,限制主人的读、写、执行权限
  • 限制其他人的读、写、执行权限
  • 限制组内的读、写、执行权限

Linux文件的三个角色

user:属主

group:属组

other:其他人

[!CAUTION]

特例,root,即使文件查看到的权限是空,root仍然可以做任何事情,权限控制是针对普通用户而言的

5.1.5 文件属主、属组、其他用户
  • 属主:表示文件的创建者,拥有者,也可以理解为,某个用户对这个文件拥有的权限

一个文件只能有一个主人,一部手机只能有一个主人

你可以对你的手机做任何的事情,其他人你可以禁止 他碰你手机

你可以对你的Linux文件进行读、写、执行,也可以禁止别人对你的文件做任何操作

  • 属组:文件所属的用户组,拥有者,可以理解为某一组的用户,对这个文件的权限

user:属主是任鹏宇,权限是允许读、写、执行

group:属组是运维组,权限是读、写、不可执行

  • 其他用户:表示跟该文件一点关系没有的人,既不是创建者,也不是属组者

其他用户通常为除了该文件的属主属组的其他用户,该用户与该文件没有任何关系,通常修改权限主要是修改其他用户权限

5.1.6 所属者的表达方式

文件的所属角色有user、group、other,如何使用Linux命令去查看,设置,文件的所属角色

  • u属组:

用u表示文件的属主,u是个缩写,全称为the user who owns it(拥有它的用户)是谁

默认是文件的创建者,就是文件的属主

  • g属组:

g用来表示文件属组,默认是创建该文件的用户

  • o其他人:

用o表示,既不是文件的创建者,也不是文件属组里的用户,那么就是其他人的角色

  • all角色:

在后续使用Linux命令,修改文件权限时,除了会用到u、g、o,还会使用all(缩写a),表示一次性对三个角色设置权限

  • root用户:

Linux中的root用户是特殊用户,是系统的超级管理员,有最大权限,可以任意修改Linux文件,因此权力越大,责任越大。

5.1.7 文件没有权限进行修改的三种方式
  • 第一种方式:更换文件的主人

在不修改文件权限的情况下,可以更换属主,相当于将文件卖给了另一个人

  • 第二种方式:更换文件的属组

在不修改文件权限以及属组的情况下,如果该文件属组有读写执行的权限,那么加入该组也可以拥有该权限

  • 第三种方式:更换文件权限

不修改属主属组则需要修改文件的权限来对文件进行操作

5.1.8 文件权限查看的两种方式
  • 第一种方式:使用 ll 命令查看

    [root@kylin-ren-class ren]# ll
    总用量 68
    -rw-r--r-- 1 root root 40 1月 7 20:17 第三行内容.txt
  • 第二种方式:使用 stat 命令查看

    [root@kylin-ren-class ren]# stat /ren
    文件:“/ren”
    大小:266 块:0 IO 块:4096 目录
    设备:fd00h/64768d Inode:34158027 硬链接:2
    权限:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root)
5.1.9 提供授权的三种方法
  • 第一种方法:更改属主,言简意赅就是更换主人,你就拥有了和创建主人一样的文件权限

    # 递归操作文件目录
    chown -R [新属主].[] 文件名
  • 第二种方法:更改属组,简而言之就是加入文件的小组,小组成员都有对该文件相应的权限

    # 使用chown,注意只能超级用户使用,使用sudo提权也可以
    chown -R [].[新属组] 文件名 # 使用chgrp,只能改属组,普通用户可以使用,但是必须该用户是该组的一员
    chgrp -v [新组] 文件名 # -v是显示更改过程
  • 第三种方法:更改文件权限,将文件的其他用户的权限进行相应修改即可

    # 使用 ugo 的方式进行修改
    u 表示属主
    g 表示属组
    o 表示普通用户
  • 语法结构:
    chmod ugo+w file #全部成员都加入写的权限
    chmod uo+x file #属主和普通用户加入执行的权限
    chmod a+x file #a表示所有,所有用户都加入执行权限
    chmod u=rx file #先清空后赋值
  • # 使用数字的方式进行授权
    读:4
    写:2
    执行:1
    文件权限哪个亮加哪个
  • 语法结构:chmod [数字][数字][数字] 文件

案例229. 授权属主为 rwx权限

[root@kylin-ren-class ren]# chmod u+wrx 你好.txt
[renpengyu@kylin-ren-class ren]$ ll
总用量 8
-rwxrwxrwx 1 root root 0 1月 9 21:10 你好.txt

案例230. 授权属主位 r-- 权限

[root@kylin-ren-class ren]# chmod u-wx 你好.txt
[renpengyu@kylin-ren-class ren]$ ll
总用量 8
-r--rwxrwx 1 root root 0 1月 9 21:10 你好.txt

案例231. 先清空权限,再给属主授 rw- 权限

# 先清空是指先清空u的权限,然后给权限,不是ugo全部清空,注意注意!!!
[root@kylin-ren-class ren]# chmod u=r-- 你好.txt
[renpengyu@kylin-ren-class ren]$ ll
总用量 8
-r-------- 1 root root 0 1月 9 21:10 你好.txt

案例232. 使用ugo方式授权文件的权限为u为rw,g为空,o为空

[root@kylin-ren-class ren]# chmod u=rw,g=,o= 你好.txt
[root@kylin-ren-class ren]# ll
总用量 8
-rw------- 1 root root 0 1月 9 21:10 你好.txt

案例233. 使用数字进行授权rw-r--r--的权限

[root@kylin-ren-class ren]# chmod 644 你好.txt
[root@kylin-ren-class ren]# ll
总用量 8
-rw-r--r-- 1 root root 0 1月 9 21:10 你好.txt

[!WARNING]

在Linux系统中默认目录只能给到最大权限755

在Linux系统中默认文件只能给到的最大权限为644

[!CAUTION]

r、w、x单个出现对于目录来说什么作用没有

r-x 决定用户能否进入目录,查看下面的文件

rwx决定用户是否可以删除、创建、改名的动作

5.2.0 案例说明
1.[oldboy@lzy oldboy]$ cat /etc/shadow    cat: /etc/shadow: Permission denied
## 用户本身没有权限,普通用户不能进入,加入x权限才行,得加入rx权限才可以 2.[oldboy@lzy oldboy]$ echo '#' >> /etc/passwd -bash: /etc/passwd: Permission denied
## 文件对于该用户没有写的权限,所以得授权用户对/etc目录授权写的权限,还有进入查看rx的权限 3.[oldboy@lzy oldboy]$ touch / etc/passwd.txt touch: cannot touch ‘/etc/passwd.txt’:Permission denied
## 用户本身没有权限,普通用户不能进入,加入x权限才行,touch是创建的动作得有rwx才能,所以需要给7的权限 4.[oldboy@lzy oldboy]$ rm -rf /etc/shadow rm: cannot remove ‘/etc/shadow’: Permission denied
## 删除需要rwx权限,还有就是/etc/默认没有对普通用户进行写的权限 5.[oldboy@lzy oldboy]$ ls /root/ ls: cannot open directory /root/: Permission denied
## 没有rx的权限,进入目录需要x的权限,查看目录下的内容需要r的权限,还有就是root目录是root的家目录,本身没有对普通用户进行开放

5.2 特殊权限(Suid、Sgid、Sicky)

5.2.1 什么是特殊权限

​ Linux系统的9位基本权限 rwx rwx rwx,但是有时候会发现系统一些关键的文件,存在一些没见过的权限字符。

比如:这个文件允许用户自己去修改自己的密码
/usr/bin/passwd [root@CentOS7-01 /]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27856 Apr 1 2020 /usr/bin/passwd

所以除了基本的权限还有三位特殊权限,一共是12位权限

suid(setuid)
sgid(setgid)
sbit(sticky)

特殊权限对照变

类别 suid sgid sicky
字符表示 S S T
出现位置 用户权限位x 用户组权限位x 其他用户权限位x
基本权限位有x s s t
数字表示法 4 (4777) 2 1
八进制表示法 4000 2000 1000
生效对象 用户位 用户组 其他用户

[!CAUTION]

1.suid:如果用户权限位是 rwx ---> rws 否则是 rwx- ---> rwS

2.sgid和sicky与suid同理,都是最后一位x位置上发生变化

5.2.1 Suid基础原理
  1. suid通过s字符标识,存在于用户权限位的x的权限对应位置
  2. 如果某文件,用户权限位本身就有x权限,给该文件设置suid权限时,则以小写s标识,否则就是大写的s字符
  3. 给文件设置s权限对应的数字表示法是4,八进制数下可以用4000
  4. suid同样也用chmod设置权限可以用字符法、数字法两种标识
5.2.2 自定义文件设置Suid
[root@kylin-ren-class ren]# chmod u+s 你好.txt
[root@kylin-ren-class ren]# ll
总用量 8
-rwSr--r-- 1 root root 0 1月 9 21:10 你好.txt
5.2.3 Suid的作用
  • SUID特殊权限仅适用于可执行文件,例如二进制文件、/usr/bin下目录下的命令文件/usr/bin/ls
  • 只要用户对没有SUID的文件有执行权限,那么当用户执行此文件时,会以文件属主的身份去执行此文件
  • 一旦文件执行结束,身份的切换也随之小时
  • 简而言之就是让普通用户,执行命令时,临时获得root的权限

解释关于Linux的用户创建:

  1. 用户创建完用户之后,需要修改密码,执行passwd命名
  2. 但是passwd命令需要读取,修改/etc/passwd、/etc/shadow文件,这些文件都是属于root
  3. 如何可以让普通用户使用passwd修改自己的密码,则可以让普通用户临时获得root的身份进行密码文件的更改
  4. 该原因就是设置suid的一个根本原因,且suid特殊权限,只能用在二进制可执行文件上
5.2.4 Sgid基础原理
  1. 对于二进制命令来说,Sgid的功能和Suid基本一样,只不过是一个设置文件属主的权限,一个是设置属组的权限,和9位基本权限rwx概念一样
  2. Suid是获得文件属主的权限,Sgid是获得文件属组的权限
  3. Sgid主要用于文件夹,为某个目录设置Sgid之后,在该目录中的创建的文件,都以(目录的属组)权限位准,而不属于创建该文件的用户权限,这就是实现了多个用户可以共享一个目录的作用

简单总结:

  1. 一个普通的文件夹,普通用户ren进入之后,创建文件,user,group都属于ren;gaioge进入之后创建文件,user,group都属于giaoge
  2. 当一个文件夹设置了Sgid,普通用户ren进入之后,创建文件,user属于ren,group属于文件夹的属组;giaoge进入后,创建文件,user属于giaoge,group属于文件夹的属组

红帽案例234. 将sgid和红帽认证考题结合练习

1.创建一个共享目录/home/admins
mkdir /home/admins
2.要求该目录属组是adminuser,adminuser组内成员对该目录的权限是可读可写可执行
groupadd adminuser
chgrp adminuser /home/admins
chmod g=rwx /home/admins
3.其他用户均无任何权限(root特例)
chmod 0='' /home/admins
4.进入/home/admins创建的文件,自动继承adminuser组的权限
chmod g+s /home/admins [root@kylin-ren-class /]# ll /home/admins/
总用量 0
drwxr-sr-x 2 root adminuser 6 1月 11 15:37 我是文件夹
-rw-r--r-- 1 root adminuser 0 1月 11 15:37 我是文件.txt
[root@kylin-ren-class /]# touch /home/admins/我是文件夹/我继承了属性.log
[root@kylin-ren-class /]# ll /home/admins/我是文件夹/我继承了属性.log
-rw-r--r-- 1 root adminuser 0 1月 11 16:03 /home/admins/我是文件夹/我继承了属性.log
5.2.5 Sbit粘滞位基础原理
  1. 在一个权限是777的文件夹下,所有用户可以进行rwx的操作,也就意味着可以随便删除其他人的资料!这很危险,所以产生出一个粘滞位来防止这个问题的发生
  2. 简而言之就是,当目录有了粘滞位特殊权限,则个目录除了root用户特殊以外,任何用户都只能删除,移动自己的创建的文件,而不能影响到其他人
  3. 其中在Linux中/tmp临时目录就是使用的是粘滞位

案例235. 没有粘滞位,且目录的权限是777时,进行操作,然后在使用粘滞位来操作看看使用其他用户有权限进行操作

[renpengyu@kylin-ren-class tmp]$ touch 我是任鹏宇.txt

[pengyu@kylin-ren-class tmp]$ echo 我是鹏宇 > 我是任鹏宇.txt
-bash: 我是任鹏宇.txt: 权限不够
[pengyu@kylin-ren-class tmp]$ rm -f 我是任鹏宇.txt
rm: 无法删除 '我是任鹏宇.txt': 不允许的操作

Linux权限与特殊权限的更多相关文章

  1. Linux(三)__文件权限、系统的查找、文本编辑器

    一.文件权限 1.理解文件权限及其分配 2.掌握查看文件和目录的权限 3.掌握权限文字表示法和数值表示法 4.学会使用chmod命令设置权限 5.学会使用chown命令修改属主和组 linux文件能不 ...

  2. Linux文件和目录权限详细讲解

    转载请标明出处: http://www.cnblogs.com/why168888/p/5965180.html 本文出自:[Edwin博客园] Linux文件和目录权限解读 如何设置Linxu文件和 ...

  3. linux系统下的权限知识梳理

    下面对linux系统下的有关权限操作命令进行了梳理总结,并配合简单实例进行说明.linux中除了常见的读(r).写(w).执行(x)权限以外,还有其他的一些特殊或隐藏权限,熟练掌握这些权限知识的使用, ...

  4. linux 中更改用户权限和用户组的命令chmod,chgrp实例

    linux 中更改用户权限和用户组的命令实例; 增加权限给当前用户 chmod +wx filename chmod -R 777 /upload 用户组 chgrp -R foldname zdz ...

  5. Linux文件及目录权限解析

    Linux系统9位基础权限体系 文件权限   * r权限 可读          对文件具有读取及查看文件内容的全新啊   * w权限 可写        对文件具有新增.修改文件内容的权限     ...

  6. Linux命令:修改文件权限命令chmod、chgrp、chown详解

    Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权 限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而 ...

  7. Linux用户配置sudo权限

    Linux用户配置sudo权限 创建sudo权限用户 #useradd supope #passwd supope #visudo #supope         ALL=(ALL)       AL ...

  8. Linux sticky bit 目录权限 rwt权限

    [linux权限分为 user group others三组] 今天看到有个目录的权限是rwxrwxrwt 很惊讶这个t是什么,怎么不是x或者-呢?搜了下发现: 这个t代表是所谓的sticky bit ...

  9. 【Linux】文件特殊权限 SUID/SGID/Sticky Bit

    linux中除了常见的读(r).写(w).执行(x)权限以外,还有3个特殊的权限,分别是setuid.setgid和stick bit 1.setuid.setgid 先看个实例,查看你的/usr/b ...

  10. linux中执行命令权限不够怎样处理

    在linux中执行命令权限不够就要增加权限,先看遇到的情况 查看权限情况 那就赋予权限 执行命令

随机推荐

  1. 《AutoCAD2020中文版基础教程》和《从零开始—AutoCAD 2020中文版基础教程》配套资源下载

    <AutoCAD2020中文版基础教程>作者:姜春峰//武小紅//魏春雪中国青年出版社配套资源链接:https://pan.baidu.com/s/1kPGNKZEw2kOTGqZyXjp ...

  2. 开源轻量级IM框架MobileIMSDK的鸿蒙NEXT客户端库已发布

    一.基本介绍 MobileIMSDK-鸿蒙端是一套基于鸿蒙Next(纯血鸿蒙)系统的IM即时通讯客户端库: 1)超轻量级(编译后库文件仅50KB).无任何第3方库依赖(开箱即用): 2)纯ArkTS编 ...

  3. 即时通讯技术文集(第30期):IM开发综合技术合集(Part3) [共16篇]

    为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第30 期. ​[- 1 -] 全面掌握移动端主流图片格式的特点.性能.调优等 [链接] htt ...

  4. 《计算机体系结构与SoC设计》(一)

    1. 天机芯片 "天机"芯片,全称为"天机芯"(Tianjic),是由清华大学施路平团队研发的一款类脑计算芯片.这款芯片在2019年登上了世界顶级学术杂志< ...

  5. ABC 384(A~F)

    期末周的第二把网瘾,vp了一把abc.这把打得还是比较舒服的,做出了A~E.但最后两道题还是出得太慢了(一道思路太慢,一道调试太慢).什么时候能够在赛时做出F题呢qwq... ABC 这场abc的AB ...

  6. C# 给当前程序创建桌面快捷方式

    C# 给当前程序创建桌面快捷方式 //by wgscd //date 2024-10-22 using System; using System.Reflection; using System.IO ...

  7. c# set Webbowser version with WPF/Winform app

    <Window x:Class="TestWPF.MainWindow" xmlns="http://schemas.microsoft.com/winfx/200 ...

  8. PMP视频总结

    https://edu.51cto.com/center/wejob/user/course?train_id=955 重要链接:①[PC端学习平台]:https://edu.51cto.com/ce ...

  9. Spring源码分析基本介绍

    Spring源码分析(一)基本介绍   摘要:本文结合<Spring源码深度解析>来分析Spring 5.0.6版本的源代码.若有描述错误之处,欢迎指正. 前言 作为一名开发人员,阅读源码 ...

  10. 项目PMP之十二项目采购管理

    项目PMP之十二--项目采购管理   一.定义:存在法律义务,需要对采购过程了解,非法律专家,合同约束 项目经理无权签署对组织有约束力的法律文件 采购模式: 分散式采购:无采购管理部门,项目经理有采购 ...