Cách tạo Người dùng SFTP (SSH) với quyền cực kỳ hạn chế


8

tôi chạy một máy chủ trên Ubuntu Server 14.04. Tôi muốn tạo một người dùng có thể kết nối qua sftp, tải xuống 1 tệp và chấm dứt kết nối. Người dùng không thể thực hiện BẤT CỨ điều gì khác. Duyệt các tập tin hệ thống hoặc cài đặt cũng như các mục nhập dòng lệnh, không có gì. Đăng nhập, tải tập tin, gg. Khi tệp được cập nhật, đăng nhập tải xuống, gg. Các tập tin trong cùng một thư mục mỗi lần và có cùng tên mỗi lần nhưng được cập nhật.

EDIT: Tôi đang cố gắng thực hiện giải pháp của bạn nhưng tôi đã tìm thấy một số vấn đề: Trên tệp cấu hình của ssh trên cấu hình của tôi có một dòng với "cho phép các nhóm sshdusers". Tôi đã thêm sftp_users. Nhưng có một vấn đề khác ở phía trước. sudo chown root.root / ubfox / không tối ưu với tôi vì root không thể ssh và ghi vào thư mục tập tin mà "ubfox" phải tải xuống (chúng tôi sẽ gọi nó là user1. Tôi muốn user1 có thể viết thư mục và ubfox chỉ đọc. Nếu tôi thay đổi sudo chown user1.user1 / ubfox / và tôi cố gắng sftp với người dùng ubfox kết nối không thành công. Nếu tôi rời khỏi nó như bạn có thể kết nối nhưng tôi không thể thấy currentdirectory tôi chỉ thấy / và empy trên filezilla. Tôi thậm chí đã thêm user1 vào sftp_users, nhưng vẫn không thành công.

Cảm ơn nhiều

Câu trả lời:


11

Hãy bắt đầu

Tạo người dùng ubuntu

sudo useradd ubuntu

Tạo mật khẩu

sudo passwd ubuntu
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

Tạo nhóm chỉ SFTP

xxx@xxx:~$ sudo groupadd sftp_users 

Thêm vào nhóm người dùng "ubfox" cho nhóm chỉ SFTP

xxx@xxx:~$ sudo usermod -G sftp_users ubuntu 

Tạo dir để sftptruy cập

sudo mkdir /ubuntu

Thay đổi chủ sở hữu, vì quyền đọc / ghi

sudo chown root.root /ubuntu/

Thêm quyền

sudo chmod 755 /ubuntu/

Biên tập /etc/ssh/sshd_config

sudo nano /etc/ssh/sshd_config

Nhận xét và thêm một dòng như dưới đây

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

Thêm vào cuối cùng

Match Group sftp_users
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory /ubuntu
  ForceCommand internal-sftp

Khởi động lại sshdịch vụ

sudo service ssh restart

Với cenfiguration này, bạn có thể ssh vào thư mục ubuntuvà nhận tệp. Không thể puthoặcdelete

Thử.

Chỉnh sửa 1

Để sftp trong thư mục bên phải chỉnh sửa /etc/passwd. Thay đổi dòng để người dùng ubuntutrông như thế này

sudo nano /etc/passwd

 ubuntu:x:1001:1001::/ubuntu:

Điều này sẽ thay đổi thư mục nhà của người dùng Ubuntu thành thư mục máy chủ sftp của bạn.

Kích hoạt roottài khoản không phải là ý tưởng tốt.

Bạn có thể ssh đến máy chủ với user1.

Nếu bạn thêm người dùng user1vào, sudoer groupbạn sẽ có thể ghi vào thư mục /ubuntu/và đặt quyền phù hợp

sudo adduser user1 sudo

Tạo thư mục, ghi vào thư mục ubfox. Sau khi hành động, bạn phải đặt quyền cho người dùng ubuntu. Cách dễ nhất là agai đặt quyền 755

sudo chmod 755 -R /ubuntu/

-R - tùy chọn sẽ cho phép đọc tất cả các tệp và thư mục cho người dùng ubuntu


Cảm ơn bạn nhiều. Xem chỉnh sửa của tôi để biết thêm, vì các ý kiến ​​thực sự chặt chẽ.
Bluestarry

1
Bạn có Chỉnh sửa 1 trong câu trả lời của tôi.
2707974

Tôi rất tiếc phải nói rằng nó không hoạt động. Với filezilla sftp tôi không thể ghi vào thư mục với user1 hay ubfox. đăng nhập bằng Ubuntu thông qua sftp cho tôi thư mục / mặc dù có sửa đổi lần cuối. Tôi đã thử nhiều lần và tôi không thể tìm ra vấn đề.
Bluestarry

Tôi cũng nghĩ rằng 755 không tốt cho mục đích này vì chủ sở hữu là root và sudoers không thể ghi vào thư mục với 755
Bluestarry

Thậm chí trở lại trong năm 2015, tôi chắc chắn rằng Ubuntu đã sử dụng adduseraddgroup, hơn useradd, groupaddvv Các sudo chown root.root /ubuntu/chỉ là sai. Bạn đã tạo thư mục bằng cách sử dụng sudo, vì vậy quyền sở hữu đã có root. Nó nên sử dụng ubuntu.sftp_users. Cuối cùng, nếu ban đầu bạn tạo nó như sở hữu ubuntu, mọi thứ từ " Kích hoạt người dùng root " là không cần thiết.
Auspex
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.