服务器权限控制:系统调用权限限制实战

云伟大大_9526

云伟大大_9526

2026-06-09

704人浏览

原创

服务器权限控制的核心是“该不该由这个身份做”,而非“能不能做”;Linux通过内核在系统调用入口校验进程凭证与capabilities实施强制限制,Windows依赖令牌权限与会话隔离形成硬边界,跨平台均要求权限降级必须在系统调用发起前完成。

服务器权限控制:系统调用权限限制实战

服务器权限控制的核心不是“能不能做”,而是“该不该由这个身份做”。系统调用层面的权限限制,直接决定进程能否访问硬件、读写内核对象、切换用户上下文或跨会话通信。绕过这一层,再细的角色权限设计也形同虚设。

Linux:从系统调用入口掐断越权行为

普通用户进程默认无法执行某些敏感系统调用(如mount、setuid、ptrace),这不是靠文件权限拦住的,而是由内核在syscall入口校验当前进程的凭证(cred)和能力(capability)。

  • 用capsh --print查看当前进程拥有的capabilities,避免盲目用sudo掩盖能力缺失
  • 给程序只加必要能力,例如仅需绑定1024以下端口: sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/myserver
  • 禁用危险调用:通过seccomp-bpf过滤器拦截openat对/etc/shadow的访问,比chmod更底层

Windows:令牌权限与会话隔离是硬边界

服务进程运行在Session 0,而用户桌面在Session 1+,这不仅是显示问题——它意味着服务默认没有访问用户窗口站(WinSta0)、桌面对象(Default)或注册表HKEY_CURRENT_USER的令牌权限。

PicLumen
PicLumen

PicLumen是一款集合 AI 图片、视频、音频生成和图片编辑能力的多媒体创作平台。

下载
  • 不要依赖“允许服务与桌面交互”(已弃用),改用WTSQueryUserToken + CreateProcessAsUser在目标Session中启动UI进程
  • 若需读取当前登录用户的配置,先调用WTSGetActiveConsoleSessionId获取会话ID,再用ImpersonateLoggedOnUser临时模拟该用户令牌
  • 注册表操作涉及HKEY_CURRENT_USER时,必须确保线程运行在对应用户上下文中,否则会静默失败或落到默认配置

跨平台共性:权限降级必须在调用前完成

无论Linux的setuid还是Windows的RevertToSelf,权限提升/降级都发生在系统调用发起前。一旦以高权限身份进入内核,后续所有子调用都继承该上下文——不存在“中间降权”。

  • Linux下:用prctl(PR_SET_NO_NEW_PRIVS, 1)阻止后续execve获得新权限,配合seccomp使用更稳妥
  • Windows下:服务启动UI程序后,应立即调用SetThreadToken(NULL)清除模拟令牌,防止后续误用
  • 容器环境:Docker的--user参数只影响初始进程,若程序自行调用setuid,仍可能提权——需配合no-new-privileges: true运行时限制

系统调用权限不是配置项,是运行时的强制检查点。控制它,等于握住了进程行为的总闸门。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux capabilities

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

960

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3252

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1076

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

969

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

514

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2996

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5632

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

867

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习