快使用Ctrl+D收藏本站!本站早已不再维护,择期将关闭本站!!本站资源已全部失效,请勿打赏!!PLC培训创业官网 苏州实操派科技-点击访问-

记坑爹的Linux服务器设置用户权限用sftp访问固定文件夹

网站搭建 π³朱子文 5446℃ 0评论

#新增用户
useradd username
#设置密码
passwd username
#连续输两次密码完成用户设置

#删除用户
userdel username
#删除用户及删除创建的文件夹
userdel -r username

#查看用户是否添加
tail /etc/passwd

#修改sshd_config文件,建议先备份

cp sshd_config sshd_config.back // 备份

#使用vi进入文件修改
vi /etc/ssh/sshd_config

#enter进入后,按I键,insert插入
#找到下面这行,前面加上#号,注释掉
#Subsystem sftp /usr/libexec/openssh/sftp-server

#在文件的最下方加入以下代码
Subsystem sftp internal-sftp

#实现username账号访问固定文件夹
Match User username

        ChrootDirectory /data/nginx/wwwroot/default/source/plugin
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp

#下面开始更改权限,首先从根目录看起
cd data到根目录
ls -l看权限

一层一层的看下去,要求权限都是755

常见的权限表示形式有:
-rw——- (600) 只有拥有者有读写权限。
-rw-r–r– (644) 只有拥有者有读写权限;而属组用户和其他用户只有读权限。
-rwx—— (700) 只有拥有者有读、写、执行权限。
-rwxr-xr-x (755) 拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx–x–x (711) 拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) 所有用户都有文件读、写权限。
-rwxrwxrwx (777) 所有用户都有读、写、执行权限。

要求从根目录开始到最后要指定的文件夹为止,都需要是755权限,所有者都是root,用户组也是root

#建议按如下指令设置一下
sudo chmod 755 /data

#然后设置username属于root用户组,指定其成为 some_dir 某个文件夹的所有者,这样username就具有了some_dir的读写权限
sudo chown -R username:root /datas/nginx/wwwroot/default/source/plugin/some_dir

这里要求some_dir在上图写的路径下面

#重启ssh服务
service sshd restart

#尝试登陆sftp
sftp -oPort=端口号 username@192.168.1.1(你的IP)

可能会登陆失败
如果你链接服务器的时候出现下面的提示:

Write failed: Broken pipe
Couldn’t read packet: Connection reset by peer

这个问题的原因是ChrootDirectory的权限问题,你设定的目录必须是root用户所有,否则就会出现问题。所以请确保sftp用户根目录的所有人是root, 权限是 750 或者 755。注意以下两点原则:

目录开始一直往上到系统根目录为止的目录拥有者都只能是 root,用户组可以不是 root。

目录开始一直往上到系统根目录为止都不可以具有群组写入权限

上面2点一定注意,仔细检查。我就是因为这个问题,导致一直有这个问题。仔细检查配置后,解决问题。

转载请注明:燕骏博客 » 记坑爹的Linux服务器设置用户权限用sftp访问固定文件夹

赞赏作者

微信赞赏支付宝赞赏

喜欢 (1)or分享 (0)

如果您喜欢本站文章,感觉本站的资源对您有帮助,请狠狠点击下面

每累计赞助40元,即可让本站按最低配置运行一个月,感谢您的支持!

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址