如何在Linux中设置SFTP上传权限 (linux sftp 上传权限)

Linux系统作为一个安全稳定的操作系统,在网络传输领域中占据着一席之地。作为一个Linux操作系统管理员,在管理Linux服务器时,经常会涉及到文件传输的操作。在文件传输的方式中,SFTP这种基于SSH加密安全协议的文件传输方式广受欢迎。

SFTP与FTP不同,SFTP基于SSH加密安全协议,实现了对数据传输的加密与协议状态数据的完整性保护,从而保证了数据传输的安全性。本文主要介绍。

一、安装OpenSSH服务

在CentOS或者RedHat系统中,安装OpenSSH服务的命令如下:

“`

yum -y install openssh-server

“`

Ubuntu或者Debian系统中,安装OpenSSH服务的命令如下:

“`

apt-get -y install openssh-server

“`

二、修改SSH服务配置文件

安装好SSH服务之后,我们需要找到SSH服务的配置文件sshd_config并修改其中的配置项,以实现SFTP上传权限的设置。根据实际情况,该文件的路径可能有所不同,一般位于/etc/ssh/sshd_config。

打开sshd_config文件,找到以下两行配置:

“`

#Subsystem sftp /usr/lib/openssh/sftp-server

Subsystem sftp internal-sftp

“`

在这两行配置前面添加以下内容:

“`

Match Group sftpgroup

ChrootDirectory /sftp/%u

ForceCommand internal-sftp

X11Forwarding no

AllowTcpForwarding no

“`

其中,Match Group sftpgroup表示只有属于组sftpgroup的用户可以使用SFTP,这里的sftpgroup可以自定义。ChrootDirectory /sftp/%u表示用户的根目录是/sftp/具体用户名,该目录下不能访问其他的目录,始终在/sftp/具体用户名目录下。ForceCommand internal-sftp表示强制使用SFTP协议。X11Forwarding no指定无法使用X11转发协议,提高安全性。 AllowTcpForwarding no也指定无法使用TCP转发协议,提高安全性。

三、创建SFTP用户组和SFTP用户

1. 创建SFTP用户组

我们可以使用以下命令来创建SFTP用户组:

“`

groupadd sftpgroup

“`

2. 创建SFTP用户并添加到SFTP用户组

我们可以使用以下命令来创建SFTP用户,并将其添加到SFTP用户组:

“`

useradd -d /sftp/test -g sftpgroup -s /in/nologin test

“`

其中-d参数指定用户家目录,-g参数指定用户组,-s参数指定用户登陆shell。

现在,我们已经成功创建了一个名为test的SFTP用户,并将其添加到SFTP用户组中。

四、设置SFTP用户访问权限

1. 创建SFTP用户家目录

我们可以使用以下命令来创建SFTP用户家目录:

“`

mkdir -p /sftp/test

“`

该目录将成为test用户的家目录。

2. 配置SFTP用户家目录权限

我们可以使用以下命令将test用户的家目录的权限修改为750:

“`

chmod 750 /sftp/test

“`

该命令的含义是,test用户可以对该目录读写,但其他用户只能读取。

五、使用SFTP进行文件上传测试

现在,我们已经成功设置了SFTP上传权限,接下来我们就可以使用SFTP协议进行文件上传测试。

在Windows系统中,我们可以使用WinSCP等SFTP客户端进行文件上传。在Linux系统中,我们可以使用以下命令:

“`

sftp test@192.168.1.101

“`

其中test为SFTP用户名,192.168.1.101为SFTP服务器IP地址。

上传文件的命令如下:

“`

sftp> put /root/test.txt

“`

这条命令将/root/test.txt文件上传到SFTP用户的家目录下。

六、

本文介绍了在Linux中设置SFTP上传权限的步骤。通过本文的介绍,我们可以快速配置一个安全可靠的SFTP文件上传系统,保护数据的安全性。

