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

Как разрешить пользователям доступ только к определенному набору папок на моем сервере Ubuntu?

Мне нужны фрилансеры, чтобы иметь возможность загружать и выгружать файлы на некоторые из моих веб-сайтов на моем сервере Ubuntu, но не на все.

Как мне настроить его так, чтобы каждый фрилансер был пользователем, имеющим доступ только к тем сайтам, к которым он должен иметь доступ, и ни к чему другому?

Я выполнил инструкции, которые нашел настроить пользователей ftp с доступом к определенным папкам через привязку. Я добавил своих ftp-пользователей в группу, у которой есть права на чтение и запись в эти папки, так что с этой точки зрения все кажется хорошим - мои пользователи могут делать то, что им нужно. Но мои пользователи ftp могут переходить ко всем папкам на моем сервере, а это совсем не хорошо. Как мне убедиться, что они ограничены своей папкой / home / thisuser и ничем другим.

Я бы использовал chroot. Это действительно ваш лучший вариант, так как вы будете на 100% уверены, что никто не сможет просматривать ничего, кроме своего «домашнего» каталога.

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

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

Настройка chroot SFTP состоит из нескольких этапов. В этих инструкциях предполагается, что у вас установлен ssh-сервер.

  1. В / etc / ssh / sshd_config замените строку

    Subsystem sftp /usr/lib/openssh/sftp-server с этим:

    Subsystem sftp internal-sftp

    После этой строки добавьте следующий раздел:

    Матч группы sftponly

    ChrootDirectory / главная /% u
    X11 Нет пересылки
    AllowTcpForwarding нет
    ForceCommand внутренний sftp

    ChrootDirectory / home /% u заставит домашний каталог пользователя стать корневым каталогом.

  2. Создайте группу sftponly:

    sudo groupadd sftponly

  3. Добавьте всех фрилансеров в группу sftponly и измените домашний каталог пользователя:

    sudo usermod -g sftponly -d / johnnyfreelancer

    'sftponly' должен быть основной группой пользователя (это то, что делает флаг -g), иначе этот метод не будет работать. Флаг -d также необходим, потому что после входа пользователя в систему / home /% u будет фактически самым верхним каталогом для вошедшего в систему пользователя.