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 noX11Forwarding 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_configsftpuser 的配置正确。特别是 ChrootDirectoryForceCommand 部分。

此例中,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

查找相关错误信息。

-完-

相关推荐
johnny2336 小时前
运维管理面板:AcePanel、OpenOcta、DeepSentry
运维
青梅橘子皮6 小时前
Linux---基本指令
linux·运维·服务器
REDcker7 小时前
Linux信号机制详解 POSIX语义与内核要点 sigaction与备用栈实践
linux·运维·php
cui_ruicheng8 小时前
Linux进程间通信(三):System V IPC与共享内存
linux·运维·服务器
蚰蜒螟8 小时前
深入 Linux 内核同步机制:从 futex 到 spinlock 的完整旅程
linux·windows·microsoft
运维全栈笔记8 小时前
Linux安装配置Tomcat保姆级教程:从部署到性能调优
linux·服务器·中间件·tomcat·apache·web
dllmayday9 小时前
Linux 上用终端连接 WiFi
linux·服务器·windows
ACP广源盛139246256739 小时前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑
峥无10 小时前
Linux系统编程基石:静态库·动态库·ELF文件·进程地址空间全景图
linux·运维·服务器
用户23678298016810 小时前
从 chmod 755 说起:Unix 文件权限到底是怎么算的?
linux