Задать вопрос
@alpi_bel

Установка прав доступа на все файлы?

Доброго дня. Суть вопроса. Поднял сервер на Debian + vsftpd. Создал пользователя без root прав.
Через filezilla конекчусь к ftp под созданным пользователем и пытаюсь закачать файл на ftp. Все ок.
От root заканчиваю в папку юзера любой файл и пытаюсь скачать созданным пользователем этот файл.
Сразу выдаёт ошибку 550 . Ок, меняю от имени root права на доступ к файлу и пользователем нормально скачиваю файл.
Т. Е чтобы чел скачал файл, надо менять права доступа к файлу. А если несколько раз в день обмениваться файлами и тем более не одним, каждый раз, каждый файл менять права доступа?
Встаёт вопрос, как настроить, чтобы я от root заканчивал файл в папку юзера, и чтобы он мог скачивать, без изменения прав доступа к файлу постоянно?
  • Вопрос задан
  • 264 просмотра
Подписаться 2 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 4
@rPman
Правильное решение - не работать из под root, копирование файлов производить под тем же пользователем (или пользователем в той же группе что и скачивающий), тогда проблем с настройками прав не возникнет.

p.s. на сколько я знаю в каких то ftp серверах была возможность принудительно задать пользователя, под которым сервер будет запущен и авторизован, а авторизация пользователя ftp не будет соответственно авторизации ОС, тогда запущенный под root сервер решил бы твою проблему, но это огромная дыра, так давно уже не поступают.

p.p.s. ftp на столько устаревший протокол, что удобные решения для него уже мало кем поддерживаются (т.е. для галочки базовый сервер еще входит в репозитарии, но нафиг никому не нужен)

пользуйтесь sftp/scp, который встроен по умолчанию в ssh сервер, который есть для любой ОС на планете, стандарт безопасного подключения, на столько многофункционален. что даже vpn через него поднять можно (штатным инструментом)
Ответ написан
Комментировать
@fbi_suck
Эникей
chown ftpuser:ftpuser /ftp
chmod g+s /ftp
setfacl -d -m g:ftpuser:rwx /ftp
setfacl -R -m g:ftpuser:rwx /ftp
getfacl /ftp

Вроде как-то так можно. Не уверен.
Тут добавляется sgid бит к каталогу во второй строке чтобы все создаваемые файлы имели группу пользователя каталога и настираиваются расширенные права доступа чтобы у группы пользователя были все права.
Ответ написан
Комментировать
smorman
@smorman
When In Rome do as The Romans do...
Под root заходишь и устанавливаешь пакет sudo:
apt install sudo

Потом добавляешь Пользователя в группу sudo:
usermod -aG sudo [username]

Или открываешь /etc/sudoers:
EDITOR=nano visudo

Листаешь до секции со строкой:
# User privilege specification
root      ALL=(ALL:ALL) ALL

и устанавливаешь курсор в конец строки, как на скрине:
sudoers
67399625358a2687677401.png

Жмёшь на Enter, тем самым переводишь каретку на новую строку:
sudoers
67399660c482f462210190.png

Вписываешь аналогичную строку, но вместо Пользователя test, впысываешь своего Пользователя:
sudoers
6739971741ddf651948124.png

Ну и сохраняешь:
Ctrl+O
Enter

И выходишь из редактора:
Ctrl+X

Перелогинишься под Пользователем и радуешься жизни...
Ответ написан
saboteur_kiev
@saboteur_kiev
software engineer
1. В настройках фтп сервера, если он запущен под рутом, может быть опция для смены владельца файлов.

2. В аплоад директорию можно установить SGID бит, тогда все новые файлы будут аплоадиться с правами владельца директории - то есть ставишь SGID на директорию и меняешь владельца на юзера, от имени которого ходишь по фтп.

3. В настройках ftp сервера или его процесса, устанавшиваешь umask на 0.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы