AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 36759
Accepted
devin
devin
Asked: 2009-07-07 18:30:11 +0800 CST2009-07-07 18:30:11 +0800 CST 2009-07-07 18:30:11 +0800 CST

编辑 sudoers 文件以限制用户的命令

  • 772

是否可以编辑 sudoers 文件,以便用户可以将 sudo 用于除指定命令之外的任何命令?我相信,我反转是真的,可以设置 sudoers 文件,以便用户只能执行给定的命令列表。

编辑:我真正想带走的命令是停止和重新启动......这让我觉得有特殊的系统调用需要停止和重新启动。你能把系统调用从用户那里拿走吗?如果不是,是不是因为unix权限系统抽象了系统调用而忽略了这一点?

linux sudo
  • 9 9 个回答
  • 28727 Views

9 个回答

  • Voted
  1. Best Answer
    LapTop006
    2009-07-07T18:48:47+08:002009-07-07T18:48:47+08:00

    另一种看待它的方式是,如果用户具有很大程度上不受限制的 root 访问权限,他们可以轻松获得完全的 root 访问权限。

    虽然您可能能够解决一些问题,但它很容易被规避。

    SElinux 虽然是一种可能的方式,但需要大量学习。

    • 5
  2. Jeremy Viet
    2009-07-07T18:40:00+08:002009-07-07T18:40:00+08:00

    是和否...您可以通过在文件前面加上一个 bang (!) 来阻止用户运行特定文件,但是您不能阻止用户将文件复制到另一个位置然后从那里运行它。

    User_Alias    ADMINS = peter, bob, bunny, %operator
    
    ADMINS        ALL    = !/usr/bin/su, !SHELLS
    

    以其他用户身份授予对特定文件的访问权限

    • 4
  3. pjz
    2009-07-07T19:24:11+08:002009-07-07T19:24:11+08:00

    为了做你想做的事(让用户窗体运行停止、重启和关机),你将不得不查看 SElinux 的东西以防止用户进行这些系统调用。否则用户将首先运行 /bin/sh,然后运行 ​​/bin/halt 而无需通过 sudo。

    • 3
  4. Ronald Pottol
    2009-07-07T19:45:13+08:002009-07-07T19:45:13+08:00

    记录他们通过 sudo 所做的所有事情,大概,你有一些方法可以让你不再这样做。

    Defaults logfile=/var/log/sudolog 
    

    将记录他们运行的所有命令,谷歌搜索更多信息。

    • 3
  5. user1686
    2009-07-07T23:54:36+08:002009-07-07T23:54:36+08:00

    如果用户真的想重启,他会想办法的。sudo -s, sudo -i, sudo $EDITOR /etc/sudoers... 可用于删除您的限制。

    在类 Unix 系统上,只要您是 root (uid 0),就可以重新启动系统。如果您确实找到了一种限制这些系统调用的方法,则可以这样做:

    用户$ 回声 b | sudo tee /proc/sysrq-trigger

    或其变体。或者通过引起内核恐慌来重新启动。或者...

    最后,拥有 root 访问权限通常使您能够删除任何现有的限制。

    • 2
  6. ThorstenS
    2009-07-07T18:37:59+08:002009-07-07T18:37:59+08:00

    当然,作为 root 调用 visudo 并阻止“用户”运行 /sbin/halt:

    user ALL=(ALL) NOPASSWD: !/sbin/halt
    
    • 1
  7. bglick
    2009-07-07T18:55:42+08:002009-07-07T18:55:42+08:00

    以下行应该让用户“jim”运行除 /usr/bin/kill 和 /usr/bin/su 之外的所有内容。

    jim          ALL= !/usr/bin/kill,!/usr/bin/su
    
    • 1
  8. Julien
    2009-07-18T14:01:02+08:002009-07-18T14:01:02+08:00

    这样做存在风险:通常有多种方法可以执行相同的操作。例如,telnit 6 或 init 6 也会重新启动。可能有一种方法可以强制内核进行核心转储并重新启动。

    • 1
  9. Wayne
    2009-07-07T18:38:33+08:002009-07-07T18:38:33+08:00

    这是未经测试的 YMMV,但是如何设置您不想运行的命令的 cmd_list,然后为指定的组/用户使用 !cmd_list 呢?

    我无权对此进行测试,只是在Sudoers Manual上在线查看了手册页,因此如果我错了,一些专家会在这里纠正我

    • 0

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve