服务器取消权限的核心在于精准定位权限对象与执行严格的权限回收指令,无论是Windows还是Linux系统,最安全且高效的操作逻辑均为:先查看当前权限列表,再删除特定用户或组的权限,最后验证权限是否已彻底移除,这一过程必须遵循“最小权限原则”,确保在取消权限时不影响系统或其他用户的正常运行,防止因权限设置不当引发的安全漏洞或服务中断。

权限管理的基础逻辑与准备工作
在执行服务器怎么取消权限的操作前,必须明确权限的三大要素:主体(用户/组)、客体(文件/文件夹/服务)和权限类型(读/写/执行/完全控制),盲目删除权限可能导致服务瘫痪。
-
备份权限配置
在更改任何关键权限前,建议先导出或记录当前的权限设置,对于Windows服务器,可以使用icacls命令保存当前ACL(访问控制列表);对于Linux,可以备份/etc/sudoers文件或记录特定目录的ls -l输出。 -
确认权限继承关系
权限往往具有继承性,在Windows中,子文件夹默认继承父文件夹权限;在Linux中,用户所属的组权限会叠加,取消权限时,需判断是阻断继承,还是直接移除特定用户的访问条目。
Windows服务器取消权限的专业方案
Windows服务器主要使用图形界面(GUI)和命令行(CLI)两种方式,针对不同场景灵活选择。
-
图形界面(GUI)操作流程
这是直观且常用的方法,适用于单文件或单目录操作。- 定位客体。 右键点击需要设置权限的文件或文件夹,选择“属性”,切换至“安全”选项卡。
- 编辑访问控制。 点击“编辑”按钮,系统会显示当前拥有权限的用户和组列表。
- 移除主体。 选中需要取消权限的用户或组,点击“删除”按钮,若“删除”按钮呈灰色不可选,说明该权限是从父对象继承而来的,需先点击“高级”,禁用继承,选择“将已继承的权限转换为此对象的显式权限”,然后再进行删除。
- 应用更改。 确认无误后,点击“应用”并确定。
-
命令行(CLI)高效操作
对于需要批量处理或远程管理的情况,icacls命令更具效率。- 查看权限: 执行
icacls "D:WebData"查看当前目录权限。 - 取消权限: 执行
icacls "D:WebData" /remove "Guest",该命令将移除Guest用户对该目录的所有权限。 - 阻止继承: 执行
icacls "D:WebData" /inheritance:d,这将阻断继承,便于独立管理权限。
- 查看权限: 执行
Linux服务器取消权限的实战步骤

Linux系统的权限管理依赖于用户组(Group)和文件权限位,以及sudo机制,操作更具技术性。
-
文件系统权限取消
Linux通过chmod和chown控制文件访问。- 移除执行权限: 若要取消某用户对脚本的执行权,使用
chmod -x filename。 - 更改所有者: 若要取消某用户对目录的访问权,最直接的方法是将该目录的所有者更改为root或其他用户,并设置700权限,命令为
chown root:root /data/secret && chmod 700 /data/secret,这样除root外,原用户将无法访问。
- 移除执行权限: 若要取消某用户对脚本的执行权,使用
-
Sudo权限的精准回收
服务器运维中,取消用户的sudo提权是高频需求。- 编辑配置文件: 使用
visudo命令打开配置文件,这是唯一安全的编辑方式,可防止语法错误。 - 定位用户行: 找到类似
username ALL=(ALL:ALL) ALL的行。 - 注释或删除: 在该行前加号进行注释,或直接删除该行。
- 细化限制: 如果只想取消特定命令的权限,可修改为
username ALL=(ALL:ALL) ALL, !/bin/su,表示允许所有命令但禁止使用su命令。
- 编辑配置文件: 使用
-
用户组权限剥离
检查用户所属的附加组,若用户因属于docker组而拥有操作容器的权限,取消该权限需执行gpasswd -d username docker,将用户从docker组中移除。
常见风险与避坑指南
在执行权限取消操作时,必须警惕以下风险,确保服务器安全稳定。
-
避免“Everyone”权限滥用
在Windows中,切勿为了省事直接删除“Everyone”或“Authenticated Users”的权限,这可能导致系统服务无法启动,应遵循“拒绝优先,显式允许”的原则,先添加指定用户权限,再移除宽泛权限。 -
防止锁定管理员账户
在修改远程服务器权限时,务必保持一个具有管理员权限的会话窗口开启,以防权限配置错误导致无法登录。 -
服务依赖性检查
许多服务(如IIS、SQL Server)依赖特定的文件系统权限,取消权限前,需查阅官方文档,确认该目录是否被服务账户调用,避免因权限丢失导致服务崩溃。
权限取消后的验证机制
操作完成并非终点,验证才是闭环的关键。
-
切换用户测试
使用runas /user:testuser cmd(Windows)或su - testuser(Linux)切换到被取消权限的用户,尝试访问目标资源,系统应提示“访问被拒绝”。 -
日志审计
检查系统安全日志,确认是否有因权限不足而产生的审核失败记录,这能侧面印证权限策略已生效。
相关问答模块
在Windows服务器中,为什么删除用户权限后,该用户仍然能够访问文件?
解答: 这种情况通常由权限继承或组成员身份导致,检查该文件是否位于父文件夹下,且父文件夹赋予了该用户访问权限,子文件夹会自动继承,检查该用户是否属于其他拥有访问权限的用户组,虽然删除了用户“张三”的直接权限,但“张三”属于“Sales”组,而“Sales”组拥有该文件的访问权,解决方案是阻断继承,或移除该用户在相关组的成员资格。
Linux服务器中如何取消用户的远程登录权限但保留其本地服务运行权限?
解答: 这是一个典型的运维需求,可以通过修改用户的Shell来实现,执行命令usermod -s /sbin/nologin username,将用户的默认Shell改为/sbin/nologin,这样,用户无法通过SSH或TTY登录系统,但系统后台运行的服务(如Web服务、数据库服务)若以该用户身份运行,则不受影响,依然可以正常读写文件,从而实现登录权限与服务权限的分离。
如果您在服务器权限管理过程中遇到更复杂的场景,欢迎在评论区留言交流。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/92102.html