Назад | Перейти на главную страницу

Служба xinetd: можно сменить пользователя? (cvs pserver)

Устаревший контроль версий: CVS под xinetd

У нас есть команда, которая использует устаревшую систему контроля версий: cvs. Мы запускаем cvs pserver под xinetd (файл конфигурации ниже).

Флаг аудита

Аудит безопасности поднял флаг: «убедитесь, что сервер cvs не работает под root».

Вопрос:

Могу ли я безопасно заблокировать cvs pserver, заменив user = root на user = cvs? Какие-либо вредные побочные эффекты или подводные камни?

Примечание. Пользователь cvs владеет всеми файлами в каталоге cvs root "/ var / cvs / cvs"

Я спрашиваю, потому что я просмотрел всю документацию десятилетней давности, и во всех примерах есть 'user = root', и ни один из них не предлагает изменить параметр «user =» для повышения безопасности.

Обновить: Я попробовал. Это сработало. Без проблем.

Спасибо

Пример: файл конфигурации cvspserver

# Begin /etc/xinetd.d/cvspserver

     service cvspserver
     {
          port        = 2401
          socket_type = stream
          protocol    = tcp
          wait        = no
          user        = root
          passenv     = PATH
          server      = /usr/bin/cvs
          server_args = -f --allow-root=/var/cvs/cvs   pserver
     }

# End /etc/xinetd.d/cvspserver

Вы должны обязательно следовать их советам. Это очень хороший совет.

Как правило, при этом вам необходимо убедиться, что у демона достаточно прав, чтобы делать то, что он делает. В данном конкретном случае это, скорее всего, просто означает уже имеющееся право собственности. Я предлагаю создать резервную копию вашего репозитория и просто внести изменения.

Это работает так: xinetd (часто работающий от имени root) отбрасывает привилегии, а затем выполняет / usr / bin / cvs с stdin и stdout, направленными на сокет, которым управляет xinetd. В этом нет ничего особенного. CVS достаточно проста и не требует никаких разрешений, кроме возможности манипулировать файлами в своем корне.