我在 Ubuntu 服务器 12.04 上安装了 VSFTPD,它运行得很好。直到我尝试更改用户的权限,使用户无法进入 / 目录,而只能进入 目录内/home/user/public_html
。
这可能与我这样做有关:
sudo chmod 700 -R /
我有一个用户 ftpUser,他属于一个组 ftpUsers。他的权限/home/user/public_html
如下:
drwxrwxr-x 9 ftpUser ftpUsers 4096
我的 VSFTPD 文件如下所示:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
connect_from_port_20=NO
chroot_local_user=YES
pam_service=vsftpd
userlist_file=/etc/vsftpd.userlist
userlist_enable=YES
userlist_deny=NO
其中/etc/vsftpd.userlist
只有一行:ftpUser
我该如何解决这个问题以便我可以登录,它认为它必须与权限有关但我现在不知道它是什么!?
答案1
您可以检查此链接. 它对我有用。
确保帐户和主目录的用户和组权限匹配。例如,如果您以以下身份登录:
帐户:x:521:500::/some/directory:/sbin/nologin
然后确保为“帐户”定义的主目录至少可由用户 521 和组 500 读取和执行。
答案2
该错误是由于 Selinux 引起的。请执行以下操作:
[root@sun02 vsftpd]# getenforce
Enforcing
[root@sun02 vsftpd]# getsebool -a | grep ftp
allow_ftpd_anon_write –> off
allow_ftpd_full_access –> off
allow_ftpd_use_cifs –> off
allow_ftpd_use_nfs –> off
allow_tftp_anon_write –> off
ftp_home_dir –> off # We need to change this to on - see next command.
ftpd_disable_trans –> off
ftpd_is_daemon –> on
httpd_enable_ftp_server –> off
tftpd_disable_trans –> off
[root@sun02 vsftpd]# setsebool -P ftp_home_dir on
这就是您所需要的全部。
祝你好运!