需要注意的是,SFTP与FTP协议不同,不需要单独设置FTP的passive mode(被动模式)或active mode(主动模式)等相关设置,也无需再开启其他端口提供服务,提高了安全性并且方便了使用。

相关问题拓展阅读:

centOS5.6,本地vmware安装,用SFTP连接的时候总是权限不足

如上所说你可以用root登陆Ftp,ftp是应用服务器登陆的用户也需要在ftp控制文件(配置文件设置,否则不能登陆,ftp只是只是文件操作登陆用root权限没用,也不安全,如果想有更多文件操作权限通过linux和ftp配置文件对文件夹授权就可以了,想远程管理用ssh

你说的还是不清楚。。。

到底是从centos往其它服务器sftp,还是别的机器用sftp连接本机?

往其它服务器sftp,用root用户登录:sftp root@ip地址或hostname

第二种情况也是用root用户sftp登录就是了

好像都跟root无法登录图形界面没啥关系,再说也可以放开root登录X权限

另外你用“su -”命令也没权限吗?

我装了一遍CentOS 5.6,root是可以登录的,root用户通过sftp也可以登录,上传下载都没问题

linux/centos普通用户sudo开启sftp

一般情况下,从安全考虑,root是禁止ssh登录,普通用户通过sudo操作,一般都没问题,但是要通过ftp传输文件就麻烦了,文件是属于root用户的,普通用户即使等登录也不袜轮能更改文件,也要加上sudo命令才能更改文件,通过winscp软件可以实现实现知丛这个功能,详细配置查看这个帖子:

配置图1(

)

配置-高级-SFTP    sudo /usr/libexec/openssh/sftp-server

配置图2(

)

配置-高级-Shell   sudo -i

附加背景知识:

在主流linux系统版本当中,默认都有安装openssl和openssh包,都有ssh命令,也就是说默认安装好了SFTP服务器和sftp命令,不需要额外配置vsftp。

sftp有两种实现

1.sftp-server默认实现

2.internal-sftp可更改用户对应的目录

本来考虑不用sudo,而是通过internal-sftp来实现,把普通用户加入到root用户组,把文件的root用户组权限加上写的权限来实现的,后来发现没用,

因为目录权限设置要遵循2点:

ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;

ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主告猛信能拥有写权限,权限更大设置只能是755。

如果不能遵循以上2点,即使是该目录仅属于某个用户,也可能会影响到所有的SFTP用户。

Linux基础命令 sftp命令的使用

SFTP(Secure File Transfer Protocol,安全文件传输协议)是一种基于可靠数据流(data stream),提供文件存取和管理的网络传输协议,与 FTP 协议相比,SFTP 在客户端与服务器间提供了一种更虚胡竖为安全的文件传输方式,如果你还在使用 FTP 来进行文件传输,强烈建议切换到更为安全的 SFTP 上来。

常用差大命令使用:

1.远端服务器当前做唤工作目录

sftp> pwd

Remote working directory: /

2.远端服务器切换目录

sftp> cd Directory

3.远端服务器建立目录

sftp> mkdir Directory

以上的命令都是用来操作远程服务器的,如果想要操作本地目录呢?只需要在每个命令前添加 l即可

4.显示本地操作目录下的文件:

sftp> lls

Files

5.使用 ! 可以直接运行 Shell 中的指令.

6.从远程服务器拉取文件

sftp> get remoteFile 如果不指定 newName,将使用和远程服务器相同的文件名。

7.从本地上传文件到服务器

linux sftp 上传权限的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux sftp 上传权限,如何在Linux中设置SFTP上传权限,centOS5.6,本地vmware安装,用SFTP连接的时候总是权限不足,linux/centos普通用户sudo开启sftp,Linux基础命令 sftp命令的使用的信息别忘了在本站进行查找喔。


数据运维技术 » 如何在Linux中设置SFTP上传权限 (linux sftp 上传权限)