настройка sftp для входа на сервер с файлом zilla

Вы приближаетесь к достижению ваших целей с заданной иерархией файлов и достаточно надежны.

Если безопасность является вашей основной задачей, вероятно, рекомендуется поддерживать сайты в /home/$USER/public_html. Это хорошо известное соглашение (вспомогательная поддержка), позволяет избежать разбиения пользовательских данных на несколько несвязанных друг с другом иерархии (вспомогательная поддержка и помогает автоматизировать процедуры резервного копирования) и требует меньше ручного вмешательства (т. Е. Меньше ошибок - скажем, вы вводите «o» вместо из 'g' в вашей команде chmod и не замечайте).

Если вы изменили структуру файла как часть перехода от однопользовательских сайтов, вам может понадобиться исследовать vhosts. [ ! d2]

1
задан 12 April 2018 в 12:17

3 ответа

Здесь я предполагаю, что вы успешно 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/<user>/www
Подстановки команд $(id -u) и $(id -g) вернут UID и GID текущего <user>. Где <user> является фактическим именем пользователя. Если вы хотите выполнить указанную выше команду для другого пользователя, используйте $(id -u <user>) и $(id -g <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
Подстановки команд $(id -u) и $(id -g) вернут UID и GID текущего <user>. Где <user> является фактическим именем пользователя.

Подстановки команд $(id -u) и $(id -g) вернут UID и GID текущего <user>. Если <user> является фактическим именем пользователя.

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

Чтобы увидеть результат, перезагрузите систему или выполните:

Вот анимированный demo как это работает:

Как избежать использования sudo при работе в / var / www?

Обновление: 29]

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

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

1
ответ дан 22 May 2018 в 11:28
  • 1
    Я считаю, что понимаю логику и так далее, но, допустим, если я настрою это для другого пользователя? Я попытался заменить $USER на другое имя пользователя, но дал мне что-то вроде этого Not a valid group ID: – Dora 12 April 2018 в 21:35
  • 2
    имя пользователя существует, хотя я могу использовать filezilla для sftp с именем пользователя и паролем – Dora 12 April 2018 в 21:36
  • 3
    Привет, @Dora, используйте команду id filezilla для финиша, к которой принадлежит пользователю filezilla. Затем используйте эту группу, где это необходимо. Если вы хотите опубликовать вывод id filezilla, возможно, я мог бы помочь. – pa4080 12 April 2018 в 21:48
  • 4
    oh oops by filezilla Я имел в виду программное обеспечение ftp с gui. в любом случае я использовал id username, как вы упомянули, и это результат uid=1002(username) gid=1002(ftpaccess) groups=1002(ftpaccess),33(www-data) – Dora 12 April 2018 в 21:51
  • 5
    @Dora: вы прочитали эту замечательную тему: Как избежать использования sudo при работе в / var / www? ... Подход, который я предложил здесь, отличается, но таким образом вы сможете более свободно управлять файлами. – pa4080 12 April 2018 в 21:59

Здесь я предполагаю, что вы успешно 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/<user>/www Подстановки команд $(id -u) и $(id -g) вернут UID и GID текущего <user>. Где <user> является фактическим именем пользователя. Если вы хотите выполнить указанную выше команду для другого пользователя, используйте $(id -u <user>) и $(id -g <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 Подстановки команд $(id -u) и $(id -g) вернут UID и GID текущего <user>. Где <user> является фактическим именем пользователя.

Подстановки команд $(id -u) и $(id -g) вернут UID и GID текущего <user>. Если <user> является фактическим именем пользователя.

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

Чтобы увидеть результат, перезагрузите систему или выполните:

Вот анимированный demo как это работает:

Как избежать использования sudo при работе в / var / www?

Обновление:

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

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

1
ответ дан 17 July 2018 в 17:00

Здесь я предполагаю, что вы успешно 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/<user>/www Подстановки команд $(id -u) и $(id -g) вернут UID и GID текущего <user>. Где <user> является фактическим именем пользователя. Если вы хотите выполнить указанную выше команду для другого пользователя, используйте $(id -u <user>) и $(id -g <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 Подстановки команд $(id -u) и $(id -g) вернут UID и GID текущего <user>. Где <user> является фактическим именем пользователя.

Подстановки команд $(id -u) и $(id -g) вернут UID и GID текущего <user>. Если <user> является фактическим именем пользователя.

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

Чтобы увидеть результат, перезагрузите систему или выполните:

Вот анимированный demo как это работает:

Как избежать использования sudo при работе в / var / www?

Обновление:

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

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

1
ответ дан 23 July 2018 в 17:51

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

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