Могу ли я безопасно удалить Ruby?
Я хочу удалить некритические пакеты, чтобы ограничить подверженность потенциальным уязвимостям безопасности.
Я никогда не использую Ruby.
Удаляет ли Ruby безопасность или нарушает работу других частей системы?
3 ответа
Если ваш менеджер пакетов установил Ruby для начала, то что-то в вашей системе нуждается в этом.
Самый простой способ выяснить, что для этого нужно, - проверить попытку удаления пакета. Например:
# yum remove ruby
...
================================================================================
Package Arch Version Repository Size
================================================================================
Removing:
ruby x86_64 1.8.7.352-12.el6_4 @updates 1.8 M
Removing for dependencies:
facter x86_64 1:1.7.3-1.el6 @puppetlabs-products 235 k
hiera noarch 1.2.1-1.el6 @puppetlabs-products 46 k
puppet noarch 3.3.0-1.el6 @puppetlabs-products 3.5 M
ruby-irb x86_64 1.8.7.352-12.el6_4 @updates 1.0 M
ruby-rdoc x86_64 1.8.7.352-12.el6_4 @updates 1.3 M
ruby-rgen noarch 0.6.5-1.el6 @puppetlabs-deps 315 k
rubygem-json x86_64 1.5.5-1.el6 @puppetlabs-deps 989 k
rubygems noarch 1.3.7-1.el6 @base 711 k
Transaction Summary
================================================================================
Remove 9 Package(s)
Installed size: 9.9 M
Is this ok [y/N]: n
Exiting on user Command
Итак, в моей системе я вижу, что это нужно марионетке. Поскольку мне действительно нужна кукла, я не буду удалять рубин.
Аналогично в системах на основе Debian:
# apt-get remove ruby
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
libshadow-ruby1.8 irb1.8 libaugeas0 rdoc libruby ruby1.8 rdoc1.8
libaugeas-ruby1.8 puppet-common libruby1.8 libopenssl-ruby1.8
libreadline-ruby1.8 libreadline5 libopenssl-ruby augeas-lenses
libxmlrpc-ruby
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
facter puppet ruby
0 upgraded, 0 newly installed, 3 to remove and 48 not upgraded.
After this operation, 983kB disk space will be freed.
Do you want to continue [Y/n]? n
Abort.
Само по себе удаление рубина не окажет большого влияния на безопасность. Если вы не используете его, как злоумышленник собирается что-то использовать в нем? Они должны иметь оболочку и иметь возможность вызывать интерпретатор ruby, и если у них есть оболочка, существует миллиард и один лучший способ использовать ее, чем запускать ruby (для чего, чтобы получить оболочку, которая у них уже есть?).
Если у вас есть исполняемые файлы SUID с ruby в качестве их интерпретатора, это может создать проблемы с безопасностью (в зависимости), или если ruby находится в sudoers, и гипотетический злоумышленник может запустить его таким образом (не позволяйте никому sudo интерпретатора, если вы не удобно давать им права root; никогда не позволяйте сервисным аккаунтам интерпретаторов sudo), это было бы проблемой безопасности. Тем не менее, дыра в безопасности связана не с установкой ruby, а с неправильной настройкой вашей системы в целом.
Ваш подход неверен. Удалите ненужные сервисы, а не ненужные пакеты.
В системе на основе RHEL вы можете использовать пакет yum-utils
# rpm -q --whatrequires ruby
Также полезная команда
# yum install yum-utils
# package-cleanup --leaves
На основе системы Debian
# apt-cache showpkg ruby**