linux的ftp权限,ftp的读取和写入权限

今天给各位分享linux的ftp权限的知识,其中也会对ftp的读取和写入权限进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

如何在linux下开启FTP服务

Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令rpm-qa|grepvsftpd来查看是否安装相应的包,如果没有安装那么可以执行yum-yinstallvsftpd来安装,安装之后首先创建ftp用户,比如ftp_test,命令如下:

useradd-s/sbin/nologin-d/home/ftp_testftp_test

目录尽量不要选择根目录下,这里是/home/ftp_test,并且ftp_test这个目录不要手动创建,否则权限会有问题,执行命令的时候会自动创建,

可以看到权限现在是对于ftp_test用户是可读可写可执行的,其他用户和组下面的都没有任何权限,现在为ftp_test用户创建密码:

passwd ftp_test

执行之后输入2次密码确认就设置好了密码

然后编辑vsftpd配置文件,位置是:vim/etc/vsftpd/vsftpd.conf

找到anonymous_enable这个配置项,默认是YES,修改成NO,表示不允许匿名用户登录

现在直接保存配置文件,执行systemctl start vsftpd.service启动vsftp服务,然后可以通过命令:systemctl status vsftpd.service查看ftp服务的运行状态,现在就可以用ftp客户端进行连接了,这里用FileZilla测试,连接正常

现在基本的ftp服务就部署完了,客户端可以正常上传,下载,修改文件;但是这样有个问题就是所有的目录都暴露给客户端了,虽然客户端不能随意修改删除其余的文件,但是因为目录可见,所以总会有一些风险,所以接下来还需要配置让ftp用户只在自己的家目录下面活动,而无法查看其它任何目录,同样是打开配置文件/etc/vsftpd/vsftpd.conf,找到chroot_local_user=YES这个配置,默认是注释的,这里去掉注释,表示只让用户在自己的目录里面活动,如果只是保存这一个配置的话,用ftp连接客户端会返回500 OOPS: vsftpd: refusing to run with writable root inside chroot()的错误,即禁止运行在可写的家目录中,因为刚才ftp_test这个目录有w权限,而现在我们使用的vsftpd版本是3.0.2属于比较新的版本,为了安全性做了一些限制,如果你此时想通过chmoda-w/home/ftp_test来去掉目录的写权限,那么连接成功是没问题的,但是无法上传文件了,所以网上很多说修改权限的方法是不可取的,正确的做法是应该在下面添加一行配置allow_writeable_chroot=YES表示允许对家目录的写权限,具体配置如下:

配置完这两项以后保存退出,然后执行systemctl restart vsftpd.service重启vsftpd服务,现在重新使用ftp连接就成功了,并且任何操作也是没问题的

现在可以看到上面的路径是一个/,对于ftp用户来说也就是根目录了,只能在这个目录下操作,而无法跳出这个目录

以上就是vsftpd服务的基本搭建过程,实际使用时可以分配多个用户

实现Linux上的FTP权限控制linux设置ftp权限

随着工作和生活的全面进行,FTP的使用越来越多,这也使得在Linux上使用FTP变得不可避免,因为如果没有恰当的FTP权限控制,未经授权的访问者可能会破坏系统或损坏数据。

在Linux上实现FTP权限控制,最常用的方式就是使用vsftpd服务器软件,但必须实现特定的设置,才能有效地实现FTP权限控制。

事实上,VSFTPD的安装并不难,一般情况下可以使用一行命令实现安装,例如:

sudo apt-get install vsftpd

此外,在配置/etc/vsftpd.conf文件中,也需要进行一些必要的设置:

#定义匿名用户和本地用户的工作目录

anon_root=/var/ftp

local_root=/home/username

#设置允许本地用户登录

local_enable=YES

#设置可以使用各自的ftp文件夹

chroot_local_user=YES

#禁止匿名用户下载

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

#设置不允许lfs(本地文件访问)

ls_recurse_enable=NO

完成上述配置后,重新启动vsftpd服务,使其生效:

sudo service vsftpd restart

可以看到,要在Linux上实现FTP权限控制,使用vsftpd服务器软件就已经足够了,而且安装和配置都不难。如果想知道更多关于FTP的使用方法,也可以参考其他文档资料,进一步了解。

Linux上设置用户通过SFTP访问目录的权限的方法

sftp和ftp是两种协议是不同的,sftp是ssh内含的协议,只要sshd服务器启动了,它就可用,它本身不需要ftp服务器启动。

1.查看openssh软件版本,想sftp服务用户只能访问特定的文件目录,版本需要4.8以上

代码如下:

[root@localhost ftp]# rpm-qa| grep openssh

openssh-server-5.3p1-81.el6_3.x86_64

openssh-5.3p1-81.el6_3.x86_64

openssh-clients-5.3p1-81.el6_3.x86_64

2.新增用户,限制用户只能通过sftp访问

代码如下:

[root@localhost ftp]# useradd-m-d/opt/ftp/dave-s/sbin/nologin dave

3.限制用户通过sftp登录进来时只能进入主目录,修改/etc/ssh/sshd_config文件

代码如下:

[root@localhost ftp]# vim/etc/ssh/sshd_config

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

Subsystem sftp internal-sftp

Match User dave

ChrootDirectory/opt/ftp/dave

X11Forwarding no

AllowTcpForwarding no

ForceCommand internal-sftp

重启ssh

4.测试访问

代码如下:

root@10.1.1.200:test# sftp-oPort=22 dave@10.1.6.175

Connecting to 10.1.6.175...

dave@10.1.6.175's password:

Read from remote host 10.1.6.175: Connection reset by peer

Couldn't read packet: Connection reset by peer

发现连接不上,查看日志

代码如下:

[root@localhost ftp]# tail/var/log/messages

Jan 6 11:41:41 localhost sshd[4907]: fatal: bad ownership or modes for chroot directory"/opt/ftp/dave"

Jan 6 11:41:41 localhost sshd[4905]: pam_unix(sshd:session): session closed for user dave

解决方法:

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

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

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

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

代码如下:

[root@localhost ftp]# ll

total 4

drwxr-xr-x 3 dave dave 4096 Jan 5 13:06 dave

[root@localhost ftp]# chown root:root dave

[root@localhost ftp]# chmod 755 dave

[root@localhost ftp]# ll

total 4

drwxr-xr-x 3 root root 4096 Jan 5 13:06 dave

然后在测试通过

代码如下:

root@10.1.1.200:test# sftp-oPort=22 dave@10.1.6.175

Connecting to 10.1.6.175...

dave@10.1.6.175's password:

sftp ls

test

sftp cd..

sftp ls

test

sftp cd test

sftp ls

1.txt

sftp get 1.txt

Fetching/test/1.txt to 1.txt

/test/1.txt

可以看到已经限制用户在家目录,同时该用户也不能登录该机器。

阅读剩余
THE END