当前位置:首页 » 文件管理 » linux设置仅本地用户访问FTP

linux设置仅本地用户访问FTP

发布时间: 2022-08-11 05:32:57

linux vsftpd怎么让本地用户允许登录

限制本地用户访问FTP
Userlist_enable=yes
(用userlist来限制用户访问)
Userlist_deny=no
(名单中的人不允许访问)
Userlist_file=/指定文件存放的路径/
(文件放置的路径)
注:开启userlist_enable=yes匿名帐号不能登陆
所以只需要把你想访问的用户加到userlist里面就可以了

② Linux 建了一个用户,怎么给他FTP权限

Linux下创建用户是很easy的事情了,只不过不经常去做这些操作,时间久了就容易忘记,顺便配置一下FTP。声明:使用Linux版本release 5.6,并以超级管理员root身份运行。
1.创建用户,并指定分组和主目录
useradd -d /home/lch -g root lch
还可以增加其他参数,比如指定用户使用shell等,具体的google一下
2.设定密码
passwd lch
3.查看、改变、添加用户分组
[root@localhost ~]# groups lch
lch : root www
# -G 改变分组
[root@localhost ~]# usermod -G root lch
[root@localhost ~]# groups lch
lch : root
# -g 新增分组
[root@localhost ~]# usermod -g www lch
[root@localhost ~]# groups lch
lch : www root
4.删除用户
# 加上 -r 参数,删除更彻底
userdel -r lch
更改ftp配置文件
修改配置文件/etc/vsftpd/vsftpd.conf并设定或删掉注释:
userlist_enable=NO
anonymous_enable=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
打开/etc/vsftpd/user_list并增加一行:
lch
新建文件/etc/vsftpd/chroot_list并增加一行
lch
配置用户ftp权限及访问路径限制:
此时用usertest登陆系统ftp,是否可以访问?如果无法访问,说明我们的ftp做了限制。打开/etc/vsftpd/vsftpd.conf,查找userlist_enable、userlist_deny、userlist_file。如果userlist_deny=NO:只允许userlist_file文件中的用户可访问ftp;如果userlist_deny=YES:userlist_file文件中列举的用户不能通过ftp访问系统。userlist_enable是该功能的开关。我们的系统配置如下:
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
所以需要把用户加入到/etc/vsftpd/user_list文件中,每个用户一行。
由于该主目录是mpsp用户建的,usertest是mpsp组的成员,所以usertest默认具有增删查改权限;而usertest作为mpsp组成员,对/home/mpsp下的所有路径具有访问权限(根据各目录的权限设置,默认是这样),登录ftp后会发现,usertest用户可以访问其他目录,并且具有mpsp组的权限,这样做是不允许的,我们需要将usertest用户的访问范围控制在其主目录下。方法如下:
1. cd /etc/vsftpd 进入ftp配置文件目录
2. vi vsftpd.conf编辑此文件,找到#chroot_list_enable=YES,删除前面的那个#号,表示开启此限制功能
找到chroot_list_file:chroot_list_file=/etc/vsftpd/chroot_list
3. 编辑chroot_list文件,加入你要限制的用户名,一行一个用户。
如果更新了vsftpd.conf,一定要重启ftp,命令如下:
[root@linux sir001 root]# /etc/init.d/vsftpd restart
关闭vsftpd:[ 确定]
为vsftpd 启动vsftpd:[ 确定]
启动FTP服务
service vsftpd start
还有两个参数:stop、restart

③ 怎么通过linux访问服务器上的ftp

这个直接推荐你看看这里:http://www.linuxprobe.com/chapter-11.html

文件传输协议(FTP,File Transfer Protocol),即能够让用户在互联网中上传、下载文件的文件协议,而FTP服务器就是支持FTP传输协议的主机,要想完成文件传输则需要FTP服务端和FTP客户端的配合才行。
通常用户使用FTP客户端软件向FTP服务器发起连接并发送FTP指令,服务器收到用户指令后将执行结果返回客户端。

FTP协议占用两个端口号:
21端口:命令控制,用于接收客户端执行的FTP命令。
20端口:数据传输,用于上传、下载文件数据。
FTP数据传输的类型:
主动模式:FTP服务端主动向FTP客户端发起连接请求。
被动模式:FTP服务端等待FTP客户端的连接请求。
11.2 安装vsftpd服务程序
Vsftpd即“Very Secure FTP Daemon”是一款运行在类Unix操作系统的FTP服务端程序,Vsftpd主打的是安全性、完全开源及免费、速率高、支持IPv6、虚拟用户功能等等其他FTP服务端软件不具备的功能。

