当前位置: 首页 > news >正文

Linux 权限及管理

目录

一、Linux权限

1、概念

2、超级用户和普通用户的相关操作

a. 添加用户,删除用户

b. 超级用户和普通用户的切换 

c. sduo提权以及白名单设置 

二、Linux权限管理 

1、文件访问者的分类

2、文件访问类型和权限

a. 文件类型

b. 基本权限

3、文件权限值得表示方法

a. 字符表示方法

b. 8进制数值表示方法

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

 a. chmod  ---设置文件的访问权限

b. chown  ---修改文件拥有者

c. chgrp  ---修改文件或目录的所属组

d. umask ---查看或修改文件掩码

5、目录的权限 

6、粘滞位

三、总结


一、Linux权限

1、概念

Linux 下有两种用户:超级用户( root )、普通用户。那么什么是超级用户,什么是普通用户呢?
超级用户:可以在Linux系统下做任何事,不受限制。超级用户的命令提示符是"#"
普通用户:在Linux下做有限的事情。普通用户的命令提示符是"$"

2、超级用户和普通用户的相关操作

a. 添加用户,删除用户

那么该如何添加普通用户呢? 

创建用户:第一步: adduser + 用户名  第二步:passwd + 用户名 

删除用户:userdel  -r + 用户名 (这样可以彻底删除干净,如果直接使用userdel + 用户名可能会删不干净)   这里补充一下:ls /home 可以查看当前账号有哪些普通用户。

如果直接使用userdel + 用户名导致并没有删除干净的解决办法:

b. 超级用户和普通用户的切换 

超级用户----->普通用户:

su + 普通用户名  (超级用户切换到普通用户不需要输入密码)

退出:ctrl + d 或者 exit

 普通用户---->超级用户:

第一种:su -  以root身份重新登录一次   (普通用户切换超级用户需要超级用户的密码)

第二种:单纯的身份切换    (普通用户切换超级用户需要超级用户的密码)

退出:ctrl + d 或者 exit

c. sduo提权以及白名单设置 

现在我不想把我这个普通用户变成root,但是我却想让普通用户以root权限执行一条命令,有没有什么办法呢? 

sudo touch file.txt 可以在命令前加上sudo 进行短暂提权 

那么我现在不想每次都去进行sudo提权操作该怎么办呢?

使用sudo白名单配置(在root账号下操作)

1、ll /etc/sudoers   ----查找白名单配置

2、vim /etc/sudoers

3、将普通用户添加进白名单

4、保存退出 

二、Linux权限管理 

1、文件访问者的分类

  • 文件和文件目录的所有者:u---User
  • 文件和文件目录的所有者所在的组的用户:g---Group
  • 其它用户:o---Others  

2、文件访问类型和权限

a. 文件类型

b. 基本权限

1、读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限。
2、写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限。
3、执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
4、“—”表示不具有该项权限

3、文件权限值得表示方法

a. 字符表示方法

b. 8进制数值表示方法

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

 a. chmod  ---设置文件的访问权限

格式: chmod [参数] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
说明:只有 文件的拥有者和root 才可以改变文件的权限

 

从上图中看出,通过chmod我们的文件权限确实被更改了,那么图中的u+x,u-x,g+w,o+w,这些都是什么呢?

+: 向权限范围增加权限代号所表示的权限
-: 向权限范围取消权限代号所表示的权限
=: 向权限范围赋予权限代号所表示的权限
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

我们可以向上图那样用字符进行修改,也可以使用3位8进制数进行修改:

这里需要注意一下:

普通文件的起始权限是:666       目录文件的起始权限是:777 

b. chown  ---修改文件拥有者

语法格式:chown+用户名+文件

 对于普通用户而言,在更改拥有者时会被拒绝,这个时候就需要使用sudo命令:

c. chgrp  ---修改文件或目录的所属组

语法格式:chgrp+用户名+文件

常用选项-R 递归修改文件或目录的所属组

和chown一样,对于普通用户而言,在更改所属组时会被拒绝,这个时候就需要使用sudo命令: 

d. umask ---查看或修改文件掩码

上面也提到了:

新建文件夹默认权限=0666      新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
语法格式:umask    ---查看umask       umsak 权限值  ---修改umask

 root的默认掩码为:0022   普通用户默认掩码为:0002 

5、目录的权限 

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

可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容。
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件。

这个时候或许我们会有一个疑问:就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限。意思就是说,今天在这个目录下A和B都对这个目录具有写权限,此时A新建了一个文件,那么B是不是可以把这个文件进行删除呢?这好像有bug啊,凭什么A新建的文件,B可以删除呢?我们来试一下是不是这样:

果然可以删除,所以,为了解决这个问题Linux引入了粘滞位的概念 

6、粘滞位

给目录中的other设置一个权限位,同时也进一步对目录进行特殊限定,该目录下的文件,只用超级管理员root,目录的所有者,文件的所有者能够删除,其他人一概不允许!

三、总结

目录的可执行权限是表示你可否在目录下执行命令。
如果 目录没有-x权限,则无法对目录执行任何命令 ,甚至无法cd 进入目, 即使 目录仍然有-r 读权限 (这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)。 而如果目录具有-权限,但没有-r 权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限。

http://www.mrgr.cn/news/79931.html

相关文章:

  • nuxt2.0性能优化 ant design vue 组件和图标按需引入
  • 数字化招聘系统如何帮助企业实现招聘效率翻倍提升?
  • 【蓝桥杯每日一题】推导部分和——带权并查集
  • 淘宝详情网页爬虫:技术解析与实战指南
  • VOLTA:更优秀的项目级 Node.js 版本管理工具
  • C#中的string操作详解-截取、分割、连接、替换等
  • Java 实现给pdf文件指定位置盖章功能
  • ARM学习(35)单元测试框架以及MinGW GCC覆盖率报告
  • 特征交叉-CAN学习笔记代码解读
  • java抽奖系统登录下(四)
  • R学习——数据框
  • Leetcode数学部分笔记
  • [大数据]Hudi编译集成
  • 与 Cursor AI 对话编程:2小时开发报修维修微信小程序
  • 搭建Tomcat(一)---SocketServerSocket
  • Python 单例模式工厂模式和classmethod装饰器
  • vue3+vite接入iconify,支持离线
  • Docker的初识
  • IP研究 | 大数据洞察黄油小熊的爆火之路
  • 【数字花园】个人知识库网站搭建:②本地部署数字花园
  • 原生微信小程序使用原子化tailwindcss
  • 【数据结构——查找】顺序查找(头歌实践教学平台习题)【合集】
  • Ultra-Fast-Lane-Detection复现、部署及训练
  • kill crash原因分析
  • C++ 泛编程 —— 函数模板(中)
  • rman 迁移数据到其他机器实际实验