博客
关于我
Linux的内核和权限
阅读量:800 次
发布时间:2023-02-04

本文共 851 字,大约阅读时间需要 2 分钟。

内核的子系统包括哪些?setuid权限位的工作原理解析

内核是操作系统的核心子系统,它主要负责系统的管理和控制。内核通常包括以下几个关键子系统:

  • 进程管理系统(Process Management System):负责进程的创建、调度、切换以及终止等功能。它是操作系统运行的核心机制之一。
  • 内存管理系统(Memory Management System):负责系统内存的分配、管理和回收。内核通过内存管理系统来确保应用程序能够顺利运行。
  • I/O管理系统(Input/Output Management System):负责设备I/O的操作,包括键盘、鼠标、打印机等外设的管理。I/O管理是操作系统和硬件交互的重要环节。
  • 文件管理系统(File Management System):负责文件的存储、查找和删除操作。文件管理系统是用户与系统交互的重要桥梁。
  • 这些子系统相互协作,共同构成了操作系统的运行基础。

    在Linux系统中,setuid权限位的作用是什么?当一个具有setuid权限的可执行文件由普通用户运行时,进程的有效用户和实际用户会是什么?

    普通用户运行具有setuid权限的可执行文件时,进程的有效用户会变为root,而实际用户仍然是原来的用户(如mike)。这是因为setuid权限位的作用是让普通用户能够以root用户的身份运行程序,但实际用户身份仍然保持不变。

    setuid权限位的工作原理主要体现在以下几个方面:

  • setuid调用会使进程成为会话组长和进程组长。当setuid调用成功执行后,进程会脱离原来的登录会话和进程组,形成一个新的会话和进程组。
  • 由于会话过程对控制终端的独占性,进程在执行setuid后会同时与控制终端断开,以确保新进程能正常运行。
  • 这种机制使得普通用户能够临时获得root权限,从而执行需要管理员权限的任务。
  • 需要注意的是,仅有setuid权限位并不意味着进程的实际用户身份会发生变化。只有在进程设置了setuid权限并成功执行时,才会实现权限的临时提升。

    转载地址:http://yvkfk.baihongyu.com/

    你可能感兴趣的文章
    NN&DL4.3 Getting your matrix dimensions right
    查看>>
    NN&DL4.7 Parameters vs Hyperparameters
    查看>>
    NN&DL4.8 What does this have to do with the brain?
    查看>>
    nnU-Net 终极指南
    查看>>
    No 'Access-Control-Allow-Origin' header is present on the requested resource.
    查看>>
    No 'Access-Control-Allow-Origin' header is present on the requested resource.
    查看>>
    NO 157 去掉禅道访问地址中的zentao
    查看>>
    no available service ‘default‘ found, please make sure registry config corre seata
    查看>>
    No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
    查看>>
    no connection could be made because the target machine actively refused it.问题解决
    查看>>
    No Datastore Session bound to thread, and configuration does not allow creation of non-transactional
    查看>>
    No fallbackFactory instance of type class com.ruoyi---SpringCloud Alibaba_若依微服务框架改造---工作笔记005
    查看>>
    No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc
    查看>>
    No mapping found for HTTP request with URI [/...] in DispatcherServlet with name ...的解决方法
    查看>>
    No mapping found for HTTP request with URI [/logout.do] in DispatcherServlet with name 'springmvc'
    查看>>
    No module named 'crispy_forms'等使用pycharm开发
    查看>>
    No module named 'pandads'
    查看>>
    No module named cv2
    查看>>
    No module named tensorboard.main在安装tensorboardX的时候遇到的问题
    查看>>
    No module named ‘MySQLdb‘错误解决No module named ‘MySQLdb‘错误解决
    查看>>