You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Debian Linux服务器:为用户配置受限sudo权限并禁止访问特定目录

Debian Linux服务器:为用户配置受限sudo权限并禁止访问特定目录

嘿,我来一步步帮你搞定Debian服务器上的这个权限配置需求,全程都是新手友好的操作,放心跟着来就行:

一、先把受限用户归到统一组(后续管理更省心)

首先推荐创建一个专门的用户组,把所有需要受限sudo权限的用户拉进来,这样后续改权限只需要调整组配置,不用挨个用户修改:

  • 创建专属组:sudo addgroup limited-sudo
  • 把已有的用户加入该组(替换成实际用户名):sudo usermod -aG limited-sudo alice
  • 如果是新建用户,创建时直接加组:sudo useradd -m -G limited-sudo bob

二、编辑sudoers配置(核心:限制sudo命令范围)

重中之重:永远别直接用vim/nano编辑/etc/sudoers主文件!一定要用visudo命令,它会自动做语法检查,避免你写错导致sudo权限彻底失效!

我们可以在/etc/sudoers.d/目录下新建独立配置文件(比改主文件更安全,也方便后续维护):

  1. 打开新配置文件:sudo visudo -f /etc/sudoers.d/limited-users
  2. 粘贴以下配置内容,你可以根据实际需求调整黑名单里的命令:
# 允许组内用户执行大部分sudo命令,排除黑名单的危险操作与目录访问
%limited-sudo ALL=(ALL:ALL) ALL, \
!/usr/bin/sudo, !/usr/bin/su, !/bin/bash, !/bin/sh, \
!/usr/bin/* /home/*, !/bin/* /home/*, \
!/usr/bin/* /backups/*, !/bin/* /backups/*

配置内容解释:

  • %limited-sudo:表示规则对limited-sudo组的所有用户生效
  • ALL=(ALL:ALL) ALL:默认允许执行所有sudo命令
  • !/usr/bin/sudo:禁止用户用sudo再次提权,避免无限套娃拿到全权限
  • !/usr/bin/su, !/bin/bash, !/bin/sh:禁止切换到root shell或打开新终端(这是绕开权限限制的常见手段)
  • !/usr/bin/* /home/*, !/bin/* /home/*:禁止用任何系统命令访问其他用户的home目录(比如ls /homecat /home/alice/secret.txt都会被拦截)
  • !/usr/bin/* /backups/*, !/bin/* /backups/*:同理禁止访问你的备份目录
  1. 保存退出:在visudo里按Ctrl+O,回车确认文件名,再按Ctrl+X退出

三、加固特定目录的文件系统权限(双重保险)

光靠sudo限制还不够,咱们再从文件系统权限层面加固,就算有漏洞,用户也碰不到敏感目录:

  • 把所有用户的home目录权限改成仅所有者可读写执行:
    sudo chmod 700 /home/*
    (这个命令会把/home下所有用户目录的权限设为700,只有目录主人和root能访问)
  • 对你的备份目录(比如/backups)做同样设置:
    sudo chmod 700 /backups
    再把目录所有者设为你自己(替换成你的用户名):
    sudo chown your-username:your-username /backups

四、测试配置是否生效

切换到受限用户账号,测试几个关键场景:

  1. 尝试安装软件包:sudo apt install htop → 应该能正常执行
  2. 尝试访问其他用户的home目录:sudo ls /home/alice → 会提示“对不起,用户xxx无权执行此命令”
  3. 尝试提权到root:sudo su → 同样会被拒绝

如果测试出问题,回到visudo检查配置有没有语法错误,或者调整黑名单里的命令即可。

备注:内容来源于stack exchange,提问作者CryptoRythmer

火山引擎 最新活动