搭建sftp并且保证普通用户有权限操作对应文件
创建SFTP用户组
为SFTP用户创建一个专用组:
groupadd sftpusers
创建SFTP用户
创建SFTP用户splsz并将其添加到sftpusers组,同时指定用户的主目录和禁止shell访问:
useradd -g sftpusers -s /sbin/nologin splsz
passwd splsz
创建目录结构
sudo mkdir -p /home/zhangqiang/davinci/data/test/vedio_qrCode
sudo mkdir -p /home/splsz/upload
设置目录权限
为普通用户和SFTP用户设置目录权限:
# 确保普通用户拥有上传目录的所有权
sudo chown -R zhangqiang:zhangqiang /home/zhangqiang/davinci/data/test/vedio_qrCode
sudo chmod 755 /home/zhangqiang/davinci/data/test/vedio_qrCode
# 确保SFTP用户的根目录由root拥有,并且上传目录由SFTP用户拥有
sudo chown root:root /home/splsz
sudo chmod 755 /home/splsz
sudo chown splsz:sftpusers /home/splsz/upload
sudo chmod 755 /home/splsz/upload
配置绑定挂载或者创建软链接 二选一
绑定挂载
将普通用户的上传目录绑定挂载到SFTP用户的根目录:
sudo mount --bind /home/zhangqiang/davinci/data/test/vedio_qrCode /home/splsz/upload
为了在重启时自动挂载,编辑/etc/fstab文件,添加以下行:
/home/zhangqiang/davinci/data/test/vedio_qrCode /home/splsz/upload none bind 0 0
创建软链接
ln -s /home/zhangqiang/davinci/data/test/vedio_qrCode /home/splsz/upload
配置sshd_config
编辑OpenSSH的配置文件/etc/ssh/sshd_config,添加或修改以下配置:
# 取消注释并修改 Subsystem
Subsystem sftp internal-sftp
# 追加以下配置
Match User splsz
ChrootDirectory /home/splsz
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
设置文件的默认ACL
确保安装了acl工具:
sudo yum install -y acl
设置默认的ACL:
sudo setfacl -d -m u:zhangqiang:rwx /home/zhangqiang/davinci/data/test/vedio_qrCode
sudo setfacl -d -m g:sftpusers:rwx /home/zhangqiang/davinci/data/test/vedio_qrCode
sudo setfacl -R -m u:zhangqiang:rwx /home/zhangqiang/davinci/data/test/vedio_qrCode
sudo setfacl -R -m g:sftpusers:rwx /home/zhangqiang/davinci/data/test/vedio_qrCode
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程使用 AI 从 0 到 1 写了个小工具
· 快收藏!一个技巧从此不再搞混缓存穿透和缓存击穿
· AI 插件第二弹,更强更好用
· Blazor Hybrid适配到HarmonyOS系统
· 支付宝 IoT 设备入门宝典(下)设备经营篇