Puncte:0

server FTP vsftpd pe Ubuntu 20.04

drapel cn

Eu experimentez acest tutorial să configurez un server FTP pe o instanță Ubuntu 20.04 și să văd dacă pot împinge un fișier CSV către el dintr-o instanță Windows 10 cu Python.

Pe partea Linux, am setările exact așa cum se arată în tutorial când trec prin modificarea fișierului de configurare vsftd cu nano:

asculta=NU
listen_ipv6=DA
anonymous_enable=NU
local_enable=DA
write_enable=DA
dirmessage_enable=DA
use_localtime=DA
xferlog_enable=DA
connect_from_port_20=DA
chroot_local_user=DA
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=DA
user_sub_token=$USER
local_root=/home/$USER/ftp
pasv_min_port=30000
pasv_max_port=31000
userlist_enable=DA
userlist_file=/etc/vsftpd.user_list
userlist_deny=NU

Pe partea client, care este o mașină Windows 10 pe LAN cu instanța Ubuntu, am acest fișier Python pentru a încerca să împing fișierul CSV pe serverul FTP care rulează pe instanța Ubuntu. Am cam pierdut ce aș folosi pentru autentificarea serverului FTP, precum și numărul portului pentru a specifica faptul că serverul FTP rulează.

Python 3.9 din Windows 10:

din ftplib import FTP


FTP_HOST = „192.168.0.105”
#FTP_PORT = 7021
FTP_USER = "ben"
FTP_PASS = "ben"

print("Lucrez...")
ftp = FTP()
#ftp.connect(FTP_HOST, FTP_PORT)

ftp.connect(FTP_HOST)
ftp.login(FTP_USER, FTP_PASS)

# nume de fișier local pe care doriți să îl încărcați
nume de fișier = „madison_office_2020.csv”
cu open(filename, "rb") ca fișier:
    ftp.storbinary(f"STOR {nume fișier}", fișier)

ftp.quit()

În scriptul Python, am numărul portului comentat, iar numele de utilizator/parola este utilizatorul Ubuntu Linux care rulează în prezent pe instanța Linux. Orice sfat apreciat, acesta este urmărirea care aproape pare a fi o eroare de permisiuni de fișier sau director. Orice sfat nu a apreciat prea multă înțelepciune Linux aici despre cum să verificați permisiunile fișierelor.

Traceback (cel mai recent apel ultimul):
  Fișierul „C:\Users\bbartling\Desktop\ftp_client\client_side_push.py”, rândul 20, în <modul>
    ftp.storbinary(f"STOR {nume fișier}", fișier)
  Fișierul „C:\Python39\lib\ftplib.py”, linia 498, în storbinary
    cu self.transfercmd(cmd, rest) ca conn:
  Fișierul „C:\Python39\lib\ftplib.py”, linia 393, în transfercmd
    return self.ntransfercmd(cmd, rest)[0]
  Fișierul „C:\Python39\lib\ftplib.py”, linia 359, în ntransfercmd
    resp = self.sendcmd(cmd)
  Fișierul „C:\Python39\lib\ftplib.py”, linia 281, în sendcmd
    return self.getresp()
  Fișierul „C:\Python39\lib\ftplib.py”, linia 254, în getresp
    ridicare error_perm(resp)
ftplib.error_perm: 550 Permisiune refuzată.

O ultimă notă este că acest director există. /var/run/vsftpd/empty Pur și simplu nu știu cum să verific permisiunile utilizatorului pentru acest director. Încercați asta mai jos, probabil că am încurcat-o și mai rău, nu prea multă înțelepciune aici, niciun sfat este apreciat:

sudo chown -R ben: /var/run/vsftpd/empty
sudo chown -R ben /var/run/vsftpd/empty
sudo chown -R 755 /var/run/vsftpd/empty

Acum, dacă încerc să verific permisiunile, nu sunt sigur dacă acesta este modul corect cu doar ls -al asta imi va da ls: nu se poate deschide directorul '.': Permisiune refuzată

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.