Мне нужны фрилансеры, чтобы иметь возможность загружать и выгружать файлы на некоторые из моих веб-сайтов на моем сервере Ubuntu, но не на все.
Как мне настроить его так, чтобы каждый фрилансер был пользователем, имеющим доступ только к тем сайтам, к которым он должен иметь доступ, и ни к чему другому?
Я выполнил инструкции, которые нашел настроить пользователей ftp с доступом к определенным папкам через привязку. Я добавил своих ftp-пользователей в группу, у которой есть права на чтение и запись в эти папки, так что с этой точки зрения все кажется хорошим - мои пользователи могут делать то, что им нужно. Но мои пользователи ftp могут переходить ко всем папкам на моем сервере, а это совсем не хорошо. Как мне убедиться, что они ограничены своей папкой / home / thisuser и ничем другим.
Я бы использовал chroot. Это действительно ваш лучший вариант, так как вы будете на 100% уверены, что никто не сможет просматривать ничего, кроме своего «домашнего» каталога.
Я бы использовал SUphp и делал группы для фрилансеров. Затем вы можете добавить разрешение на запись / чтение для папки, которая нужна им для их группы.
Я не могу комментировать ваш вопрос, поскольку у меня пока недостаточно репутации, но есть ли причина, по которой вы используете FTP вместо SFTP? FTP отправляет пароли в открытом виде, что очень плохо. SFTP зашифрует ваши обмены между клиентом и сервером.
Настройка chroot SFTP состоит из нескольких этапов. В этих инструкциях предполагается, что у вас установлен ssh-сервер.
В / 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 заставит домашний каталог пользователя стать корневым каталогом.
Создайте группу sftponly:
sudo groupadd sftponly
Добавьте всех фрилансеров в группу sftponly и измените домашний каталог пользователя:
sudo usermod -g sftponly -d / johnnyfreelancer
'sftponly' должен быть основной группой пользователя (это то, что делает флаг -g), иначе этот метод не будет работать. Флаг -d также необходим, потому что после входа пользователя в систему / home /% u будет фактически самым верхним каталогом для вошедшего в систему пользователя.