注册
|
登录
发帖
热搜
活动
交友
discuz
论坛
BBS
翼度工具
翼度网址导航
开发工具
Linux命令速查
网页设计配色表
在线制作icon
颜色代码选取器
翼度科技
»
论坛
›
云主机
›
服务器技术
›
查看内容
返回列表
发新帖
Linux下如何创建SFTP账号
乔爷
乔爷
当前离线
积分
12
4
主题
4
帖子
12
积分
新手上路
新手上路, 积分 12, 距离下一级还需 38 积分
新手上路, 积分 12, 距离下一级还需 38 积分
积分
12
发消息
显示全部楼层
前置要求
确保可以使用 ssh,可以通过以下命令确认OpenSSH服务器是否正在运行:
sudo service ssh status
复制代码
如果未运行,先安装 OpenSSH 服务器:
sudo apt-get install openssh-server
复制代码
1.新增用户 my_user,所属组 my_group
(新增用户)
sudo useradd -g my_group -s /bin/false -d /my_directory/my_user my_user
(修改密码)
sudo passwd my_user
复制代码
my_user 为用户名,my_group 为用户组名,/my_directory/my_user 为自定义用户家目录。
2.修改配置
(打开配置文件)
sudo vim /etc/ssh/sshd_config
(编辑)
按 i
(新增配置)
Match User my_user
ChrootDirectory /my_directory/my_user
ForceCommand internal-sftp
(保存并退出)
先按 esc,再输入 :wq 回车
(重启配置)
sudo systemctl restart sshd
复制代码
3.修改家目录权限
(切换路径)
cd /my_directory
(修改 my_user 文件夹的 owner 为 root)
sudo chown root my_user
(修改为 my_user 文件夹的权限为 755)
sudo chmod 755 my_user
复制代码
4.在家目录下创建子目录
因为家目录的所属用户必须为 root,否则无法登陆;
但是这样会导致其他用户无法上传文件,所以需要在家目录下建立自己的目录。
(创建文件夹)
sudo mkdir share
(修改所属用户)
sudo chown my_user:my_group share
复制代码
至此,账号创建完成,可以用命令或者 FileZilla 登陆,并上传文件测试。
5.上述命令脚本化
可以将上述流程写到一个脚本里,下次创建脚本时只需要执行脚本就可以了。
5.1 创建
.sh
复制代码
文件
sudo vim sftp-conf.sh
复制代码
5.2 按
i
复制代码
进入编辑模式,复制粘贴如下代码:
MAX_ATTEMPTS=3
attempt=1
password_match=false
while [ $attempt -le $MAX_ATTEMPTS ]; do
# 提示用户输入用户名
echo "请输入用户名:"
read username
# 提示用户输入密码
echo "请输入密码:"
read -s password1
echo "请再次输入密码:"
read -s password2
# 检查密码是否一致
if [ "$password1" != "$password2" ]; then
echo "两次输入的密码不一致。"
else
echo "--------------------------------------------------"
echo "密码输入正确,执行命令开始."
echo "新增SFTP用户 $username..."
useradd -g my_group -s /bin/false -d /my_directory/$username $username
echo "设置密码..."
echo "$username:$password1" | chpasswd
echo "修改配置文件..."
# 在配置文件中新增一行
sed -i '/# .sh append/a Match User '"$username"'\nChrootDirectory /my_directory/'"$username"'\nForceCommand internal-sftp' /etc/ssh/sshd_config
echo "切换路径..."
cd /my_directory
echo "创建用户文件夹..."
mkdir $username
echo "修改文件夹 owner 为 root..."
chown root $username
echo "修改为文件夹的权限为 755..."
chmod 755 $username
echo "进入文件夹..."
cd $username
echo "创建 files 文件夹..."
mkdir files
echo "修改所属用户..."
chown $username:my_group share
echo "--------------------------------------------------"
echo "命令执行完毕。账户创建完成,账户目录为 /my_directory/$username"
password_match=true
break
fi
attempt=$((attempt + 1))
done
if [ "$password_match" = false ]; then
echo "密码输入错误次数超过限制。"
fi
复制代码
5.3 按
esc
复制代码
退出编辑模式,输入
:wq
复制代码
保存并退出
5.4 运行脚本
./sftp-conf.sh
复制代码
按提示输入账号和密码,即可完成创建账号。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
来源:
https://www.jb51.net/server/322211qv5.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
上一篇:
Nginx代理接口访问返回404的实现示例
下一篇:
Linux下sftp登录失败的解决方案
发表于 2024-6-11 21:30:04
举报
回复
使用道具
分享
返回列表
发新帖
本版积分规则
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
快速回复
快速回复
返回顶部
返回顶部
返回列表
返回列表