Ubuntu下创建sftp帐号

Ubuntu server上只有一个root用户,且通过ssh key方式登录服务器。

现需要需要创建一个测试帐号,用于给测试人员上传代码用,该帐号不需要用到ssh key。

步骤如下:

1、创建用户

bash 复制代码
sudo adduser sftpuser

在创建用户时,系统会提示你设置密码和其他信息。完成后,用户的主目录将默认设置为 /home/sftpuser。

2、修改用户主目录

bash 复制代码
sudo usermod -d /var/www/ims sftpuser

将用户的主目录修改为 /var/www/ims。

3、设置目录权限

bash 复制代码
sudo chown root:root /var/www/ims
sudo chmod 755 /var/www/ims

确保 /var/www/ims 目录的权限正确,以便 sftpuser 可以访问。

然后,在 /var/www/ims 目录下创建一个子目录,用于 sftpuser 上传文件。

bash 复制代码
sudo mkdir /var/www/ims/upload
sudo chown sftpuser:sftpuser /var/www/ims/upload

4、配置SSH以限制sftpuser的访问

编辑SSH配置文件 /etc/ssh/sshd_config,添加以下内容:

bash 复制代码
Match User sftpuser
    ChrootDirectory /var/www/ims
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no
    PasswordAuthentication yes
    PubkeyAuthentication no
  • Match User sftpuser:指定要限制的用户。

  • ChrootDirectory /var/www/ims:将用户的根目录限制为 /var/www/ims。

  • ForceCommand internal-sftp:强制用户只能使用SFTP,不能使用SSH shell。

  • AllowTcpForwarding no 和 X11Forwarding no:禁用端口转发和X11转发。

  • PasswordAuthentication yes:允许密码认证。

  • PubkeyAuthentication no:禁用公钥认证。

5、重启SSH服务

bash 复制代码
sudo systemctl restart ssh

6、测试sftp访问

bash 复制代码
sftp sftpuser@your_server_ip

7、验证权限

bash 复制代码
cd /home

如果配置正确,你应该会收到权限被拒绝的错误。

通过以上步骤, 你已经成功创建了一个只能访问 /var/www/ims 目录的SFTP账户,并且限制了其对其他目录的访问。

如果不成功,可以按以下步骤排查:

1、检查SSH配置

确保 /etc/ssh/sshd_config 中 sftpuser 的配置正确。特别是 ChrootDirectory 和 ForceCommand 部分。

此例中,sftpuser的主目录是/var/www/ims。

2、检查目录权限

用户主目录及其上层直至根目录的所有目录权限都应该是root:root,755

bash 复制代码
ls -ld /var/www/ims

输出应该类似于:

bash 复制代码
drwxr-xr-x 2 root root 4096 Oct  1 12:34 /var/www/ims
  • drwxr-xr-x:表示权限为 755。

  • root root:表示所有者和组均为 root。

ims的上级目录权限也应该如此。

3、检查SSH日志

bash 复制代码
sudo tail -f /var/log/auth.log

查找相关错误信息。

-完-

相关推荐
for_ever_love__3 分钟前
忠实度(Faithfulness):怎么判断 RAG 的答案有没有瞎编
linux·rag·评估·答案·faithfulness·原文·忠实度
橙色云-智橙协同研发8 分钟前
汽车零部件行业:如何应对主机厂的严苛审核?
大数据·运维·服务器·人工智能·安全
fengkai454512 分钟前
十四、ELK 企业日志分析系统
运维·elk·日志
程序员-Benothing14 分钟前
Linux系统监控工具全家桶:sar、dstat、glances、Prometheus
linux·运维·prometheus
flytalei33 分钟前
从YAML到Nginx服务访问:动手理解 Kubernetes Pod、Deployment 与 Service
运维·nginx·kubernetes
白帽攻防录41 分钟前
SRC 挖洞:DHCP 服务器上的四个 UAF,内网原生 RCE 怎么打域管
运维·服务器·网络安全·内网安全
王琦03181 小时前
jenkins使用手册
运维·jenkins
VidDown1 小时前
用户说“卡顿“,服务器一切正常:播放质量监测与 QoE 指标
运维·服务器·ffmpeg·音视频·视频
瑞克-桑切斯2 小时前
13、DNS、DHCP 与 FTP 协议详解
linux·运维·云计算
程序员-Benothing2 小时前
Linux性能分析方法论:USE、RED、火焰图与perf实战
linux·运维·服务器