半夜辗转难眠,爬起来打开电脑,听着狂野的音乐,决定把下午遇到的问题记录一下,给跟我遇到同样问题的兄弟们一个解决思路。
一.前言
宝贝们,如果你是服务器管理员,给别人服务器账号密码的时候,答应我一定要给他设置相应的权限好吗? 不要让他们随意查看你服务器的文件好吗?不要给他们输入命令的机会好吗?咳咳,敲黑板啦!!一定一定要控制着他们在你指定的目录下 呆着哦 😳😳
二.过程
- 一台可测试的服务器,没有就去给我花10几块钱买一个
- 使用root账号创建一个用户组,再创建一个用户归属于该组
//1.创建名叫 'candice' 的组
groupadd candice
//2.添加'candice'用户隶属于'candice'组
// -s /bin/false 将用户的shell设置为/bin/false,用户无法登录,并且不会有任何提示。简单的说就是不让他用shell登录
useradd -d /home/candice -m candice -g candice -s /bin/false
//3.给该用户设置密码,输入两次密码 搞定🤔
passwd candice
- 创建完自己个儿去/etc/group 和 /etc/passwd 去核对一下
- 然后修改/etc/ssh/sshd_config文件,在文件尾部加如下内容
Match User candice
ChrootDirectory /home/candice
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
敲黑板啦,此处划重点,请认真看
问题1. 第一次设置时在这儿卡住了,因为没有加到尾部,结果修改sshd_config文件后 重启失败,查了系统文件 报以下错误:Directive 'UseDNS' is not allowed within a Match block。查阅资料,原因是我下午操作 插入到了全局变量中间,也就是Match块的上下都有全局变量,导致无法显示结束Match块,结果报错啦。具体描述看这儿,所以最好是乖乖加到尾部哦!!
问题2.
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,权限最大设置只能是755。
// 问题2 解决方案 -- 修改/home/candice 拥有者和权限
chown candice:candice /home/candice
chmod 755 /home/candice
- 重启ssh
- root账号下 在/home/candice目录下 创建test文件夹
mkdir test/
-
连接服务器测试,上图咯
三.总结
你成不成功 我不知道,但是我成功了😝。文章结束,本抠脚小仙女 决定来根冰棍 压抑下一颗想出去玩耍的心。最后的最后,希望大家安好,在疫情期间 举全国之力,共同渡过难关 🙏🙏