上一篇博客中提到了winscp这个软件,这个软件可以利用sftp协议对linux服务器就行连接,然后方便我们对文件进行操作,但是如果是利用普通用户进行登陆的话,在对文件进行相关操作的时候会出现一些permission denied的提示,并且错误的返回码是3,以下就针对这个问题提供解决方法。
1.查看sftp应用程序的路径,这个路径在后面设置winscp的时候需要使用:
cat /etc/ssh/sshd_config | grep sftp
终端显示的结果如下:
2.设置用户权限:
vim /etc/sudoers
然后在打开的文本中找到下面的语句:
root ALL=(ALL) ALL
按下键盘i启用插入模式,在root ALL=(ALL) ALL结尾处按回车在其下面增加以下语句(我的用户名为ubuntu,你需要改成自己的用户名)
ubuntu ALL=NOPASSWD:/usr/libexec/openssh/sftp-server
修改后先按下键盘ESC键,然后向上找到下面语句
Defaults requiretty
按下键盘i启用插入模式,在Defaults requiretty 前面加#号把该语句注释掉,注意:如果在文本中没有找到该语句,则只要完成 在root ALL=(ALL) ALL结尾处按回车在其下面增加以下语句 这一步即可!
最后保存退出编辑,输入命令
:wq
如果改错了想从新再来不想保存退出,敲入命令(注意是3个字符)
:q!
3、在winscp端进行设置
输入主机名(即IP地址)、用户名和密码,然后点击高级
在箭头所指位置输入sudo + sftp应用程序的路径
点击Shell,在框框内输入sudo -即可
最后点击确定,然后点击保存,在进行登入就可以完成文件操作了!