允许某个组运行 CentOS 中某个目录下的所有文件

允许某个组运行 CentOS 中某个目录下的所有文件

我正在尝试使用 Capistrano 为我的 Rails 应用程序设置自动部署。Capistrano 需要运行,我通过编辑文件(当然是通过)并添加以下行,sudo kill实现了无需输入密码即可实现这一点:/etc/sudoersvisudo

%deployers  ALL= NOPASSWD: /bin/kill

但是,由于我使用的是 RVM 单用户设置,bundle可执行文件位于/home/peddiemarketdeploy/.rvm/gems/ruby-1.9.3-p194/bin/bundle,因此,同样地,我添加了

%deployers  ALL= NOPASSWD: /home/peddiemarketdeploy/.rvm/gems/*

在该文件中也尝试运行sudo bundle,但 sudo 仍要求我输入密码。由于 RVM 在目录名称中使用版本号,因此我不想将路径硬编码到中/etc/sudoers。有什么想法可以编辑我的 sudoers 文件以使其正常工作?

谢谢!

答案1

rvm 是否以某种方式链接到活动的 ruby​​ 实例?也就是说,是否有某种符号链接/home/peddiemarketdeploy/.rvm/gems/$active指向活动版本?如果是,则允许 sudo /home/peddiemarketdeploy/.rvm/gems/$active/bin/bundle。否则,编写包装器脚本(不是在 shell 中,而是perl或者Python) 选择正确的版本并允许人们使用 sudo 运行该版本。

相关内容