Linux Capability探索实验】的更多相关文章

Linux内核从2.1版本开始,就开始支持Capabilities的安全机制.Capabilities安全机制提出的目的在于实现系统特权操作的更加细粒度的访问控制,使用户能够根据实际的安全需求来控制root进程拥有的权限范围,从而取消root进程多余权限带来的安全隐患.在Capabilities机制中,所有权限被分割成比较具体和细小的权限(并将分割出来的每种细小权限称为权能),每种权能代表着root用户进行某种特权操作的权限:系统中只有进程和可执行文件具有权能,系统根据一定的安全策略来赋予进程权…
『Linux Capability』 For the purpose of performing permission checks, traditional UNIX implementations distinguish two categories of processes: privileged processes (whose effective user ID is 0, referred to as superuser or root), and unprivileged proc…
转至http://www.cnblogs.com/iamfy/archive/2012/09/20/2694977.html 一)概述:  1)从2.1版开始,Linux内核有了能力(capability)的概念,即它打破了UNIX/LINUX操作系统中超级用户/普通用户的概念,由普通用户也可以做只有超级用户可以完成的工作. 2)capability可以作用在进程上(受限),也可以作用在程序文件上,它与sudo不同,sudo只针对用户/程序/文件的概述,即sudo可以配置某个用户可以执行某个命令…
Linux内核分析实验六 进程控制块PCB——task_struct(进程描述符) 为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息. struct task_struct数据结构很庞大 Linux进程的状态与操作系统原理中的描述的进程状态似乎有所不同,比如就绪状态和运行状态都是TASK_RUNNING,为什么呢? TASK_RUNN有没有在CPU上执行决定他是就绪还是运行状态.       和操作系统类似:就绪态,运行态,阻塞态 进程的标示pid 所有进程…
实验目的 1.了解Linux日志的作用. 2.掌握删除Linux日志的方法. 实验原理 所谓日志(Log)是指系统所指定对象的某些操作和其操作结果按时间有序的集合.每个日志文件由日志记录组成,每条日志记录描述了一次单独的系统事件.通常情况下,系 实验内容 1.介绍Linux日志的作用. 2.手动删除Linux日志. 实验环境描述 Linux操作系统 实验步骤 1.点击"打开控制台" 2.Login. 以root为用户名,123456为password登录. 3.查看Linux系统日志.…
程涵  原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000  [反汇编一个简单的C程序]   实验截图: 分析汇编代码的工作过程中堆栈的变化 两个宏指令:enter, leave 除特殊指明,eip在执行完某一条指令后会自动开始执行下一条指令. esp,ebp寄存器总是指向一个堆栈.esp指向栈顶,ebp指向栈底(栈底是相对的,每个函数有自己的基地址).函数调用堆栈是由逻辑上多个堆栈叠加起来的. 函数的返…
1.实现磁盘限额的条件 *需要Linux内核支持 *安装quota软件包2.Linux磁盘限额的特点 作用范围:针对指定 文件系统(分区) 限制对象:普通用户帐号.组帐号 限制类型:磁盘容量(默认单位为KB).文件数量 限制方法:软限制.硬限制3.quota对文件系统的限制主要分为:容量限制或文件数量限制限制inode用量:就是用户可以新建的文件数量限制block用量:就是用户可以使用的磁盘容量,比较常见的限制方式-----------------------------------------…
之前都是直接使用Kali里面安装好的Wireshark和Win下的,Ubuntu的来个小计 PS:解决方法不重要,我觉得更重要的是这个摸索的过程 解决方法 # 安装wireshark sudo apt install wireshark # 新增wireshark用户组 $ sudo groupadd wireshark # 将dumpcap更改为wireshark用户组 $ sudo chgrp wireshark /usr/bin/dumpcap # 让wireshark用户组有root权限…
程涵  原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 进程的切换和系统的一般执行过程 知识点梳理 一.进程切换的关键代码分析 1.1 进程调度与进程调度的时机分析 操作系统原理中介绍了大量进程调度算法,这些算法从实现的角度看仅仅是从运行队列中选择一个新进程,选择的过程中运用了不同的策略而已. 对于理解操作系统的工作机制,反而是进程的调度时机与进程的切换机制更为关键. 不同类型的进程有不同的调度需求…
程涵  原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 可执行程序的装载 知识点梳理 一.预处理.编译.链接和目标文件的格式 可执行程序是如何得来的 C源代码(.c)经过编译器预处理被编译成汇编代码(.asm) 汇编代码由汇编器被编译成目标代码(.o) 将目标代码链接成可执行文件(a.out) 可执行文件由操作系统加载到内存中执行 vi hello.c gcc -E -o hello.cpp hell…
程涵  原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 进程的描述和进程的创建 知识点梳理: 一. 进程的描述 (1)操作系统的三大管理功能包括 进程管理 内存管理 文件系统 (2)PCB task_struct中包含 进程状态 进程打开的文件 进程优先级信息 (3)通过唯一的进程标识PID来区别每个进程. (4)进程状态(代码分析) http://codelab.shiyanlou.com/xref…
Linux内核分析:实验一 潘俊洋 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 计算机体系结构与程序运行过程 现代计算机大都采用的是“冯.诺依曼”体系结构,它的核心思想是:程序存储,指令和数据不加区分的放在一个存储器中.由指令指针寄存器保存着下一条将要执行指令的地址,这个寄存器在32位系统中叫eip,64位系统中叫rip. 指令是用二进制编码的,难于记忆.为了更有效的编写程序,人们就…
Centos6系统启动流程 1. post  加电自检  检查硬件环境 2. 选择一个硬件类型引导启动           mbr 446字节   grub  stage1 3. 加载boot分区的文件系统驱动  挂在/boot目录      grub  stage1.5 4. 读取 /boot/grub/grub.conf   加载内核启动菜单     grub  stage2 5. 加载vmlinuz内核  通过内核加载操作系统的 /  需要/boot/initramfs.img配合来加载根…
张文俊 + 原创作品转载请注明出处 + <Linux 内核分析> MOOC 课程 实验要求: 1.总结部分要求阐明自己对“计算机是如何工作的”理解: 2.博客中需要使用实验截图: 实验内容: 1.阐述计算机是如何工作的: 2.分析汇编代码的工作过程中堆栈的变化: 一.冯诺依曼体系结构 冯诺依曼体系结构是现代计算机的基础,现在大多计算机仍是冯诺依曼计算机的组织结构,只是作了一些改进而已,并没有从根本上突破冯体系结构的束缚. 根据冯·诺依曼体系结构构成的计算机,必须具有如下功能: 把需要的程序和数…
张文俊 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.第二周学习内容总结 1.计算机工作“三大法宝” 首先,计算机工作原理最重要的三个内容就是:存储程序计算机工作模型.中断机制和函数调用堆栈. 存储程序计算机工作模型是计算机系统最最基础性的逻辑结构: 中断机制是多道程序操作系统的基点,没有中断机制程序只能从头一直运行结束才有可能开始运行其他程序: 函数调用堆栈是高级语言得以…
构造一个简单的Linux系统 张文俊+原创作品转载请注明出处+<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验内容: 一.gdb跟踪调试内核从start_kernel到init进程启动 1.qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S # 关于-s和-S选项的说明: // -S freeze CPU at s…
贺邦 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 一. 实验过程 1.打开shell,输入启动指令,内核启动完成后进入menu程序,支持三个命令help.version和quit. 2.然后使用gdb跟踪调试内核,输入命令qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S 3.按住…
程涵  原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000  [操作系统是如何工作的]   教学内容重要部分整理总结 1.三个法宝:存储程序计算机.函数调用堆栈.中断机制. 存储程序计算机工作模型,计算机系统最最基础性的逻辑结构. 函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆栈机制对于计算机来说并不那么重要,但有了高级语言及函数,堆栈成为了计算机的基础功能.(函数参数传递机制和局部…
 程涵  原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 [跟踪分析Linux内核的启动过程]  知识点梳理 Linux内核源代码 arch:支持不同的CPU的源代码,其中的关键目录包括:Documentation.drivers.firewall.fs.include等 documentation:文档目录 fs:文件系统 init:内核启动相关的代码main.c.Makefile等基本都在该目录中…
程涵  原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 [使用库函数API和C代码中嵌入汇编代码触发同一个系统调用]  知识点整理 一.用户态.内核态和中断 处理过程 1. 通过库函数完成系统调用:库函数将系统调用封装起来. 2. 用户态与内核态 内核态:一般现代CPU有几种指令执行级别.在高执行级别下,代码可以执行特权指令,访问任意的物理地址,这种CPU执行级别对应着内核态. 用户态:在相应的低级别…
程涵  原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 分析system_call中断处理过程 实验过程及截图 一.使用gdb跟踪分析一个系统调用内核函数 更新menu代码到最新版 test.c中main函数里,增加MenuConfig() 增加对应的两个函数,Time和TimeAsm make rootfs 自动编译脚本 更新menu代码到最新版 test.c中main函数里,增加MenuConfi…
一.实验内容 1)实验部分(以下命令为实验楼64位Linux虚拟机环境下适用,32位Linux环境可能会稍有不同) 使用 gcc –S –o main.s main.c -m32 命令编译成汇编代码,如下代码中的数字请自行修改以防与他人雷同 int g(int x) { return x + 3; } int f(int x) { return g(x); } int main(void) { return f(8) + 1; } 2)根据本周所学知识分析汇编代码的工作过程,撰写一篇署名博客,并…
实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 若不小心登出后,直接刷新页面即可 2. 环境使用 完成实验后可以点击桌面上方的“实验截图”保存并分享实验结果到微博,向好友展示自己的学习进度.实验楼提供后台系统截图,可以真实有效证明您已经完成了实验. 实验记录页面可以在“我的主页”中查看,其中含有每次实验的截图及笔记,以及每次实验的有效学习时间(指的是在实验桌面内操作的时间,如果没有操作,系统会记录为发呆时间).这些都是您学习的真实性证明. 3.…
一.进程调度与进程调度的时机分析 1.不同类型的进程有不同的调度需求 Linux既支持普通的分时进程,也支持实时进程. Linux中的调度是多种调度策略和调度算法的混合. 2.调度策略:是一组规则,它们决定什么时候以怎样的方式选择一个新进程运行. Linux的调度基于分时和优先级. 3.内核中的调度算法相关代码使用了类似OOD的策略模式. 4.进程调度的时机 (1)中断处理过程中,schedule函数实现调度: 中断处理过程(包括时钟中断.I/O中断.系统调用和异常)中,直接调用schedule…
who am i  打印用户名和终端 终端的启动时间 whoami    打印用户名 who 命令其它常用参数 参数 说明 -a 打印能打印的全部 -d 打印死掉的进程 -m 同am i,mom likes -q 打印当前登录用户数及用户名 -u 打印当前登录用户登录信息 -r 打印运行等级 su,su- 与 sudo su <user> 可以切换到用户 user,执行时需要输入目标用户的密码 sudo <cmd> 可以以特权级别运行 cmd 命令,需要当前用户属于 sudo 组,…
这个是大三下学期的Linux网络服务配置详解时,感觉老师上得简单,就整理下,岭南师范学院师弟妹有福,如果是蔡老师交的话,可以拿来预习,复习. 一.用PuTTY连接Linux ①.装有redhat系统的虚拟机 1. 编辑 --> 虚拟网络编辑器 记下 "类型" 和 "子网地址"(这些下面会有用) 2.看网络适配器 是与上面的"类型"一致,再看二个勾是否打上,否则后面可能连不上 如下图: 3.在虚拟机中登录redhat,修改IP地址,IP地址:…
顾名思义,消息队列就是一些消息的列表,用户可以在消息队列中添加消息和读取消息等.从这点上看,消息队列具有一定的FIFO特性,但是它可以实现消息的随机查询,比FIFO具有更大的优势.同时,这些消息又是存在于内核中的,由“队列ID”来标识. 消息队列的实现包括创建或打开消息队列.添加消息.读取消息和控制消息队列4种操作,其中创建或打开消息队列使用的函数是msgget(),这里创建的消息队列的数量会受到系统消息队列数量的限制:添加消息使用的函数是msgsnd(),它把消息添加到已打开的消息队列末尾:读…
写的不错的一片博客,可以参考熟悉相关概念,主要将了linux系统的系统调用,以及用法这里就不重新造轮子了 https://www.cnblogs.com/iamfy/archive/2012/09/20/2694977.html 下面主要翻译man 7 capabilities手册,以及使用工具capsh 这部分“百度”还检索不到相关内容 man 7 capabilities手册 changelog20190118:确定研究范围 ---------------------------------…
作业五:通配符实验 反引号与()在此时都是表死获取结果 但是一般使用()的方式,因为反引号在多个反引号的时候无法正确指代 获取当前bash 的变量 echo $变量名 echo $? 表示上一次命令的执行是否成功,0表示成功,其他表示失败 3.{}表示范围 4.[]表示其中内容的任意一个 5.&&和||和: 命令a && 命令b    表示a成功才执行b     a不成功不执行b 命令a || 命令b      表示a不成功才执行b     a成功不执行b 命令a :命令b…
一.给MenuOS增加time和time-asm命令 1. 克隆并自动编译MenuOS rm menu -rf 强制删除原menu文件 git clone http: cd menumake rootfs 运行自动编译脚本,生成根文件系统,启动MenuOS 2. 给MenuOS增加time和time-asm命令 更新menu代码到最新版 test.c中main函数里,增加MenuConfig 增加对应的两个函数:Time和TimeAsm make rootfs 二.调试内核 1. 使用gdb跟踪…