Я хочу передавать данные между двумя компьютерами Linux Ubuntu, используя только кабель Ethernet и программное обеспечение FTP, такое как gFtp
Возможно ли это? потому что я получаю соединение отказано при попытке соединения
И vsftp на моем пути
Как сделать это Установка vsftpd
и a PAM library
Править /etc/vsftpd.conf
и /etc/pam.d/vsftpd
Создайте пользователя accouts с пользовательскими каталогами (в/var/www/, например), каталоги Набора с корректным chmod и показанный Создают администраторского пользователя с полным доступом к Поиску и устранению неисправностей сервера
Установка vsftpd
и libpam-pwdfile
для создания виртуальных пользователей, я хотел создать пользователей FTP, но я не хотел добавлять локальных пользователей UNIX (никакой доступ оболочки, никакой корневой каталог и так далее). PAM поможет Вам создать виртуальных пользователей.
склонные sudo - получают установку vsftpd libpam-pwdfile
Править vsftpd.conf
Сначала необходимо создать резервную копию исходного файла
sudo mv/etc/vsftpd.conf/etc/vsftpd.conf.bak
Затем создайте новый
sudo nano /etc/vsftpd.conf
Скопируйте и вставьте следующие строки. Файл должен ТОЛЬКО содержать эти строки:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
nopriv_user=vsftpd
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/$USER
chroot_local_user=YES
hide_ids=YES
guest_username=vsftpd
Зарегистрируйте виртуальных пользователей Для регистрации пользователя, которого Вы используете htpasswd
, таким образом, я предполагаю, что Вы имеете apache2
работа над сервером. Создайте vsftpd папку, затем помещает конфигурационные файлы в него.
sudo mkdir /etc/vsftpd
затем
`sudo htpasswd -cd /etc/vsftpd/ftpd.passwd user1`
- c означает, что мы создадим файл, если это еще не будет существующим-d, вызывает MD5, Вы нуждаетесь в нем на человечности 12.04, просто используете его всегда, команда запросит пароль. Если Вы хотите добавить новых пользователей впоследствии:
`sudo htpasswd -d /etc/vsftpd/ftpd.passwd user2`
Настройте PAM в/etc/pam.d/vsftpd Снова, необходимо создать резервную копию orignal файла
sudo mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
и создайте новый
`sudo nano /etc/pam.d/vsftpd`
Скопируйте и вставьте эти 2 строки (это должно быть единственным содержанием). Я настаиваю только эти 2 строки, я потратил впустую много времени, сохранив оригиналы и просто добавил их.
`auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd`
`account required pam_permit.so`
Создайте локального пользователя без доступа оболочки
sudo useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
Можно проверить, что это было создано с идентификационной командой: идентификатор vsftpd. Мы определяем пользователя с /bin/false
оболочка из-за check_shell параметра (даже если Вы не используете его).
Когда конечный пользователь соединится с FTP-сервером, они будут использоваться для прав и владения: chmod
и chown
. - Перезапуск vsftpd
Распространенный способ использует init.d как весь deamon
`sudo /etc/init.d/vsftpd restart`
/var/www/user1
.Необходимо создать их с конкретными правами: корневая папка не может быть перезаписываема!
/ [root = /var/www/user1] => 555
www [ /var/www/user1/www ] => 755
docs [ /var/www/user1/docs ] => 755
Примечание: пользователь не может создать файлы или папки в корневом каталоге. В vsftpd.conf
мы имеем chroot_local_user=YES
так пользователь ничего не видят за пределами его папки. Ему сервер похож на это:
Поэтому просто выполненный эти команды:
mkdir /var/www/user1
chmod -w /var/www/user1
mkdir www/user1/www
chmod -R 755 /var/www/user1/www
chown -R vsftpd:nogroup /var/www/user1
/var/www/user1
папка HAS TO существует, или связь прервется.
Прямо сейчас можно попытаться соединиться с клиентом FTP, и это успешно выполнится! Если это не делает можно проверить часть поиска и устранения неисправностей.
Прежде чем мы сделаем так, я буду советовать Вам зарегистрироваться /etc/ftpusers
файл, которые определяют определенных пользователей, которым не разрешают соединиться с ftp. Я думаю, что это только для локальных пользователей и не виртуальных пользователей, но на всякий случай не выбирайте имя, содержавшееся в этом файле. Давайте будем честны, vsftpd является сложным достаточно!
sudo htpasswd -d /etc/vsftpd/ftpd.passwd theadmin
Теперь мы должны добавить новую строку в /etc/vsftpd.conf
chroot_list_enable=YES
Это означает, что Ваш пользователь будет размещен в их папку (как тюрьма) КРОМЕ пользователей в /etc/vsftpd.chroot_list
Давайте создадим этот файл и добавим нашего пользователя, файл является простой строкой, содержащей “theadmin”. Добавьте одного пользователя на строку. Это означает, что Вы не должны создавать/var/www/theadmin папку, пользователь войдет в систему и запустится в/home/vsftpd.
Перезапустите сервер, и Вы сделаны!
Поиск и устранение неисправностей Здесь является некоторыми ошибками, с которыми я встретился.
500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
Ваш корневой каталог перезаписываем, это не позволяется.
500 OOPS: cannot change directory:`/var/www/theadmin` if the folder doesnt exist
/var/www/папка $USER не существует, создает его с корректными правами (не перезаписываемый) или добавляет пользователя в /etc/vsftpd.chroot_list
.
htpasswd: не может создать файл /etc/vsftpd/ftpd.passwd
/etc/vsftpd/
папка должна быть существующей, htpasswd не создаст ее.
перезапуск vsftpd или ошибка остановки: “перезапуск: Неизвестный экземпляр “Это означает, что Вы не можете запустить deamon, даже если у Вас есть сообщение успеха с /etc/init.d/vsftpd start
.
openssh-server
.ip link addr
или используйте индикатор сети).filezilla
).Хост: IP-адрес другого компьютера, предварительно ожидаемого с
sftp://
. (Пример:sftp://192.168.1.8
)
Имя пользователя: Имя пользователя Вы используете для входа в систему на другом компьютере
Пароль: пароль Вы используете для входа в систему на другом компьютере
Для установления соединения между этими двумя машинами с помощью кабеля Ethernet обеим машинам нужен статический IP, которого находятся в той же подсети IP.
1. Захват кабель Ethernet и присоединение это к порту Ethernet основной машины, берут другую сторону кабеля и включают его в порт Ethernet вторичной машины.
2. Определяют Ваши интерфейсы Ethernet на каждом компьютере, это должен быть или eth0 или что-то как enp3s0. Примите во внимание те имена интерфейса, потому что мы испытываем необходимость в них позже. Можно сделать это путем простого ввода, sudo ifconfig
3. На основной машине... выполняет эту команду в Вашем терминале/командной строке: sudo ifconfig eth0 10.0.0.1
(заменяют eth0 интерфейсом Ethernet основной машины.)
4. На вторичной машине... выполняет эту команду в ее терминале/командной строке: sudo ifconfig eth0 10.0.0.2
(заменяют eth0 интерфейсом Ethernet второй машины.)
5. Теперь... Эти два компьютера должны смочь общаться друг с другом. Можно протестировать это путем ввода команды, на основной машине, ping 10.0.0.2 -c 2
... Если Вы видите "64 байта от 10.0.0.2..." затем коммуникация работает.
6. Подключение к вторичной машине (IP-адрес: 10.0.0.2) использование Вашего клиента FTP... Я предполагаю, что Вы уже настроили FTP-сервер на своей вторичной машине.
, Если эти шаги неудачны убедиться ответить мне . Удивительная часть об этом является способностью настроить сервер DHCP для автоматического присвоения IP-адреса вторичной машине, но это сложно.