You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需授予sudo权限,实现普通用户以root权限执行命令的问题求助

无需授予sudo权限,实现普通用户以root权限执行命令的问题求助

看起来你遇到了两个问题——一是su命令的写法不对导致报错,二是想找到一种不用给用户完整sudo权限,却能让他们以root身份执行特定操作的方法。我来帮你一步步解决:

先解决你测试命令的报错问题

你写的su adminuser echo "Hello World"其实并没有让echo命令在adminuser的权限下执行。su默认只会切换用户并启动一个新的shell,后面的echo还是在你当前普通用户的环境里运行,这就导致了权限拒绝的错误。正确的写法应该用su的-c参数来指定要执行的命令,同时加上-来加载目标用户的完整环境:

su - adminuser -c 'echo "Hello World"'

这样echo就会在adminuser的权限下正常执行了。

针对你的核心需求:无完整sudo权限却能执行root级命令

我更推荐用限制型sudo配置,这比单纯用su更安全可控:

  1. 用visudo命令打开sudoers配置文件(一定要用visudo,它会自动检查语法错误,避免配置出错导致sudo功能失效)
  2. 在文件末尾添加类似这样的配置行:
你的普通用户名 ALL=(root) NOPASSWD: /usr/bin/echo "Hello World"
  • 其中NOPASSWD:是可选的,如果不想让用户每次执行都输入密码就加上;去掉的话,用户执行时需要输入自己的登录密码。
  • 这样配置后,用户只能用sudo执行这一条特定的echo命令,完全无法使用sudo进行其他管理员操作,完美符合你不想让他们成为管理员的需求。

如果你实在不想碰sudo,还有一种方法是给特定二进制程序设置setuid位,但这个方法风险极高——如果程序存在漏洞,很可能被用来获取完整root权限,而且shell脚本无法设置setuid,只能用编译后的二进制文件,所以非常不推荐这种方式。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 08:18:06