安装vsftpd服务程序包:
[root@linuxprobe ~]# yum install vsftpd -y
Loaded plugins: langpacks, proct-id, subscription-manager
…………………省略部分安装过程………………
---> Package vsftpd.x86_64 0:3.0.2-9.el7 will be installed
--> Finished Dependency Resolution
…………………省略部分安装过程…………………
Installed:
vsftpd.x86_64 0:3.0.2-9.el7
Complete!

清空默认的防火墙默认规则:
[root@linuxprobe ~]# iptables -F

保存清空后的防火墙规则表:
[root@linuxprobe ~]# service iptables save

Vsftpd的程序与配置文件:
主程序 /usr/sbin/vsftpd
用户禁止登陆列表 /etc/vsftpd/ftpusers
/etc/vsftpd/user_list
主配置文件 /etc/vsftpd/vsftpd.conf

先来分析下vsftpd程序的主配置文件吧:
[root@linuxprobe ~]# cat /etc/vsftpd/vsftpd.conf
主配置文件长达123行,但大部分是以#号开始的,这些都是注释信息,我们可以过滤掉它们。
备份vsftpd的主配置文件:
[root@linuxprobe ~]# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak

过滤掉所有包含#号的行,并将过滤结果写回到vsftpd.conf文件中:
[root@linuxprobe ~]# grep -v "#" /etc/vsftpd/vsftpd.conf_bak > /etc/vsftpd/vsftpd.conf

此时再分析下vsftpd程序的主配置文件吧:
[root@linuxprobe ~]# cat /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

vsftpd程序配置文件参数的作用:
参数 作用
listen=[YES|NO] 是否以独立运行的方式监听服务。
listen_address=IP地址 设置要监听的IP地址。
listen_port=21 设置FTP服务的监听端口。
download_enable=[YES|NO] 是否允许下载文件。
userlist_enable=[YES|NO]
userlist_deny=[YES|NO] 是否启用“禁止登陆用户名单”。
max_clients=0 最大客户端连接数,0为不限制。
max_per_ip=0 同一IP地址最大连接数,0位不限制。
anonymous_enable=[YES|NO] 是否允许匿名用户访问。
anon_upload_enable=[YES|NO] 是否允许匿名用户上传文件。
anon_umask=022 匿名用户上传文件的umask值。
anon_root=/var/ftp 匿名用户的FTP根目录。
anon_mkdir_write_enable=[YES|NO] 是否允许匿名用户创建目录。
anon_other_write_enable=[YES|NO] 是否开放匿名用户其他写入权限。
anon_max_rate=0 匿名用户最大传输速率(字节),0为不限制。
local_enable=[YES|NO] 是否允许本地用户登陆FTP。
local_umask=022 本地用户上传文件的umask值。
local_root=/var/ftp 本地用户的FTP根目录。
chroot_local_user=[YES|NO] 是否将用户权限禁锢在FTP目录,更加的安全。
local_max_rate=0 本地用户最大传输速率(字节),0为不限制。

11.3 Vsftpd的验证方式
vsftpd程序提供的FTP服务可选认证方式,分别为匿名访问、本地用户和虚拟用户:
匿名访问:任何人无需验证口令即可登入FTP服务端。
本地用户:使用FTP服务器中的用户、密码信息。
虚拟用户:创建独立的FTP帐号资料。
顾名思义匿名访问就是所有人均可随意登入FTP服务,这样自然会产生安全问题,一般用于存放公开的数据。
而本地用户与虚拟用户则需要用户提供帐号及口令后才能登入FTP服务,更加的安全,而虚拟用户则是最安全的。
下面的实验环节将使用两台红帽RHEL7系统的主机,读者需要提前配置网卡的IP地址等信息:
主机名称 操作系统 IP地址
FTP服务端 红帽RHEL7操作系统 192.168.10.10
FTP客户端 红帽RHEL7操作系统 192.168.10.20

