可以按照如下方式进行设置:
1、创建sftp组,groupadd sftp,创建完成之后使用cat /etc/group命令组的信息。
2、创建一个sftp用户mysftp并加入到创建的sftp组中,同时修改mysftp用户的密码,useradd -g sftp -s /bin/false mysftp,passwd mysftp 。
3、新建/data/sftp/mysftp目录,并将它指定为mysftp组用户的home目录,mkdir -p /data/sftp/mysftp,usermod -d /data/sftp/mysftp mysftp。
4、编辑配置文件/etc/ssh/sshd_config,vi /etc/ssh/sshd_config,将如下这行用#符号注释掉。
5、设置Chroot目录权限,chown root:sftp /data/sftp/mysftp,chmod 755 /data/sftp/mys。
6、新建一个目录供stp用户mysftp上传文件,这个目录所有者为mysftp所有组为sftp,所有者有写入权限所有组无写入权限,mkdir /data/sftp/mysftp/upload,chown mysftp:sftp /data/sftp/mysftp/upload,chmod 755 /data/sftp/mysftp/upload。
7、关闭selinux并重启sshd服务,然后测试。
8、在其他服务器上进行验证,sftp 用户名@ip地址。
拓展资料1、sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。
2、其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。
网上大部分文章都是人云亦云,能把为什么这么设置讲得清楚的,可以参考这两篇https://blog.csdn.net/qq_15000459/article/details/108108625
https://www.maixj.net/ict/ssh-sftp-21993
我的需求是可以设置多个账号,可以共享访问目录,可以看到某个文件是谁创建的
首先要创建用户组
然后在这个组内添加用户
-g用于指定用户组,-s用于指定login shell,用/sbin/nologin则不允许该用户ssh登录。-M表示不创建该用户的home目录
接着给这些用户生成密码
接着,准备ftp的根目录。我用的是/home/sftp。按照规则,这个根目录/home/sftp拥有者只能是root,而且权限最高位755。如果这个目录是用root用户创建的,则默认就是满足的。为了给sftp用户传文件,只能在/home/sftp下面再建一层子目录,把这层子目录的拥有者改为sftp组的某个用户,并把权限改为775,让组内其他成员也可以读写
再然后,就是修改sshd的配置了。vi /etc/ssh/sshd_config,注释掉
Subsystem sftp/usr/libexec/openssh/sftp-server
一行,然后加上
重启sshd
教程: 原文链接
如果是采用vm虚拟机安装服务,建议安装之前做一个快照:虚拟机---快照---拍摄快照。
第二行命令:将alice用户从所有其他用户组移除,并加入到sftp_users组,并且关闭shell访问
6.修改配置文件
内容如下:
7.重启系统
8.工具验证winscp
ailce用户只对share目录有权限
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)