IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux入门之用户权限管理 -> 正文阅读

[系统运维]Linux入门之用户权限管理


前言

文章的内容来源拉钩教育上的课程学习,通过写博客的方式,更好的提高对该知识的掌握。


一、权限抽象

  • 一个完整的的权限管理体系,要有合理的抽象。就这包括对用户、进程、文件、内存、系统调用等抽象。

  • 首先,我们来说下用户和组。Linux是一个多用户平台,允许多个用户同时登录该系统。Linux将用户抽象成账户,账户可以登录系统,如通过输入用户名+密码的方式进行登录,也可以通过证书的方式进行登录。

  • 为了方便分配每个账户的权限,Linux还支持Group账户。组账户是多个账户的集合,组可以为成员分配某一类权限。每个用户可以在多个组,这样可以通过组快速分配权限。

  • 组的概念类似于微信群。一个用户可以在多个群里。如某个组中分配了10个目录的权限,那么新建用户的时候可以将这个用户增加到这个组中,这样新增的用户不需要去一个个去分配权限。而每一个微信群都有一个群组,Root账户也叫做超级管理员,就相当于微信群主,他对系统有完全的掌控。一个超级管理员可以使用系统提供的全部能力。

  • 此外,Linux还对文件进行权限抽象(目录也是一种文件)。Linux中一个文件可以设置三种权限:

    • 读权限 r:控制读取文件
    • 写权限 w:控制文件写入
    • 执行权限x:控制文件执行,如脚本、应用程序。
  • 然后每个文件可以从三个维度去配置上述的3种权限(User、Group、All)

    1.用户维度。每个文件可以所属1个用户,用户维度配置的rwx在用户维度生效
    2.组维度。每个文件可以所属一个分组,组维度配置的rwx在组维度生效。
    3.全部用户维度。设置对所有用户的权限。

初始权限问题

  • 一个文件创建后,文件的所属用户被设置创建文件的用。谁创建谁拥有,这个逻辑很顺理成章。但是文件的组又是如何分配的?
    Linux中就是为每个用户创建了一个同名分组。比如说zhang这个用户创建时,工作分组就会默认使用它同名组zhang,如果zhang想要切换分组时,可以使用newgrp指令切换另一个分组。
    文件创建后,权限通常是 rw-rw-r–

权限划分

  • 权限架构思想遵循一个原则,权限划分边界足够清晰,尽量做到足够清晰,尽量做到相互隔离。Linux提供了用户和组。 这里我们说说root的危害,举个例子,你有一个MYSQL进程执行在root账户上,如果有黑客攻破了MySQL服务,获得MySQL上执tm行SQL权限,那么整个系统都被暴露在黑客眼前了。黑客可以利用MYSQL的copy From Prgram指令为所欲为,备份关键文件,然后删除他们,并要挟你通过指定账户打款。如过执行最小权限原则,即使黑客攻破我们MySQL服务,也只能获得最小权限。

权限包围

  • Linux提供了权限包围的能力。如一个应用,临时需要高级权限,可以利用交互界面(比如让用户输入root账户密码)验证身份,然后执行需要高级权限的操作,然后马上恢复到普通的账户下,这样做可以减少应用在高级权限的时间,并做到专权专用,防止被恶意程序利用。

二、用户分组指令

1.创建用户

#创建用户 当前root权限 所处目录home
useradd lw
#
passwd 用户名
#输入新密码
********
#重新输入新密码
********

2.权限设置

#先给root添加sudoers文件的读写权限
chmod 777 /etc/sudoers
# 编辑sudoers文件
vi /etc/sudoers
#找到如下
root ALL=(ALL) ALL
#添加
lw ALL=(ALL) ALL
wang ALL=(ALL) ALL


#共有四种权限
lw ALL=(ALL) ALL
%lw ALL=(ALL) ALL
lw ALL=(ALL) NOPASSWD:ALL
%lw ALL=(ALL) NOPAAAWD:ALL

第一行:允许用户lw执行sudo命令(需要输入密码)
第二行:允许用户组lw里面的用户执行sudo命令(需要输入密码)
第三行:允许用户lw执行sudo命令,不需要输入密码
第四行:允许用户组lw里面的用户执行sudo命令,不需要输入密码

三、文件权限管理

  • 查看

    使用ls -l 查看文件权限

  • 修改文件权限

    使用chmod修改文件权限,chmod(change file mode bites),也就是rwx,只不过在Linux中用三个连在一起的二进制表示。

#设置wang 可执行
chmod +x ./wang
#不允许wang 执行
chmod -x ./wang
#同时设置多个权限
chmod +rwx./wang
  • 因为rwx在Linux中用相邻的三个位来表示。如111代表rwx,101代表r-x。rwx总共有三个组,分别是用户权限、组权限和全部用户权限,也就是说111111111 9个1代表的是rwxrwxrwx,因为111的二进制是7,因此当需要一次性执行设置用户权限、组权限和所有用户权限的时候,我们常用数字表示。
chmod 777  ./wang
#设置rw-rw-rw-(110110110)->666
chomod 666 ./wang
  • 修改文件所属用户
#修改foo文件所属的用户为bar
chown	bar ./foo
#同时修改文件所属的用户和分组 修改foo的分组位g,用户位u
chown g.u ./foo

Linux遵循最小权限原则

1.每个用户掌握的权限足够小,每个组掌握的权限也足够小。实际生产过程中,最好管理员的权限可以拆分,互相牵制防止问题。
2.每个应用应当尽可能小的使用权限。最理想的是每个应用单独占一个容器(docker),这样就不存在互相影响的问题。
3.尽可能少的root。如果一个用户需要root能力,那么应当进行权限包围-----马上提升权限(sudo),处理后释放权限。
4.系统层面实现权限分级保护,将系统的权限分为一个个Ring,外层调用内层Ring时需要内存Ring进行权限验证。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-27 14:29:21  更:2021-09-27 14:31:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:32:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码