Разрешить процессу без полномочий root доступ ко всем домашним каталогам без ущерба для безопасности?

Любые идеи о том, как разрешить одному без root-процессу доступ (чтение и запись) всех домашних каталогов без ущерба для безопасности? Обычные пользователи не должны иметь доступ к домашним каталогам друг друга.

Все идеи приветствуются, даже сумасшедшие (настройки nfs & kerberos?) 🙂

Мне в основном нужно создать веб-интерфейс для домашних каталогов пользователей, где процесс без полномочий root является процессом веб-сервера.

Новые файлы должны иметь владельца домашнего каталога как владельца. Возможно ли это?

2 Solutions collect form web for “Разрешить процессу без полномочий root доступ ко всем домашним каталогам без ущерба для безопасности?”

Нам понадобится дополнительная информация, если вы ищете полный ответ. Из того, что я понял, вы можете зайти в список контроля доступа . Он поддерживается многими Unices и даст вам лучший контроль над тем, какой пользователь получает доступ к файлу.

Используйте с осторожностью и попробуйте сначала в виртуальной машине, если вы не на 100% удобнее.

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

Вы можете поместить список управления доступом во все домашние каталоги, которые предоставляют конкретное разрешение на выполнение пользователем или группой в каталоге. Тогда веб-сервер потенциально сможет получить доступ к любому файлу в домашних каталогах пользователей, что может обеспечить способы эскалации привилегий (по крайней мере, это расширит влияние уязвимости доступа к локальному файлу). Например, в Solaris или Linux убедитесь, что домашняя файловая система смонтирована с опцией acl и запускается

 setfacl -m user:www-data:x /home/* 

(интегрируйте это в настройку создания учетной записи). Затем сообщите своим пользователям, что их каталог ~/public_html должен быть ~/public_html для чтения пользователем www-data ; они могут выполнить эту команду:

 setfacl -R -m default:user:www-data:rx ~/public_html setfacl -R -m user:www-data:rx ~/public_html 

Другая возможность – установить все каталоги public_html пользователей в отдельное место в файловой системе. Преимущество такого подхода заключается в том, что разрешения на домашние каталоги не будут иметь значения; он даже позволяет веб-серверу запускать chroooted. В Linux вы можете сделать это для домашнего каталога:

 mount --bind /home/joe/public_html /srv/homepages/joe 

Каталог public_html и его содержимое по-прежнему должны быть доступны для www-data .

Вариант метода привязки Linux-привязки использует файловую систему bindfs . Этот метод работает на любой ОС, которая поддерживает bindfs (которая является наиболее унифицированной) и не требует каких-либо настроек ACL, за счет того, что любой файл в public_html будет доступен для чтения веб-сервером.

 bindfs -u www-data -p 500 /home/joe/public_html /srv/homepages/joe 
  • Разрешение отклонено при записи файла
  • Как настроить разрешения для доступа к файлу?
  • Права клонирования и разрешения от другого файла?
  • Могу ли я разрешить пользователям chmod файл, не принадлежащий им?
  • Разрешения для файлов для ядра изменились в OSX Yosmite, почему?
  • В чем разница между этими двумя наборами команд для настройки разрешений ACL?
  • Предоставление пользователям прав, не относящихся к администратору (для обновления, для доступа к новому Wi-Fi, но блокировка записи DVD) в Ubuntu 12.04
  • Каталог «не найден» в HP-UX для точки монтирования NFS
  • в чем цель setuid включена без исполняемого бита?
  • Разрешения подкаталогов на Samba
  • Невозможно отредактировать sources.list как root
  • Linux и Unix - лучшая ОС в мире.