设置sftp以使用文件zilla登录服务器
我在aws
上有一个ec2 instance
,它已经安装了一些wordpress
。 我想让更多人处理他们自己的项目,如果我还想,我也可以使用终端进入服务器。
我一直在关注如何在Ubuntu上设置受限SFTP服务器等教程?
和其他一些人。 我认为所有这些都只是教导如何sftp
进入他们自己的主文件夹,也是步骤一直说addUser
但一些用户已经存在,删除它们可能会导致一些问题。
如何为现有用户授予使用sftp进行wordpress项目的权限。
假设我所有的wordpress项目已经在/var/www/
下已经设置了www-data:www-data
。
设置这样的东西真的很新。
在此先感谢您的帮助。
在这里,我假设您能够成功地ssh / sftp到用户的主目录,并且您想要(在您的用户下)编辑用户所拥有的/var/www
下的文件和文件夹,并且:group
– www-data:www-data
(不改变其所有权)。
在这里我还假设在/ var / www中工作时如何避免使用sudo? 不满足你的需求。 例如,您不想更改/var/www
下的权限。
我认为解决此任务最简单明了的方法是将/var/www
(或内部某些目录)挂载到用户的主目录中,并将所有者更改为您的用户和:group。 这可以通过工具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
和) $(id -g
。) -
有关
bindfs
rad使用的参数的更多详细信息,请bindfs
手册页 –man bindfs
。 -
如果要卸载
~/www
($HOME/www
),请使用以下命令:sudo fusermount -u ~/www
要在系统启动期间自动在/var/www
中挂载/var/www
,请将以下行添加到/etc/fstab
的底部:
bindfs#/var/www /home//www fuse force-user=,force-group=,create-for-user=www-data,create-for-group=www-data 0 0
- 注意:您应该将
替换为实际的用户名; 也应该用
的实际UID和GID替换
和
,你可以通过以下命令找到它们:id -u
和id -u
。 -
要查看结果,请重启系统或执行:
sudo mount -a # maybe you should execute `sudo fusermount -u ~/www` first
这是动画演示如何工作:
更新:
我发现这种方法的唯一限制是当您更改绑定目录的所有权时,这将更改源目录的所有权。 例如,下一个命令不是一个好主意:
chown -R $(id -u):$(id -g) $HOME/www
也许bindfs
命令有一个合适的选项可以防止这种情况发生,但我现在还说不清楚。