Điểm:0

Máy chủ FTP vsftpd trên Ubuntu 20.04

lá cờ cn

tôi đang thử nghiệm với hướng dẫn này để thiết lập máy chủ FTP trên phiên bản Ubuntu 20.04 và xem liệu tôi có thể đẩy tệp CSV tới máy chủ đó từ phiên bản Windows 10 bằng Python hay không.

Về phía linux, tôi có các cài đặt chính xác như các trạng thái hướng dẫn khi thực hiện sửa đổi tệp cấu hình vsftd bằng nano:

lắng nghe = KHÔNG
nghe_ipv6=CÓ
nặc danh_enable=KHÔNG
local_enable=CÓ
write_enable=CÓ
dirmessage_enable=CÓ
use_localtime=CÓ
xferlog_enable=CÓ
connect_from_port_20=CÓ
chroot_local_user=CÓ
safe_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=CÓ
user_sub_token=$USER
local_root=/home/$USER/ftp
pasv_min_port=30000
pasv_max_port=31000
userlist_enable=CÓ
userlist_file=/etc/vsftpd.user_list
userlist_deny=KHÔNG

Ở phía máy khách là máy Windows 10 trên mạng LAN với phiên bản Ubuntu, tôi có tệp Python này để thử và đẩy tệp CSV sang máy chủ FTP chạy trên phiên bản Ubuntu. Tôi gần như không biết những gì tôi sẽ sử dụng để xác thực máy chủ FTP cũng như số cổng để chỉ định rằng máy chủ FTP đang chạy.

Python 3.9 từ Windows 10:

từ ftplib nhập FTP


FTP_HOST = "192.168.0.105"
#FTP_PORT = 7021
FTP_USER = "bến"
FTP_PASS = "bến"

print("Tôi đang làm việc...")
ftp = FTP()
#ftp.connect(FTP_HOST, FTP_PORT)

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

# tên tệp cục bộ bạn muốn tải lên
tên tệp = "madison_office_2020.csv"
với open(filename, "rb") dưới dạng tệp:
    ftp.storbinary(f"STOR {tên tệp}", tệp)

ftp.quit()

Trong tập lệnh Python, tôi có số cổng được nhận xét và tên người dùng/mật khẩu là người dùng Người dùng Ubuntu Linux hiện đang chạy trên phiên bản Linux. Bất kỳ mẹo nào được đánh giá cao, đây là dấu vết gần giống như lỗi quyền đối với tệp hoặc thư mục. Bất kỳ mẹo nào đánh giá cao sự khôn ngoan của Linux ở đây về cách xác minh quyền truy cập tệp.

Traceback (cuộc gọi gần đây nhất cuối cùng):
  Tệp "C:\Users\bbartling\Desktop\ftp_client\client_side_push.py", dòng 20, trong <module>
    ftp.storbinary(f"STOR {tên tệp}", tệp)
  Tệp "C:\Python39\lib\ftplib.py", dòng 498, trong storbinary
    với self.transfercmd(cmd, rest) dưới dạng kết nối:
  Tệp "C:\Python39\lib\ftplib.py", dòng 393, trong transfercmd
    trả lại self.ntransfercmd(cmd, phần còn lại)[0]
  Tệp "C:\Python39\lib\ftplib.py", dòng 359, trong ntransfercmd
    resp = self.sendcmd(cmd)
  Tệp "C:\Python39\lib\ftplib.py", dòng 281, trong sendcmd
    trả về self.getresp()
  Tệp "C:\Python39\lib\ftplib.py", dòng 254, trong getresp
    tăng error_perm(resp)
ftplib.error_perm: 550 Quyền bị từ chối.

Một lưu ý cuối cùng là thư mục này tồn tại. /var/run/vsftpd/trống Tôi chỉ không biết cách kiểm tra quyền của người dùng đối với thư mục này. Hãy thử điều này bên dưới, tôi có thể còn làm nó thậm chí còn tồi tệ hơn, không có nhiều sự khôn ngoan ở đây, bất kỳ lời khuyên nào cũng được đánh giá cao:

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

Bây giờ nếu tôi thử và kiểm tra quyền, không chắc đây có phải là cách đúng không chỉ với ls -al cái này sẽ cho tôi ls: không thể mở thư mục '.': Quyền bị từ chối

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.