编译 shell 脚本以便可以使用 suid
我需要suid一个脚本,以便具有较少权限的用户可以执行它。 由于您无法 suid 脚本而只能 suid 可执行文件,因此我想使用通用脚本编译器“shc”来创建可执行文件,然后设置该可执行文件的 suid 位。 唯一的问题是,在 ubuntu jaunty 上我找不到 shc,或者当我执行 apt-get install shc 时,它返回为未找到。 是否有使用 shc 的替代方案(除了编写我自己的 C 程序),或者它是否包含在我可以添加的存储库中,以便 apt-get 找到它?
I need to suid a script so that it can be executed by users with less permissions. Since you can't suid a script and can only suid an executable I wanted to use the generic script compiler "shc" to create an executable and then set that executable's suid bit. Only problem is that on ubuntu jaunty I can't find shc or when I do apt-get install shc, it's comes back as not found. Is there an alternative to using shc (except writing my own C program) or is it included into a repo that I could add, so that apt-get would find it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在脚本内部使用 sudo 执行任何管理命令。
如果您需要 sudo 在不需要密码的情况下工作,请查看编辑 sudoers 文件以指定脚本并提供类似这样的 NOPASSWD 选项。
USERNAME ALL=(root) NOPASSWD: /usr/local/SCRIPT_NAME ""
Inside the script use
sudo
to execute any administrative commands.If you need sudo to work without requiring a password look at editing the sudoers file to specify the script and give the NOPASSWD option something like this.
USERNAME ALL=(root) NOPASSWD: /usr/local/SCRIPT_NAME ""
我在 serverfault 上遇到了 同样的问题 - 您可以将 sudoers 文件编辑为授予运行 shell 脚本的权限。
I had this same question over on serverfault - you can edit the sudoers file to grant permission to run a shell script.