![Разрешить группе запускать все файлы в определенном каталоге в CentOS](https://rvso.com/image/593914/%D0%A0%D0%B0%D0%B7%D1%80%D0%B5%D1%88%D0%B8%D1%82%D1%8C%20%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B5%20%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0%D1%82%D1%8C%20%D0%B2%D1%81%D0%B5%20%D1%84%D0%B0%D0%B9%D0%BB%D1%8B%20%D0%B2%20%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC%20%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B5%20%D0%B2%20CentOS.png)
Я пытаюсь настроить автоматическое развертывание для моего приложения Rails с помощью Capistrano. Capistrano нужно будет запустить sudo kill
, и я добился этого без запроса пароля, отредактировав /etc/sudoers
файл (через visudo
, конечно), и добавив следующую строку:
%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
. В противном случае напишите скрипт-обертку (не в оболочке, аперлилипитон), который выбирает нужную версию и позволяет людям запускать ее с помощью sudo.