У меня есть ec2 экземпляр на AWS, который уже установил некоторых Wordpress-es в нем. Я хочу настроить вещи позволить большему количеству людей обработать свои собственные проекты со мной также способность войти в сервер с помощью терминала, если я все еще хочу.
Я следовал учебным руководствам такой как, Как установить ограниченный сервер SFTP на Ubuntu? и немногие другие. Я полагал, что все они просто учат пользователей как к sftp
в их собственную домашнюю папку также шаги продолжают говорить addUser
но некоторые пользователи уже существовали, и удаление их могло бы вызвать некоторую проблему.
Как я могу дать существующим пользователям разрешение использовать SFTP для проектов Wordpress?
Скажем, все мои проекты Wordpress уже находятся под /var/www/
который был уже настроен с www-data:www-data
.
Действительно новый с установкой вещей как это.
Заранее спасибо за любую справку.
Здесь я предполагаю, что Вы можете к 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
Здесь анимирован демонстрация, как это работает:
Обновление:
Единственное ограничение этого подхода, который я нашел, - при изменении владения связывать каталога, это изменит владение также для исходного каталога. Например, следующая команда не является хорошей идеей:
chown -R $(id -u):$(id -g) $HOME/www
Возможно, существует подходящая опция для bindfs
команда, которая предотвратит это для случая, но я не могу сказать это в данный момент.
Примечания: