У меня только что появился виртуальный выделенный сервер в GoDaddy. Получил Простую панель управления. Похоже, что нет способа создать гостя ftp-пользователя через эту панель управления, и мне сказали, что он должен быть создан через SSH. У меня есть программа Putty, которая может входить на сервер через SSH. Я знаком с входом в систему, но знает ли кто-нибудь, какие команды нужно использовать для создания гостевого ftp-пользователя и предоставления им доступа для чтения и записи к определенной папке?
С уважением, гурав
Вот обзор того, как создать пользователя, установить vsftpd и настроить chroot в CentOS Linux.
Создание пользователя и установка пароля:
[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 ~]#
Обратите внимание, что параметр «-s / sbin / nologin» для useradd позволит пользователю подключаться через 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 ~]#
Добавление директивы для блокировки локальных пользователей в их домашних каталогах:
[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 ~]#
Здесь я создал тестовый файл в домашнем каталоге пользователя:
[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, который был создан, когда мы создали пользователя. Им не разрешено подниматься на более высокий уровень в файловой системе:
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 ~]#
Бонус: настройте vsftpd для запуска при загрузке:
[root@server ~]# chkconfig vsftpd on
[root@server ~]#
Наконец, я не уверен, что у GoDaddy по умолчанию включен SELinux на своих серверах. Если они это сделают, вы можете получить эту ошибку при попытке войти в систему с вашим пользователем 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:
500 OOPS: chroot
Login failed.
ftp>
SELinux - это дополнительный уровень списков ACL, встроенный в систему, чтобы обеспечить очень детальные параметры безопасности, но он немного сложен. Многие люди отключают его, и я бы порекомендовал вам сделать это, если вы только начинаете. Вот как вы временно установите его в разрешающий режим:
[root@server ~]# setenforce 0
[root@server ~]#
И если вы хотите сделать это навсегда, вы можете отредактировать / etc / sysconfig / selinux.