众所周知SFTP账号是基于SSH账号的,所以在默认情况下访问服务器的权限是非常大的。下面为SFTP用户权限设置方法。
必要条件:
你的openssh-server版本至少得失4.8p1, 因为配置权限需要版本添加的新配置项ChrootDirectory来完成。
如何查看自己服务器上的ssh版本?大家可以尝试以下命令:
$ ssh -V
具体实施步骤:
1. 我们需要创建一个用户组,专门用于sftp用户
$ groupadd sftpusers
2. 我们创建一个用户test
$ useradd -s /bin/false -G sftpuser test
注意这里我们将test用户的shell设置为/bin/false使他没有登陆shell的权限
3. 编辑 /etc/ssh/sshd_config
找到Subsystem这个配置项,将其修改为
Subsystem sftp internal-sftp
然后再到文件最尾处增加配置设定属于用户组sftpusers的用户都只能访问他们自己的home文件夹
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
保存并关闭文件
4. 修改test用户home文件夹的权限,让其属于root用户
chown root ~test
5. 重启sshd服务
$ service sshd restart
6. 测试用户账号
$ ssh test@localhost
连接会被拒绝或者无法登陆
$ sftp tesst@localhost
登陆后你会发现你的账号无法切换到除自己home目录之外的地方的
常见问题:
如果你链接服务器的时候出现下面的提示:
Write failed: Broken pipe
Couldn't read packet: Connection reset by peer
这个问题的原因是ChrootDirectory的权限问题,你设定的目录必须是root用户所有,否则就会出现问题。所以请确保sftp用户根目录的所有人是root, 权限是 750 或者 755。
B. 如何远程打开文件
你先用 at命令让那台电脑执行一个简单的操作.
比如运行一个批处理,1.BAT
ECHO ABCD > C:\1.TXT
如果能顺利完成,会在那边的C盘生成 1.txt 文件.说明你的 at 命令是成功的.如果不行那你的 at 命令可能行不通了.
如果at命令成功再试你的木马,应该是可以的,如果不可以,你再看你放上去的木马还在不在,如果不在,应该是被杀病软件干掉了,如果还在.就是木马执行失败.
C. 微信小程序前端和远程服务器交互的问题
关于“小程序如何要把文件传送到远程服务器上”的问题,分以下几步:
1. 手机中上传文件,先使用wx.uploadFile接口
2. 把数据包装到 json对象中,用 wx.request.post 接口把数据发送到你的服务器
3.服务器要接收小程序发过来的数据,就要用到后端语言,如果没有接触过的话,就学 node.js或 PHP,环境怎样配置可以在网上搜索到
4.安装好环境后,学习一下怎样上传文件,并把上传的文件保存到服务器,这里的上传可以直接用先在网页中测试,网页中会上传后保存到服务器了,小程序中也应该就会了。
所以,现在的重要是你要先学会一门后端语言;当然 node.js就是 js,语法不用重复学,但后端的逻辑与前端是不一样的,自己看看网上的教程学一学。
D. 我把项目部署到远程的服务器上后我要怎么设置一下才能让外网能访问的到呢
步骤如下:
1、确保项目在MyEclipse上能够正常运行。
2、在Tomcat安装目录下的webapp目录中新建一个文件夹。
3、将META-INF文件夹、WEB-INF文件夹及所有的前端代码复制到第2步新建的文件夹中。
4、将build中的classes文件夹复制到WEB-INF文件夹中。
5、启动Tomcat即可访问,外网使用IP+端口也可以访问。
E. JQuery,JS 读取远程服务器的txt文件内容
注意几点:
1 一个是端口号,注意你自己设置的是哪个端口号
2 第二个是要保证txt格式中的文件是json格式 ,不然会没有返回值。
3 不要在本地直接打开 ,放在本地服务器上,apache之类的