如何创build访客ftp用户并使用SSH访问特定的子文件夹?

我刚刚在GoDaddy上有一个虚拟的专用服务器。 我有简单的控制面板。 似乎没有办法通过这个控制面板创build一个访客ftp用户,我被告知它必须通过SSH创build。 我有一个名为Putty的程序,可以通过SSHlogin到服务器。 我熟悉login,但有谁知道什么命令将用于创build一个访客FTP用户,并给他们读取和写入访问特定的文件夹?

问候gourav

下面是你如何创build用户,安装vsftpd,并在CentOS Linux中configurationchroot的概述。

创build用户并设置密码:

[root@server ~]# useradd -s /sbin/nologin ftpuser [root@server ~]# passwd ftpuser Changing password for user ftpuser. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. [root@server ~]# 

请注意,useradd的“-s / sbin / nologin”选项将允许用户通过FTP进行连接,但是禁止通过SSH进行访问。

安装FTP服务器:

 [root@server ~]# yum install vsftpd Total download size: 141 k Is this ok [y/N]: y Downloading Packages: vsftpd-2.0.5-16.el5_6.1.i386.rpm | 141 kB 00:00 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : vsftpd 1/1 Installed: vsftpd.i386 0:2.0.5-16.el5_6.1 Complete! [root@server ~]# 

添加指令以将本地用户locking在其主目录中:

 [root@server ~]# echo "chroot_local_user=YES" >> /etc/vsftpd/vsftpd.conf [root@server ~]# 

启动FTP服务器:

 [root@server ~]# /etc/init.d/vsftpd start Starting vsftpd for vsftpd: [ OK ] [root@server ~]# 

在这里,我在用户的主目录中创build了一个testing文件:

 [root@server ~]# touch /home/ftpuser/testfile [root@server ~]# 

最后,我通过FTP连接:

 [root@server ~]# ftp localhost Connected to localhost.localdomain. 220 (vsFTPd 2.0.5) 530 Please login with USER and PASS. 530 Please login with USER and PASS. KERBEROS_V4 rejected as an authentication type Name (localhost:root): ftpuser 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> pwd 257 "/" ftp> dir 227 Entering Passive Mode (127,0,0,1,231,117) 150 Here comes the directory listing. -rw-r--r-- 1 0 0 0 May 04 13:29 testfile 226 Directory send OK. ftp> 

你可以看到,用户被告知他们在“/”,当他们真正在他们的主目录/ home / ftpuser,这是我们创build用户时创build的。 他们不能在文件系统中升级:

 ftp> pwd 257 "/" ftp> cd .. 250 Directory successfully changed. ftp> pwd 257 "/" ftp> ls 227 Entering Passive Mode (127,0,0,1,163,240) 150 Here comes the directory listing. -rw-r--r-- 1 0 0 0 May 04 13:29 testfile 226 Directory send OK. ftp> 

而且他们不允许通过SSH连接:

 [root@server ~]# ssh ftpuser@localhost ftpuser@localhost's password: Last login: Wed May 4 08:38:54 2011 from localhost.localdomain This account is currently not available. Connection to localhost closed. [root@server ~]# 

奖金:configurationvsftpd在启动时启动:

 [root@server ~]# chkconfig vsftpd on [root@server ~]# 

最后,我不确定GoDaddy是否默认在其服务器上启用了SELinux。 如果他们这样做,您可能会在尝试使用FTP用户login时收到此错误:

 [root@server ~]# ftp localhost Connected to localhost.localdomain. 220 (vsFTPd 2.0.5) 530 Please login with USER and PASS. 530 Please login with USER and PASS. KERBEROS_V4 rejected as an authentication type Name (localhost:root): ftpuser 331 Please specify the password. Password: 500 OOPS: chroot Login failed. ftp> 

SELinux是系统内置的额外一层ACL,提供非常细化的安全选项,但有点复杂。 许多人把它禁用了,如果你刚刚开始,我build议你也这样做。 以下是您如何将其设置为宽容模式:

 [root@server ~]# setenforce 0 [root@server ~]# 

如果你想永久这样做,你可以编辑/ etc / sysconfig / selinux。