3

У меня есть сервер SFTP на CentOS 7.4 (через стандартный sshd), и я хочу настроить сервер так, чтобы пользователи могли загружать файлы в своем каталоге, удалять файлы в своем каталоге, но не могли загружать новые файлы или перезаписывать файлы.

Я могу использовать chmod для установки rw , но я не хочу, чтобы пользователи могли загружать новые файлы или изменять их, просто загружайте их.

Есть ли какой-нибудь трюк, который я могу использовать здесь? (Похоже, что большинство людей хотят блокировать удаления и разрешать добавления / модификации, я хочу наоборот.)

У меня также есть включенный и работающий SELinux, если это тоже помогает.

Самое близкое, что я получил, - это chmod 555 , chown для пользователя, но тогда я не могу удалить файл, только прочитать его. Если я chmod 755 в каталог, я могу читать и удалять файлы, и я не могу изменить существующие файлы, но я все еще могу добавлять новые файлы.

Кроме того, соответствующая часть моего /etc/ssh/sshd_config:

Match Group sftpusers
    ChrootDirectory /zfspool/sftp/%s
    ForceCommand internal-sftp

Все остальное по умолчанию. SFTP-сервер:

Subsystem    sftp    /user/libexec/openssh/sftp-server

1 ответ1

0

Вы можете сделать это, используя функцию черного списка sftp-server, в вашем sshd_config установите:

Subsystem       sftp    /usr/libexec/openssh/sftp-server -P write

или в качестве альтернативы, если используется internal-sftp:

ForceCommand internal-sftp -P write

Вы можете контролировать разрешенные запросы в режиме белого / черного списка, см. Запросы man sftp-server и sftp-server -Q, чтобы получить список доступных запросов на вашем сервере.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .