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

Ограничение разрешений пользователей для одной папки, при этом они также доступны для пользователя apache

У меня есть веб-сайт, работающий на Apache под Linux в каталоге / var / www.

На этом сайте есть файлы вне корня веб-каталога в / var / www-store, которые записываются и читаются пользователем apache www-data.

Мне нужен другой пользователь, у которого есть доступ для чтения и записи к подкаталогу этого хранилища файлов / var / www-store / sync, но по соображениям безопасности я не хочу, чтобы у них был доступ (чтение или запись) к любым файлам за пределами этого каталог или где-нибудь еще в файловой системе.

Кроме того, файлы, написанные этим пользователем, должны быть доступны для записи пользователем apache и наоборот.

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

Вы можете установить групповое владение для каталога и файлов, которыми вы хотите поделиться с пользователем, а не где-либо еще в файловой системе?

chown -R apache:[user-name-here] /var/www-store/sync/*

Это рекурсивно установит групповое владение каталогом. apache будет владельцем, а ваш пользователь будет владельцем группы, поэтому вам нужно будет убедиться, что каталог и файл могут быть прочитаны и записаны в:

chmod ug+rw /var/www-store/sync/*

Вышеупомянутая строка позволит пользователю и владельцу группы читать и писать в каталог.

Затем вам нужно убедиться, что родительский каталог также не имеет разрешений на чтение или запись для всех пользователей. Это также можно сделать с помощью chmod:

chmod o-rw /var/www-store/

Обратите внимание, что указанная выше строка не является рекурсивной, иначе она повлияет на ранее установленный permissinso. Который должен быть всем, что вам нужно, и в противном случае это, по крайней мере, поможет вам начать. Отказ от ответственности: Я на самом деле не пробовал это, поэтому не могу точно сказать, что это сработает, но если нет chmod и chown должен помочь вам в этом. Если вы делаете это из соображений безопасности, вы, вероятно, захотите тщательно протестировать это и в другом каталоге, возможно, лучше всего сделать его специально для тестирования.

Если пользователю не нужен физический TTY, вы можете попробовать создать пользователя только для sftp и настроить ChrootDirectory OpenSSH для группы пользователя.

Вы можете добавить другого пользователя в группу. А затем предоставьте этой группе доступ для чтения и записи в каталог /var/www-store/sync.

chown -R www-data:somegroup /var/www-store/sync
chmod -R 770 /var/www-store/sync