Предположим, Вашей компании необходимо организовать обмен файлами между
головным офисом и отделениями. Необходимо выполнение следующих требований:
incoming - директория, в которую anonymous может записывать файлы
Создаем файл ~/pub/.ftpaccess следующего содержания:
<Limit WRITE>
DenyAll
</Limit>
Этой директивой мы запретили всем пользователям выполнение команд, связанных
с записью файлов, в директории ~/pub. Необходимо помнить, что действие
директив в файле .ftpaccess распространяется также и на все поддиректории,
поэтому запись сейчас запрещена для всех директорий, находящихся внутри ~/pub.
Для разрешения записи в какой-либо поддиректории в ней необходимо создавать
отдельный файл .ftpaccess с разрешением команд записи файлов.
Создаем файл ~/pub/users/.ftpaccess следующего содержания:
<Limit ALL>
DenyUser anonymous
</Limit>
Этой директивой мы запретили выполнение любых команд в директории
~/pub/users/ для пользователя anonymous.
Создаем файл ~/pub/incoming/.ftpaccess следующего содержания:
AllowOverwrite off
<Limit WRITE>
AllowAll
</Limit>
<Limit WRITE DIRS>
DenyAll
</Limit>
Эти директивы разрешают только запись в директорию ~/pub/incoming/ всем
пользователям и запрещают выполнение всех остальных команд (например, чтение
уже загруженных файлов). Директива 'AllowOverwrite off' запрещает при загрузке
файлов перезапись уже существующих файлов в данной директории (т.к. директория
публичная и запись в нее разрешена всем авторизованным пользователям).
Создаем файл ~/pub/users/common/.ftpaccess следующего содержания:
<Limit WRITE>
DenyAll
</Limit>
Эта директива запрещает запись и изменение файлов в директории ~/pub/users/common для всех
пользователей.
Для разрешения доступа новому филиалу необходимо
проделать следующие процедуры:
создать файл .ftpaccess в этой директории, содержащий:
<Limit ALL>
AllowUser user1
DenyAll
</Limit>
Эти директивы разрешают выполнение любых команд в директории
~/pub/users/user1/ для пользователя user1 и запрещают выполнение любых команд
всем другим пользователям.
Таким образом, мы получили следующую структуру каталогов с правами
доступа для пользователей:
/pub (сюда запрещена запись для всех)
/users (здесь запрещены любые команды для anonymous)
/common (сюда запрещена запись для всех)
/user1 (здесь разрешены любые команды для user1 и
запрещены любые команды
остальным пользователям)
/ public (здесь разрешено чтение для всех пользователей)
/ incoming (сюда разрешена запись для всех пользователей)