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

Списки контроля доступа в Debian Lenny

Итак, для моих клиентов, у которых есть сайты, размещенные на моем сервере, я создаю учетные записи пользователей со стандартными домашними папками внутри / home.

Я установил SSH-тюрьму для всех collective пользователей, потому что я действительно против использования отдельного FTP-сервера. Затем я установил ACL и добавил acl в свой /etc/fstab - все хорошо.

  1. Я вставил в /home и chmod 700 ./*.
    • На этом этапе пользователи не могут видеть домашние каталоги других пользователей (ура), но apache их тоже не видит (бух)
    • . Я побежал setfacl u:www-data:rx ./*. Я также пробовал отдельные каталоги.
    • Теперь apache снова может видеть сайты, но и все пользователи тоже. ACL изменил права доступа к домашним папкам на 750.

Как мне настроить ACL, чтобы Apache мог видеть сайты, размещенные в домашних папках пользователя, И 2. Пользователи не могут видеть за пределами своего дома и в чужие файлы.


Изменить: подробнее:

Вывод после chmod -R 700 ./*

sh-3.2# chmod 700 ./*
sh-3.2# ls -l
total 72
drwx------+ 24 austin  austin     4096 Jul 31 06:13 austin
drwx------+  8 jeremy  collective 4096 Aug  3 03:22 jeremy
drwx------+ 12 josh    collective 4096 Jul 26 02:40 josh
drwx------+  8 joyce   collective 4096 Jun 30 06:32 joyce

(Недоступно для других пользователей ИЛИ apache)

setfacl -m u:www-data:rx jeremy

(Теперь доступен для членов apache и коллективного - почему тоже коллективный?)

sh-3.2# getfacl jeremy 
# file: jeremy
# owner: jeremy
# group: collective
user::rwx
user:www-data:r-x
group::r-x
mask::r-x
other::---

Решение

В конечном итоге я сделал следующее:

chmod 755 *
setfacl -R -m g::--- *
setfacl -R -m u:www-data:rx *

Попробуйте поменять маску на "---"?

Или отмените разрешение группы с помощью setfacl. chmod и setfacl не работают слишком хорошо все вместе.

комментарий hayalci, что

chmod и setfacl не очень хорошо работают вместе.

помогло много. Вместо использования CHMOD для предотвращения доступа к данным другим группам я использовал:

cd /home
setfacl -m g::0 joeuser # Removes permissions for the owning group.
setfacl -m g:www-data:r joeuser # Adds read permissions for Apache
cd joeuser/joeuser.com/static/
setfacl -m g:www-data:rwx uploads # So apache can write to the uploads directory.

Что касается заключения в тюрьму, более новые версии ssh поддерживают параметр ChrootDirectory. Для соединений только scp я использовал scponly успешно в прошлом.

Что касается того, что apache видит файлы, вы не совсем правильно поняли chmod. Попробуйте что-то вроде этого (предполагается, что apache использует группу apache):

cd / home

chmod -750 * # владельцы могут все делать, члены группы могут читать, другие ничего не могут

chgrp -R apache * # изменив группу на apache, теперь apache может читать файлы.

Помните, что вы не хотите добавлять обычных пользователей в группу apache.

Ну, вы не можете запретить пользователям видеть "за пределами своих домашних каталогов" без полного chroot, потому что они всегда смогут видеть системные каталоги, например /usr/bin (потому что так запускаются программы). Я не понимаю, как setfacl введенная вами команда даст показанные результаты; вы можете дать результат getfacl и ls -l для домашнего каталога пользователя в вашем вопросе?