Tôi biết điều này đã được trả lời trước đây, nhưng thành thật mà nói, tất cả các câu trả lời hoàn toàn không có ý nghĩa gì trong trường hợp sử dụng của tôi. Tôi đang lưu trữ một ứng dụng Laravel trên máy chủ Ubuntu của mình và tôi đã tạo một người dùng riêng ấu trùng
và sao chép ứng dụng của tôi vào; /var/www/ứng dụng của tôi
.
Về cơ bản, tôi muốn kích hoạt SFTP cho /var/www/my-app/storage/app
để tôi có thể tải tệp lên để xử lý trong ứng dụng web của mình. Bảo mật không phải là vấn đề quá lớn vì ứng dụng này sẽ chỉ được lưu trữ trên mạng nội bộ mà không có quyền truy cập từ bên ngoài.
Đây là nhật ký tôi nhận được /var/log/auth.log
khi cố gắng kết nối qua SFTP.
Ngày 31 tháng 3 13:11:35 ubuntu sshd[40819]: pam_unix(sshd:session): phiên mở cho người dùng laravel bởi (uid=0)
Ngày 31 tháng 3 13:11:35 ubuntu systemd-logind[823]: Phiên 42 mới của người dùng laravel.
Ngày 31 tháng 3 13:11:35 ubuntu sshd [40907]: fatal: quyền sở hữu hoặc chế độ không hợp lệ cho thành phần thư mục chroot "/var/www/my-app/"
Ngày 31 tháng 3 13:11:35 ubuntu sshd[40819]: pam_unix(sshd:session): đóng phiên cho người dùng laravel
Ngày 31 tháng 3 13:11:35 ubuntu systemd-logind[823]: Phiên 42 đã đăng xuất. Đang chờ các tiến trình thoát ra.
Ngày 31 tháng 3 13:11:35 ubuntu systemd-logind[823]: Đã xóa phiên 42.
Hầu hết các câu trả lời trực tuyến để giải quyết vấn đề này đều nói rằng bạn cần đảm bảo rằng root sở hữu thư mục. Tuy nhiên, mối quan tâm của tôi là, người dùng của tôi ấu trùng
NHU CẦU để sở hữu /var/www/ứng dụng của tôi
nếu không, nó sẽ bị lỗi quyền khi ghi tệp nhật ký, đọc tệp, v.v... Tôi đã dành đủ thời gian để xử lý và giải quyết vấn đề đó rồi, và tôi thực sự không muốn đi xuống hố thỏ đó một lần nữa vì nó vô cùng căng thẳng.
Tất cả những gì tôi muốn làm là cho phép người dùng đăng nhập qua SFTP vào thư mục /var/www/my-app/storage/app
và có thể tải lên/xóa tệp. Như tôi đã nói, bảo mật không phải là vấn đề quá lớn do vấn đề về mạng nội bộ nên tôi không phiền nếu chỉ đăng nhập bằng ấu trùng
người dùng thay vì tạo một cái mới, vì tôi thực sự không hiểu các quyền nữa trong Linux vì nó có vẻ vô nghĩa. Có vẻ khá ngu ngốc khi cung cấp cho người dùng ấu trùng
Quyền SFTP để tải lên/tải xuống, tôi phải bắt đầu mày mò với root và trao quyền sở hữu root đối với các thư mục ngẫu nhiên khi tôi thậm chí không muốn root có quyền sở hữu chúng, tôi muốn ấu trùng
để có quyền sở hữu của họ và đó là nó.
Bất kỳ trợ giúp được đánh giá cao. Cảm ơn.