搭建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

重启SSH服务

posted @ 2024-07-02 11:31  张强0514  阅读(4)  评论(0编辑  收藏  举报