Установка SFTP для входа сервера с Filezilla

У меня есть ec2 экземпляр на AWS, который уже установил некоторых Wordpress-es в нем. Я хочу настроить вещи позволить большему количеству людей обработать свои собственные проекты со мной также способность войти в сервер с помощью терминала, если я все еще хочу.

Я следовал учебным руководствам такой как, Как установить ограниченный сервер SFTP на Ubuntu? и немногие другие. Я полагал, что все они просто учат пользователей как к sftp в их собственную домашнюю папку также шаги продолжают говорить addUser но некоторые пользователи уже существовали, и удаление их могло бы вызвать некоторую проблему.

Как я могу дать существующим пользователям разрешение использовать SFTP для проектов Wordpress?

Скажем, все мои проекты Wordpress уже находятся под /var/www/ который был уже настроен с www-data:www-data.

Действительно новый с установкой вещей как это.

Заранее спасибо за любую справку.

2
задан 19 November 2018 в 20:09

1 ответ

Здесь я предполагаю, что Вы можете к ssh/sftp к корневому каталогу Вашего пользователя успешно, и Вы хотите отредактировать (с Вашим пользователем) файлы и папки под /var/www это принадлежит user и :group - www-data:www-data (не изменяя их владение).

Здесь я принимаю также тему, Как избегать использования sudo при работе в/var/www? не покрывает Вам нужно. Например, Вы не хотите изменять полномочия под /var/www.

Я думаю, что самый самый легкий и ясный способ решить эту задачу состоит в том, чтобы смонтироваться /var/www (или определенный каталог внутри) в корневой каталог и изменение Вашего пользователя владелец Вашему пользователю и: группа. Это могло быть достигнуто инструментом bindfs:

sudo apt update && sudo apt install bindfs

Здесь мы смонтируем весь каталог /var/www в каталоге, названном также www/ и расположенный в корневом каталоге Вашего пользователя.

mkdir "$HOME/www"
sudo bindfs -u $(id -u) -g $(id -g) --create-for-user=www-data --create-for-group=www-data /var/www "$HOME/www"
  • Замены команды $(id -u) и $(id -g) возвратит UID и GID текущего пользователя.

  • Если Вы хотите выполнить вышеупомянутую команду для другого пользовательского использования $(id -u <user>) и $(id -g <user>). Где <user> фактическое имя пользователя.

  • Для получения дополнительной информации об аргументах, используемых с bindfs прочитайте его страницу руководства - man bindfs.

  • Если Вы хотите размонтироваться ~/www ($HOME/www) используйте команду:

    sudo fusermount -u ~/www
    

Смонтироваться /var/www в ~/www автоматически во время системного запуска добавляют следующую строку в нижнюю часть /etc/fstab:

bindfs#/var/www /home/<user>/www fuse force-user=<uid>,force-group=<gid>,create-for-user=www-data,create-for-group=www-data 0 0
  • Примечание: необходимо заменить <user> с фактическим именем пользователя; также должен заменить <uid> и <gid> с фактическим UID и GID <user>, можно найти их командами: id -u <user> и id -u <user>.
  • Видеть, что результат перезагружает систему или выполняется:

    sudo mount -a    # maybe you should execute `sudo fusermount -u ~/www` first 
    

Здесь анимирован демонстрация, как это работает:

enter image description here


Обновление:

Единственное ограничение этого подхода, который я нашел, - при изменении владения связывать каталога, это изменит владение также для исходного каталога. Например, следующая команда не является хорошей идеей:

chown -R $(id -u):$(id -g) $HOME/www

Возможно, существует подходящая опция для bindfs команда, которая предотвратит это для случая, но я не могу сказать это в данный момент.

Примечания:

3
ответ дан 2 December 2019 в 02:43

Другие вопросы по тегам:

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