具有SUID的Ruby-gem可执行文件不能正常工作
如下图所示,我将具有SUID的Ruby-gem可执行文件不能正常工作,ruby,rubygems,executable,sudo,suid,Ruby,Rubygems,Executable,Sudo,Suid,如下图所示,我将emerald\u设置脚本的所有权更改为root:root,并设置了SUID 碰巧,当我安装gem并检查这个脚本时,它属于edvaldo:edvaldo(我的用户名),并且根本没有SUID 我不知道到底发生了什么,但是这个脚本对/etc/hosts进行了更改,还创建了一些防火墙规则。这需要根权限 因此,我的问题是: 我在这起诉讼案中遗漏了什么 我必须如何确保gem可执行文件将设置SUID 当然,我知道我可以让用户使用 $ sudo emerald_setup 但这将导致
emerald\u设置
脚本的所有权更改为root:root,并设置了SUID
碰巧,当我安装gem并检查这个脚本时,它属于edvaldo:edvaldo(我的用户名),并且根本没有SUID
我不知道到底发生了什么,但是这个脚本对/etc/hosts
进行了更改,还创建了一些防火墙规则。这需要根权限
因此,我的问题是:
- 我在这起诉讼案中遗漏了什么
- 我必须如何确保gem可执行文件将设置SUID
$ sudo emerald_setup
但这将导致我遇到另一个问题,因为gem可执行文件安装在用户空间中,其位置不在超级用户的路径中,设置它(猜怎么着?!)需要超级用户权限
有什么建议吗?您不能将具有suid权限的程序/脚本打包到gem(甚至tarball)中,并在作为普通用户解包时恢复这些权限。在某个时刻,安装gem的人将必须提供root访问的密码。您可以在安装gem时安排这种情况,方法是让gem Rakefile的:install目标运行一个脚本,该脚本将提示用户输入su(do)密码,然后使用sudo运行需要作为root用户运行的命令