Linux权限与特殊权限
5.1 权限讲解
5.1.1 什么是权限
Linux是多用户,多任务的,当多个用户一起使用Linux服务器时,它们对机器上的文件操作,权限都是怎么样的,所有文件都是可以读取、写入、修改、执行的吗?在Linux系统中,一切皆文件,所以得进行一些权限管理。
5.1.2 为什么要管理权限
- 保护服务器数据、文件、进程等
- 不要莫名其妙的背黑锅,权限限制(你作为运维,要限制其他用户的权限,不要伤害你的机器,否则就背黑锅)
- 针对不同部门,不同员工的工作职责,分工不同,权限应该做好限制
- 针对来自外来的恶意攻击进行防御
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基础原理
- suid通过s字符标识,存在于用户权限位的x的权限对应位置
- 如果某文件,用户权限位本身就有x权限,给该文件设置suid权限时,则以小写s标识,否则就是大写的s字符
- 给文件设置s权限对应的数字表示法是4,八进制数下可以用4000
- 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的用户创建:
- 用户创建完用户之后,需要修改密码,执行passwd命名
- 但是passwd命令需要读取,修改/etc/passwd、/etc/shadow文件,这些文件都是属于root
- 如何可以让普通用户使用passwd修改自己的密码,则可以让普通用户临时获得root的身份进行密码文件的更改
- 该原因就是设置suid的一个根本原因,且suid特殊权限,只能用在二进制可执行文件上
5.2.4 Sgid基础原理
- 对于二进制命令来说,Sgid的功能和Suid基本一样,只不过是一个设置文件属主的权限,一个是设置属组的权限,和9位基本权限rwx概念一样
- Suid是获得文件属主的权限,Sgid是获得文件属组的权限
- Sgid主要用于文件夹,为某个目录设置Sgid之后,在该目录中的创建的文件,都以(目录的属组)权限位准,而不属于创建该文件的用户权限,这就是实现了多个用户可以共享一个目录的作用
简单总结:
- 一个普通的文件夹,普通用户ren进入之后,创建文件,user,group都属于ren;gaioge进入之后创建文件,user,group都属于giaoge
- 当一个文件夹设置了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粘滞位基础原理
- 在一个权限是777的文件夹下,所有用户可以进行rwx的操作,也就意味着可以随便删除其他人的资料!这很危险,所以产生出一个粘滞位来防止这个问题的发生
- 简而言之就是,当目录有了粘滞位特殊权限,则个目录除了root用户特殊以外,任何用户都只能删除,移动自己的创建的文件,而不能影响到其他人
- 其中在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权限与特殊权限的更多相关文章
- Linux(三)__文件权限、系统的查找、文本编辑器
一.文件权限 1.理解文件权限及其分配 2.掌握查看文件和目录的权限 3.掌握权限文字表示法和数值表示法 4.学会使用chmod命令设置权限 5.学会使用chown命令修改属主和组 linux文件能不 ...
- Linux文件和目录权限详细讲解
转载请标明出处: http://www.cnblogs.com/why168888/p/5965180.html 本文出自:[Edwin博客园] Linux文件和目录权限解读 如何设置Linxu文件和 ...
- linux系统下的权限知识梳理
下面对linux系统下的有关权限操作命令进行了梳理总结,并配合简单实例进行说明.linux中除了常见的读(r).写(w).执行(x)权限以外,还有其他的一些特殊或隐藏权限,熟练掌握这些权限知识的使用, ...
- linux 中更改用户权限和用户组的命令chmod,chgrp实例
linux 中更改用户权限和用户组的命令实例; 增加权限给当前用户 chmod +wx filename chmod -R 777 /upload 用户组 chgrp -R foldname zdz ...
- Linux文件及目录权限解析
Linux系统9位基础权限体系 文件权限 * r权限 可读 对文件具有读取及查看文件内容的全新啊 * w权限 可写 对文件具有新增.修改文件内容的权限 ...
- Linux命令:修改文件权限命令chmod、chgrp、chown详解
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权 限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而 ...
- Linux用户配置sudo权限
Linux用户配置sudo权限 创建sudo权限用户 #useradd supope #passwd supope #visudo #supope ALL=(ALL) AL ...
- Linux sticky bit 目录权限 rwt权限
[linux权限分为 user group others三组] 今天看到有个目录的权限是rwxrwxrwt 很惊讶这个t是什么,怎么不是x或者-呢?搜了下发现: 这个t代表是所谓的sticky bit ...
- 【Linux】文件特殊权限 SUID/SGID/Sticky Bit
linux中除了常见的读(r).写(w).执行(x)权限以外,还有3个特殊的权限,分别是setuid.setgid和stick bit 1.setuid.setgid 先看个实例,查看你的/usr/b ...
- linux中执行命令权限不够怎样处理
在linux中执行命令权限不够就要增加权限,先看遇到的情况 查看权限情况 那就赋予权限 执行命令
随机推荐
- 《AutoCAD2020中文版基础教程》和《从零开始—AutoCAD 2020中文版基础教程》配套资源下载
<AutoCAD2020中文版基础教程>作者:姜春峰//武小紅//魏春雪中国青年出版社配套资源链接:https://pan.baidu.com/s/1kPGNKZEw2kOTGqZyXjp ...
- 开源轻量级IM框架MobileIMSDK的鸿蒙NEXT客户端库已发布
一.基本介绍 MobileIMSDK-鸿蒙端是一套基于鸿蒙Next(纯血鸿蒙)系统的IM即时通讯客户端库: 1)超轻量级(编译后库文件仅50KB).无任何第3方库依赖(开箱即用): 2)纯ArkTS编 ...
- 即时通讯技术文集(第30期):IM开发综合技术合集(Part3) [共16篇]
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第30 期. [- 1 -] 全面掌握移动端主流图片格式的特点.性能.调优等 [链接] htt ...
- 《计算机体系结构与SoC设计》(一)
1. 天机芯片 "天机"芯片,全称为"天机芯"(Tianjic),是由清华大学施路平团队研发的一款类脑计算芯片.这款芯片在2019年登上了世界顶级学术杂志< ...
- ABC 384(A~F)
期末周的第二把网瘾,vp了一把abc.这把打得还是比较舒服的,做出了A~E.但最后两道题还是出得太慢了(一道思路太慢,一道调试太慢).什么时候能够在赛时做出F题呢qwq... ABC 这场abc的AB ...
- C# 给当前程序创建桌面快捷方式
C# 给当前程序创建桌面快捷方式 //by wgscd //date 2024-10-22 using System; using System.Reflection; using System.IO ...
- c# set Webbowser version with WPF/Winform app
<Window x:Class="TestWPF.MainWindow" xmlns="http://schemas.microsoft.com/winfx/200 ...
- PMP视频总结
https://edu.51cto.com/center/wejob/user/course?train_id=955 重要链接:①[PC端学习平台]:https://edu.51cto.com/ce ...
- Spring源码分析基本介绍
Spring源码分析(一)基本介绍 摘要:本文结合<Spring源码深度解析>来分析Spring 5.0.6版本的源代码.若有描述错误之处,欢迎指正. 前言 作为一名开发人员,阅读源码 ...
- 项目PMP之十二项目采购管理
项目PMP之十二--项目采购管理 一.定义:存在法律义务,需要对采购过程了解,非法律专家,合同约束 项目经理无权签署对组织有约束力的法律文件 采购模式: 分散式采购:无采购管理部门,项目经理有采购 ...