11.3.1 匿名访问模式
FTP匿名访问模式是比较不安全的服务模式,尤其在真实的工作环境中千万不要存放敏感的数据,以免泄露。
vsftpd程序默认已经允许匿名访问模式,我们要做的就是开启匿名用户的上传和写入权限,写入下面的参数:
[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf

参数 作用
anonymous_enable=YES 允许匿名访问模式。
anon_umask=022 匿名用户上传文件的umask值。
anon_upload_enable=YES 允许匿名用户上传文件
anon_mkdir_write_enable=YES 允许匿名用户创建目录
anon_other_write_enable=YES 允许匿名用户修改目录名或删除目录

确认填写正确后保存并退出vsftpd.conf文件,然后重启vsftpd服务程序并设置为开机自启动。
[root@linuxprobe ~]# systemctl restart vsftpd
[root@linuxprobe ~]# systemctl enable vsftpd
ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service
因为在红帽RHCSA、RHCE或RHCA考试后都要重启您的实验机再执行判分脚本
所以请读者在日常工作中也要记得将需要的服务加入到开机启动项中:"systemctl enable vsftpd"。
如果重启vsftpd服务程序时没有报错,此时便可以使用FTP客户机(192.168.10.20)尝试登入FTP服务了。
ftp命令用于使用FTP服务,格式为:“ftp [参数] [FTP主机]”。
红帽RHEL7系统中ftp命令默认没有安装,请执行"yum install ftp -y"即可安装完毕。
在客户端尝试登入FTP服务:
[root@linuxprobe ~]# ftp 192.168.10.10
Connected to 192.168.10.10 (192.168.10.10).
220 (vsFTPd 3.0.2)
Name (192.168.10.10:root): anonymous
331 Please specify the password.
Password:敲击回车
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub
250 Directory successfully changed.
ftp> mkdir files
550 Permission denied.

上面操作中已经将防火墙规则清空,在vsftpd.conf文件中也已经允许匿名用户创建目录与写入权限,那怎么会被拒绝了呢?
这里建议读者先不要往下看,思考后用自己的方法解决下这个问题,长期这样你的Linux的排错能力一定会练出来的。
回想前面的参数细节,匿名访问模式的FTP根目录为/var/ftp:
[root@linuxprobe ~]# ls -ld /var/ftp/pub
drwxr-xr-x. 3 root root 16 Jul 13 14:38 /var/ftp/pub

原来匿名用户的FTP根目录所有者/组都是root,所以匿名用户没有写入权限,那我们将所有者修改为ftp试试吧。
[root@linuxprobe ~]# chown ftp /var/ftp/pub

此时再用ftp命令尝试登入FTP服务并创建文件:
ftp> mkdir files
550 Create directory operation failed.

可恶!又报错了!!虽然这次报错代码还是550,但前面提示权限拒绝,这次是操作失败,马上想到是SELinux服务在捣鬼。
查看所有与ftp相关的SELinux规则:
[root@linuxprobe ~]# getsebool -a | grep ftp
ftp_home_dir --> off
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off
tftp_anon_write --> off
tftp_home_dir --> off

设置SELinux服务对ftp服务的访问规则策略为允许。
[root@linuxprobe ~]# setsebool -P ftpd_full_access=on

此时再来创建文件或目录就没有问题了:
[root@linuxprobe ~]# ftp 192.168.10.10
Connected to 192.168.10.10 (192.168.10.10).
220 (vsFTPd 3.0.2)
Name (192.168.10.10:root): anonymous
331 Please specify the password.
Password:敲击回车
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub
250 Directory successfully changed.
ftp> mkdir files
257 "/pub/files" created
ftp> rename files database
350 Ready for RNTO.
250 Rename successful.
ftp> rmdir database
250 Remove directory operation successful.
ftp> exit
221 Goodbye.

请注意:当您完成本实验后请还原虚拟机快照再进行下一个实验,否则可能导致配置文件冲突而报错。
11.3.2 本地用户模式
既然要使用本地用户模式,而本地用户模式确实要比匿名访问模式更加的安全,所以本实验中会关闭匿名访问模式。
vsftpd服务程序默认已经允许本地用户模式,我们要做的是添加设置本地用户模式权限的参数:
[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf

参数 作用
anonymous_enable=NO 禁止匿名访问模式。
local_enable=YES 允许本地用户模式。
write_enable=YES 设置可写入权限。
local_umask=022 本地用户模式创建文件的umask值。
userlist_deny=YES 参数值为YES即禁止名单中的用户,参数值为NO则代表仅允许名单中的用户。
userlist_enable=YES 允许“禁止登陆名单”,名单文件为ftpusers与user_list。

确认填写正确后保存并退出vsftpd.conf文件,然后重启vsftpd服务程序并设置为开机自启动。
[root@linuxprobe ~]# systemctl restart vsftpd
[root@linuxprobe ~]# systemctl enable vsftpd
ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service
因为在红帽RHCSA、RHCE或RHCA考试后都要重启您的实验机再执行判分脚本。
所以请读者在日常工作中也要记得将需要的服务加入到开机启动项中:”systemctl enable vsftpd“。
如果重启vsftpd服务程序时没有报错,此时便可以使用FTP客户机(192.168.10.20)尝试登入FTP服务了~
我们先来看下ftpusers或user_list文件中禁止登陆用户名单:
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
vsftpd服务为了让FTP服务更加的安全,默认禁止以root身份登入,那么创建个普通用户吧:
[root@linuxprobe ~]# useradd linuxprobe

为linuxprobe用户设置密码
[root@linuxprobe ~]# passwd linuxprobe
Changing password for user linuxprobe.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

在客户端尝试登入FTP服务:
[root@linuxprobe ~]# ftp 192.168.10.10
Connected to 192.168.10.10 (192.168.10.10).
220 (vsFTPd 3.0.2)
Name (192.168.10.10:root): linuxprobe
331 Please specify the password.
Password:输入用户的本地密码
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mkdir files
550 Create directory operation failed.

有了上面配置匿名访问模式的经验,这次再遇到了“操作被拒绝”,应该马上想到SELinux了吧。
查看所有与ftp相关的SELinux规则:
[root@linuxprobe ~]# getsebool -a | grep ftp
ftp_home_dir --> off
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off
tftp_anon_write --> off
tftp_home_dir --> off

设置SELinux对FTP服务的规则为允许:
[root@linuxprobe ~]# setsebool -P ftpd_full_access=on

此时再来创建文件或目录就没有问题了:
[root@linuxprobe ~]# ftp 192.168.10.10
Connected to 192.168.10.10 (192.168.10.10).
220 (vsFTPd 3.0.2)
Name (192.168.10.10:root): linuxprobe
331 Please specify the password.
Password:输入用户本地密码
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mkdir files
257 "/home/linuxprobe/files" created
ftp> rename files database
350 Ready for RNTO.
250 Rename successful.
ftp> rmdir database
250 Remove directory operation successful.
ftp> exit
221 Goodbye.

④ Linux ftp服务允许本地用户访问切将用户限制在家目录中,出现本地用户不能登陆

您好,您提问的这个问题有点不太明白。什么叫“允许本地用户访问切将用户限制在家目录中”?如果您只是想把fuser1和fuser2用户限制在家目录,可以参考下做法:

·只改动这里就行了

若有疑问,请继续追问,先不要采纳。

⑤ Linux中的如何配置FTP(ProFTOD)用本地用户登录

在 /etc/vsftpd/vsftpd.conf中,去掉#注释anonymous_enable =YES # 允许匿名登录
local_enable =YES # 允许本地用户登录
write_enable=YES # 允许客户端写命令
local_umask=022 # 本地用户新文件的umask值
anon_upload_enable=YES # 允许匿名用户上传文件
anon_mkdir_write_enable=YES # 允许匿名用户创建目录
4dirmessage_enable=YES # 允许使用目录的消息
4ftpd_banner=Welcome to blah FTP service. # 登录的欢迎词
4listen=YES # 监听模式重启服务 service vsftpd restart

⑥ Linux vsftp用户权限,怎么设置指定用户只能访问根目录下的指定子目录及指定文件

Linux添加FTP用户并设置权限

在linux中添加ftp用户,并设置相应的权限,操作步骤如下:

1、环境:ftp为vsftp。被限制用户名为test。被限制路径为/home/test
2、建用户:在root用户下:
useradd -d /home/test test //增加用户test,并制定test用户的主目录为/home/test
passwd test //为test设置密码

3、更改用户相应的权限设置:

usermod -s /sbin/nologin test //限定用户test不能telnet,只能ftp
usermod -s /sbin/bash test //用户test恢复正常
usermod -d /test test //更改用户test的主目录为/test

4、限制用户只能访问/home/test,不能访问其他路径
修改/etc/vsftpd/vsftpd.conf如下: www.2cto.com
chroot_list_enable=YES //限制访问自身目录
# (default follows)

chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
编辑 vsftpd.chroot_list文件,将受限制的用户添加进去,每个用户名一行
改完配置文件,不要忘记重启vsFTPd服务器
[root@linuxsir001 root]# /etc/init.d/vsftpd restart
5、如果需要允许用户修改密码,但是又没有telnet登录系统的权限:
usermod -s /usr/bin/passwd test //用户telnet后将直接进入改密界面

⑦ Linux 控制普通用户ftp 只访问本用户的 家目录

创建用户:

#adser -d /data/home/website1 -g www website1
//创建用户
#passwd website1
//设置密码
#Changing password for user usertest.
#New UNIX password:
#Retype new UNIX password:
#passwd: all authentication tokens updated successfully.

那现在就可以用ftp登录了 ,也会有以上我说的目录不固定问题
此时用website1登陆系统ftp,是否可以访问?如果无法访问,说明我们的ftp做了限制。
--------------------------------------------------------------------------------------------
先打开配置文件
cd /etc/vsftpd/vsftpd.conf

查找userlist_enable
如果userlist_deny=NO:只允许userlist_file文件中的用户可访问ftp;
如果userlist_deny=YES:userlist_file文件中列举的用户不能通过ftp访问系统。
userlist_enable是该功能的开关
我们的系统配置如下:
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list

所以需要把用户加入到/etc/vsftpd/user_list文件中,每个用户一行。

配置用户ftp权限及访问路径限制
cd /etc/vsftpd/vsftpd.conf

修改用户ftp登陆权限----------------------
//找到#chroot_list_enable=YES,删除前面的那个#号,表示开启用户是否能登陆ftp限制
//找到#chroot_list_file=/etc/vsftpd/chroot_list,删除前面的那个#号,表示使用该列表中的名字作为限制条件
//编辑chroot_list,加入你要限制的用户名,一行一个用户
--------------------------------------------------------
修改用户ftp访问区域权限-------------------
//找到#chroot_local_user=YES,删除前面的那个#号,表示开启,用户只能访问自己的家目录
--------------------------------------------------------

#如果更新了vsftpd.conf,一定要重启ftp
# /etc/init.d/vsftpd restart

再用website1通过ftp访问系统,用户成功登陆,并且成功的被限制在自己的主目录下,无法访问其他目录。大功告成。

⑧ linux怎么设置vsftp用户访问目录权限

Linux添加FTP用户并设置权限
在linux中添加ftp用户,并设置相应的权限,操作步骤如下:
1、环境:ftp为vsftp。被限制用户名为test。被限制路径为/home/test
2、建用户:在root用户下:
useradd
-d
/home/test
test
//增加用户test,并制定test用户的主目录为/home/test
passwd
test
//为test设置密码
3、更改用户相应的权限设置:
usermod
-s
/sbin/nologin
test
//限定用户test不能telnet,只能ftp
usermod
-s
/sbin/bash
test
//用户test恢复正常
usermod
-d
/test
test
//更改用户test的主目录为/test
4、限制用户只能访问/home/test,不能访问其他路径
修改/etc/vsftpd/vsftpd.conf如下:
www.2cto.com
chroot_list_enable=YES
//限制访问自身目录
#
(default
follows)
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
编辑
vsftpd.chroot_list文件,将受限制的用户添加进去,每个用户名一行
改完配置文件,不要忘记重启vsFTPd服务器
[root@linuxsir001
root]#
/etc/init.d/vsftpd
restart
5、如果需要允许用户修改密码,但是又没有telnet登录系统的权限:
usermod
-s
/usr/bin/passwd
test
//用户telnet后将直接进入改密界面

热点内容
app什么情况下找不到服务器 发布:2025-05-12 15:46:25 浏览:714
php跳过if 发布:2025-05-12 15:34:29 浏览:467
不定时算法 发布:2025-05-12 15:30:16 浏览:131
c语言延时1ms程序 发布:2025-05-12 15:01:30 浏览:165
动物园灵长类动物配置什么植物 发布:2025-05-12 14:49:59 浏览:734
wifi密码设置什么好 发布:2025-05-12 14:49:17 浏览:148
三位数乘两位数速算法 发布:2025-05-12 13:05:48 浏览:397
暴风影音缓存在哪里 发布:2025-05-12 12:42:03 浏览:541
access数据库exe 发布:2025-05-12 12:39:04 浏览:629
五开的配置是什么 发布:2025-05-12 12:36:37 浏览:365