Linux下如何进行SFTP用户权限设置

作者&投稿:卷瑞 (若有异议请与网页底部的电邮联系)
~ 必要条件:

你的openssh-server版本至少得失4.8p1, 因为配置权限需要版本添加的新配置项ChrootDirectory来完成。

如何查看自己服务器上的ssh版本?大家可以尝试以下命令:

$ ssh -V

具体实施步骤:

1. 我们需要创建一个用户组,专门用于sftp用户

$ groupadd sftpusers

2. 我们创建一个用户test

$ useradd -s /bin/false -G sftpuser test

注意这里我们将test用户的shell设置为/bin/false使他没有登陆shell的权限

3. 编辑 /etc/ssh/sshd_config

找到Subsystem这个配置项,将其修改为

Subsystem sftp internal-sftp

然后再到文件最尾处增加配置设定属于用户组sftpusers的用户都只能访问他们自己的home文件夹

Match Group sftpusers

ChrootDirectory %h

ForceCommand internal-sftp

AllowTcpForwarding no

保存并关闭文件

4. 修改test用户home文件夹的权限,让其属于root用户

chown root ~test

5. 重启sshd服务

$ service sshd restart

6. 测试用户账号

$ ssh test@localhost

连接会被拒绝或者无法登陆

$ sftp tesst@localhost

登陆后你会发现你的账号无法切换到除自己home目录之外的地方的

常见问题:

如果你链接服务器的时候出现下面的提示:

Write failed: Broken pipe

Couldn't read packet: Connection reset by peer

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


如何在Linux系统下设置代理服务器
如何在Linux系统下设置代理服务器?在Linux系统中,我们可以使用代理服务器来实现一些网络访问的限制或者加速。设置代理服务器并不难,下面我们来了解一下具体操作步骤。1.打开终端首先,在Linux系统中,我们需要使用终端来进行命令操作,因此需要先打开终端。2.安装代理服务器软件在Linux系统中有很多种代理服务...

Linux下如何分配磁盘空间linux分配磁盘空间
进行磁盘分区有两个主要的工作:一是划分分区;二是提供系统空间结构设置,一般最多分为4个分区,空间分布如下:\/swap空间(一般为内存的2~4倍),\/boot空间(一般为500MB),\/的总空间(一般3-5G),\/home 空间(一般为剩余空间)。Ubuntu系统下如何分配磁盘空间?1、 使用gparted工具,就可以完全...

使用cURL和wget在Linux上进行HTTP请求和下载
比如,如果你想将下载的文件存放到特定目录,只需使用-P参数,如:wget -P <directory> <URL>,这样文件就会整齐地落在指定的家园。无论是cURL的多功能性还是wget的简洁高效,Linux终端下的这两个工具都是你探索网络世界,下载所需资源的强大后盾。掌握它们,让你在命令行世界中游刃有余。

在linux系统中进行编程的具体流程是什么?麻烦说具体点,谢谢喽_百度知 ...
有些芯片没有内置引导装载程序,例如三星的ARM7、ARM9系列芯片,这样就需要编写开发板上Flash的烧写程序,网络上有免费下载的Windows下通过JTAG并口简易仿真器烧写ARM外围Flash芯片的烧写程序,也有Linux下的公开源代码的J-Flash程序。如果不能烧写自己的开发板,就需要根据自己的具体电路进行源代码修改。这是...

linux终端下如何进行C语言编译
1、首先在linux下判断是否安装gcc编译器,直接执行:gcc -v,判断是否安装gcc。2、然后需要在代码框内写一个简单的C源程序。3、在程序中使用了C语言中的数学开方函数,sqrt(),所以需要引入math.h头文件。4、写完源程序之后,我们对其进行编译,如果使用通常的编译语句,【gcc math.c -o math】进行...

linux如何配置启动http服务器
,来测试HTTP服务器是否正常工作。如果一切正常,将显示已经配置的文档根目录下的默认页面。总的来说,在Linux上配置和启动HTTP服务器需要一定的技术知识,需要仔细阅读相应的文档并按照要求进行操作。如果您不熟悉Linux系统和HTTP服务器的配置,建议先学习相关的基础知识再进行操作,或者寻求专业人士的帮助。

Linux系统下对硬盘分区进行扩容的方法总结
2,不能实现无缝扩容,也就是说,在后台扩容一下,不用登录到VPS,进行调整。非专业人士,扩容困难一,不采用lvm,直接将硬盘挂载到目录1,查看硬盘分区情况代码如下:[root@iZ94zz3wqciZ ~]# dfFilesystem 1K-blocks Used Available Use% Mounted on\/dev\/xvda1 20641404 14778400 4814480 76% \/tmpfs 509300 0 ...

linux怎么运行sh文件linux怎么运行sh
centos5.5怎么开机自动运行.sh脚本?centos属于普通的linux系统。放在\/etc\/rc.d\/rc.local下就可以启动了。。编辑rc.local这个文件。写下路径和程序。如何在Windows下运行linuxshell脚本?在工作中情况会在碰到linux下进行执行shell的脚本,而就会使用shell的脚本,但经常使用的Windows的系统,而想在Windows...

linux线程是如何进行切换的?
在不支持内核抢占的Linux内核中,即使0号线程需要调度,内核不会立即调度线程1或线程2。只有在用户态中断或系统调用后检查是否需要调度。反之,在支持内核抢占的Linux内核中,中断返回时会检查当前进程是否需要调度。若需要,调度器将选择下一个进程,并进行上下文切换。内核线程创建时会设置PC寄存器与SP寄存器...

如何在linux下进行cmake的安装?
CMake是一款跨平台的安装和编译工具,能够通过简洁的指令描述安装过程,广泛应用于C和C++中间件的安装,例如nginx、redis、memcached、mysql等。在Linux下安装CMake的步骤如下:首先,下载CMake并解压。进入解压后的目录,执行安装命令。运行命令后,查看CMake的版本,如显示相关信息则表示安装完成。对于Ubuntu...

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网