Мы используем тонких клиентов в нашей компании, и у нас много пользователей, использующих одну и ту же коробку.Я установил rbenv как системную установку, следуя инструкциям на следующем веб-сайте:
https://blakewilliams.me/posts/system-wide-rbenv-install
Это сводится к этим командам
cd /usr/local
git clone git://github.com/sstephenson/rbenv.git rbenv
chgrp -R staff rbenv
chmod -R g+rwxXs rbenv
ЗапустивВ последней строке мы должны установить gems как любой пользователь системы, который входит в группу персонала.У нас есть два разработчика, которые входят в эту группу, и ни один из них не может установить гемы.
Мы получаем ошибку;
~ % gem install cheat
/usr/local/rbenv/versions/2.3.5/lib/ruby/2.3.0/rubygems/config_file.rb:332:in `exist?': Insecure operation - exist? (SecurityError)
from /usr/local/rbenv/versions/2.3.5/lib/ruby/2.3.0/rubygems/config_file.rb:332:in `load_file'
from /usr/local/rbenv/versions/2.3.5/lib/ruby/2.3.0/rubygems/config_file.rb:198:in `initialize'
from /usr/local/rbenv/versions/2.3.5/lib/ruby/2.3.0/rubygems/gem_runner.rb:75:in `new'
from /usr/local/rbenv/versions/2.3.5/lib/ruby/2.3.0/rubygems/gem_runner.rb:75:in `do_configuration'
from /usr/local/rbenv/versions/2.3.5/lib/ruby/2.3.0/rubygems/gem_runner.rb:40:in `run'
from /usr/local/rbenv/versions/2.3.5/bin/gem:21:in `<main>'
~ % gem install cheat
Если я удаляю липкий бит из группы, тогда они могут добавлять гемыно если кто-то попытается удалить гем, установленный кем-то другим, это не получится;
~ % chmod -R g-s rbenv
Как разрешить нескольким пользователям устанавливать / удалять гемы из общесистемной установки rbenv?
Обновление
Вот пример установки в каталоге /usr/local/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems
, как вы можете видеть
drwxrwxr-x 5 map7 map7 4.0K Jun 4 15:50 unicode-display_width-1.3.3
drwxrwxr-x 5 andre andre 4.0K May 23 13:22 vcr-3.0.3
drwxrwxr-x 3 map7 staff 4.0K Apr 30 11:01 web-console-3.6.2
Решение этой проблемы я нашел как
: cd /usr/local/rbenv/versions/2.5.1/lib/ruby/gems/2.5.0
: sudo chown -R map7:staff gems
: sudo chmod -R 775 gems
: sudo chmod g+s gems