简介
这篇文章主要介绍了Linux下如何创建SFTP账号问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教,
确保可以使用 ssh,可以通过以下命令确认OpenSSH服务器是否正在运行:
sudo service ssh status
如果未运行,先安装 OpenSSH 服务器:
sudo apt-get install openssh-server
(新增用户) 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 为自定义用户家目录。
(打开配置文件) 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
(切换路径) cd /my_directory (修改 my_user 文件夹的 owner 为 root) sudo chown root my_user (修改为 my_user 文件夹的权限为 755) sudo chmod 755 my_user
因为家目录的所属用户必须为 root,否则无法登陆;
但是这样会导致其他用户无法上传文件,所以需要在家目录下建立自己的目录。
(创建文件夹) sudo mkdir share (修改所属用户) sudo chown my_user:my_group share
至此,账号创建完成,可以用命令或者 FileZilla 登陆,并上传文件测试。
可以将上述流程写到一个脚本里,下次创建脚本时只需要执行脚本就可以了。
- 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
按提示输入账号和密码,即可完成创建账号。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持腾创网。
以上本篇文章的全部内容了,感兴趣的小伙伴可以看看,更多精彩内容关注腾创网www.tengchuangw.com
© 版权声明
本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail: 571533527@qq.com
THE END
暂无评论内容