Это не лучшее решение, но в интересах вашего обучения, я все равно буду критиковать его. Я доберусь до лучшего решения всего за секунду, но это важно.Повторяйте за мной: [116523]никогда, никогда не запускайте веб-сервисы в качестве root, если вы можете помочь ему[116524] (и в этом случае вы [116525]можете помочь ему, потому что у вас есть контроль над приложением). Правильным способом реализации этого является наличие демона, который начинает с root, но передает привилегии непривилегированному пользователю. Вы заставите этого демона породить второго демона перед тем, как он сбросит привилегии, а непривилегированный демон будет разговаривать с демоном с привилегиями. Привилегированный демон будет выполнять действия от имени непривилегированного демона.Повторяйте за мной: [116527]такое разделение привилегий БЕЗ ИСПОЛЬЗОВАНИЯ, если только демон с привилегиями не выполняет валидацию.[116528] Это означает, что демон с привилегиями не может слепо принимать команды от демона с непривилегированными правами. Он должен убедиться, что команда - это что-то, что хорошо и имеет смысл. Если вы не делаете валидацию, вы ввели [116529] запутанную проблему заместителей [116530]. При написании такого кода безопасности предположим, что ваш веб-сервис будет скомпрометирован. Я слышу, что вы говорите - "этого никогда не случится". [116531] Да, случится. [116532] Безопасность заключается в ограничении ущерба. Вы также можете извлечь пользу из чтения [116533]Шесть самых тупых идей в компьютерной безопасности[116534].Моя третья идея - расширить первую и запустить все серверы в какой-нибудь песочнице, где исполняемые файлы не могут получить доступ к файлам снаружи. Но технически я не знаю, как это будет сделано и возможно ли это вообще.
A+: это (часть) правильный способ достижения такого рода безопасности веб-приложений. Способ, которым вы бы это сделали, это порождение процессов вашего сервера в [116537]chroot jail[116538].[116030].
Я использую CentOS 6.5, а двоичный файл rcp принадлежит пакету krb5-appl-clients-1.0.1-7.el6_2.1.x86_64
[root@CentOS-VM1 6]# rpm -qf $(which rcp)
krb5-appl-servers-1.0.1-7.el6_2.1.x86_64
krb5-appl-clients-1.0.1-7.el6_2.1.x86_64
Моя версия CentOS -
[root@CentOS-VM1 6]# lsb_release -d
Description: CentOS release 6.5 (Final)
Вы можете установить пакет krb5-appl-clients-1.0.1-7.el6_2.1.x86_64
с использованием yum
yum install krb5-appl-clients
Примечание : я рекомендую вам использовать scp
или rsync
через ssh
(частная / общедоступная аутентификация)
Вы можете попробовать (как root), набрав
yum install rsh
Вероятно, он не установлен, так как он старый и небезопасный, но вы МОЖЕТЕ установить его и запустить.
RCP / RSH устарел и небезопасен, и разрабатывать устройства для работы с ним, а не обновлять его для использования более современных технологий, бессмысленно.
Может быть, попробуйте показать «дизайнеру» это или, что еще лучше, покажите своего менеджера.
Теперь вы можете попробовать следующие шаги:
Включите службу RCP на машине unix, используя inetd
:
/etc/inetd.conf
. оболочки
и начинающиеся с exec
. ps -ef | grep inetd
и определите идентификатор службы inetd
. Отправьте сигнал профиля пользователя хоста (HUP) на inetd
, используя kill
или используя pkill
. inetd
, используя inetd restart
. Чтобы включить службу RCP с помощью xinetd
:
/etc/Xinetd.d/rsh
. Вы можете получить другой файл на основе вашего дистрибутива Linux. нет
. ps -ef | grep inetd
и определите pid службы inetd
. Отправьте сигнал HUP на xinetd
, используя kill
или используя pkill
. xinetd
, используя xinetd restart
или service xinetd restart
. После включения служб RCP вы должны установить разрешения безопасности, чтобы хост Windows мог подключаться к вашему компьютеру.
/etc/hosts.equiv
. В зависимости от вашего дистрибутива Linux этот файл может отличаться. Вы можете получить что-то вроде /etc/hosts.allow
.