本篇文章总结了别人的博客而写成的,在这里感谢这些博主。
环境:ubuntu16.04及以上
1.打开终端检查是否已经安装了ssh在终端下输入ssh
~# ssh
2.出现图片中的结果就说明以及安装了ssh
3.如果没有安装,输入以下的命令安装ssh服务器,sudo是用管理员的权限执行
~# sudo apt-get install openssh-server
4.安装好了之后,可以查看ssh服务器是否启动
~# ps -ef | grep ssh
5.启动服务后,开始新建用户组ssh-users和sftp-users,ssh-users是用来管理ssh服务器的用户组,sftp-users是访问sftp服务器的用户组
~# sudo addgroup ssh-users
~# sudo addgroup sftp-users
6.将系统管理员加入到ssh-users用户组,-a是不将该用户从原来的组中删除,-G group_name 是指出需要加入的用户组
~# sudo usermod -a -G sftp-users adminId
7.给文件系统建立主文件sftp_root,用cd /home/命令进入home目录,然后创建主目录sftp_root
~# cd /home/
~# sudo mkdir sftp_root
8.下一步修改ssh的配置文件,输入下面的命令进入配置文件
~# sudo vim /etc/ssh/sshd_config
9.按下i键,进入插入模式,指针移动到随后回车调到下一行,输入以下内容。不要输入其他无关的内容,不然ssh服务器无法重启。
#只允许ssh-users及sftp-users通过SSH访问文件系统
AllowGroups ssh-users sftp-users
# 针对sftp-users用户
Match Group sftp-users
# 将/home/sftp_root设置为该组用户的系统根目录
ChrootDirectory /home/sftp_root
# 禁止TCP Forwarding和X11 Forwarding
AllowTcpForwarding no
X11Forwarding no
# 强制该组用户仅仅使用sftp
ForceCommand internal -sftp
10.最后重启ssh服务器,管理员用户就可以访问sftp服务器了
~# service ssh restart
下面说一下如何创建子目录和sftp的用户,并为之赋予相关的权限。按照1.2.3步骤就可以建立多组用户并设置权限了。
1.创建用户组,例如:student用户组
~# sudo addgroup /home/sftp_root/student
2.创建该用户组的文件夹,并将该文件夹修改为管理员和student用户组所有,并设置只有拥有者和用户组有权进行读写运行
~# sudo mkdir student
~# sudo chown adminId:student /home/sftp_root/student
~# sudo chmod 770 /home/sftp_root/student
3.创建该组的用户,并进行相关设置,进行下面的一组命令,若要创建多个用户,只需修改用户名即可
3.1 新建用户,这里用useradd命令而不用adduser命令
~# sudo useradd student001
3.2 修改密码
~# sudo passwd student001
3.3 输入密码,再次输入密码
例如:12345678 回车 12345678 回车
3.4 将student001用户添加到sftp-users用户组下并关闭其shell访问
~# sudo usermod -G sftp-users -s /bin/false student001
3.5 将student001用户添加到student用户组
~# sudo usermod -a -G student student001
下面说一下文件访问客户端Filezilla,客户端有很多,感兴趣可以自行搜索。
官网https://www.filezilla.cn/
Filezilla支持各种文件管理,觉得用着很方便。
注:以上可能会有错误的地方,欢迎指出。