Cách giới hạn người dùng vào một thư mục và không cho phép họ di chuyển ra khỏi thư mục của mình


28

Tôi có máy chủ Ubuntu trên digitalocean và tôi muốn cung cấp cho ai đó một thư mục cho tên miền của họ trên máy chủ của tôi, vấn đề của tôi là, tôi không muốn người dùng đó xem các thư mục hoặc tệp của tôi hoặc có thể di chuyển thư mục của họ.

Làm cách nào tôi có thể hạn chế người dùng này trong thư mục của họ và không cho phép anh ta di chuyển ra ngoài và xem các tệp / thư mục khác?


Bạn có thể muốn sử dụng các tài khoản người dùng riêng cho mục đích đó.
Martin von Wittich

Hoặc có thể là Jailkit
FloHimelf

chmod không phải là giải pháp tốt vì tôi không thể sử dụng nó cho tất cả các thư mục trong máy chủ của mình, tôi đã sử dụng trước khi anh ấy có thể chuyển ra khỏi thư mục của mình
badr

Thật ra tôi không biết gì về nhóm vì trước đây tôi không sử dụng nó, bạn có thể giải thích cho tôi lợi ích của nó không?
badr

Một phương pháp khác - serverfault.com/questions/497011/ Mạnh .
slm

Câu trả lời:


26

Tôi đã giải quyết vấn đề của mình bằng cách này:

Tạo một nhóm mới

$ sudo addgroup exchangefiles

Tạo thư mục chroot

$ sudo mkdir /var/www/GroupFolder/
$ sudo chmod g+rx /var/www/GroupFolder/

Tạo thư mục nhóm có thể ghi

$ sudo mkdir -p /var/www/GroupFolder/files/
$ sudo chmod g+rwx /var/www/GroupFolder/files/

Đưa cả hai cho nhóm mới

$ sudo chgrp -R exchangefiles /var/www/GroupFolder/

sau đó tôi đã đi đến /etc/ssh/sshd_configvà thêm vào cuối tập tin:

Match Group exchangefiles
  # Force the connection to use SFTP and chroot to the required directory.
  ForceCommand internal-sftp
  ChrootDirectory /var/www/GroupFolder/
  # Disable tunneling, authentication agent, TCP and X11 forwarding.
  PermitTunnel no
  AllowAgentForwarding no
  AllowTcpForwarding no
  X11Forwarding no

Bây giờ tôi sẽ thêm người dùng mới với tên obama vào nhóm của mình:

$ sudo adduser --ingroup exchangefiles obama

Bây giờ mọi thứ đã xong, vì vậy chúng tôi cần khởi động lại dịch vụ ssh:

$ sudo service ssh restart

Lưu ý: người dùng hiện không thể thực hiện bất kỳ điều gì trong filethư mục. Ý tôi là tất cả các tệp của anh ta phải nằm trong Thư mục tệp.


1
Tôi đã chuyển người dùng sudo su - obamavà vẫn có thể thấy các tệp của người khác @badr
vào

11

Hạn chế là một vấn đề hợp lý và nó phải được xác định một cách nhất quán. Những gì bạn có thể làm là xác định một vỏ bị hạn chế cho người dùng làm vỏ mặc định của anh ta .

Ví dụ: cài đặt /bin/rksh(một kornshell bị hạn chế) thay vì vỏ được xác định trước của người dùng làm vỏ mặc định cho người dùng đó /etc/profile.

LƯU Ý: nếu tệp thực thi có tên này không tồn tại trên hệ thống của bạn thì hãy tạo một liên kết cứng ln /bin/ksh /bin/rkshkshsẽ xác định theo tên của nó xem nó có bị hạn chế hay không.

Các vỏ hạn chế sẽ (ví dụ) ngăn chặn việc làm một cdlệnh, hoặc chỉ định một lệnh với một /(một con đường rõ ràng) trong invocation, và nó không cho phép thay đổi PATH, SHELLhoặc ENVthay đổi, và chuyển hướng đầu ra cũng bị cấm.

Bạn vẫn có thể cung cấp các tập lệnh shell được xác định trước cho người dùng sẽ (dưới sự kiểm soát của người triển khai tập lệnh!) Cho phép người dùng chạy (các) tập lệnh cụ thể đó trong một môi trường không bị hạn chế.


Câu trả lời này sẽ là nhiều đơn giản hơn việc thiết lập một môi trường chroot vì vậy tôi đã lên bình chọn nó.
Azhrei

5

Lệnh chrootcho phép bạn tạo một root bị hạn chế cho người dùng, câu hỏi này giải thích khái niệm chrootvà cách sử dụng nó.

Cập nhật: Tìm kiếm nhà tù chroot được thiết lập trên đại dương kỹ thuật số , đưa ra tài liệu cụ thể hơn về môi trường của họ. Đây là một cặp vợ chồng mà tôi nghĩ có liên quan đến những gì bạn có thể cần.

Cách định cấu hình môi trường Chroot để kiểm tra trên Ubuntu Ubuntu 12.04

Làm cách nào để cho phép truy cập SSH bị hạn chế đối với người dùng bị bỏ tù

Đây là một cái liên quan đến jailkit , mà FloHim tự đề xuất.


vâng, họ giải thích nhưng họ không giải thích cách sử dụng. Tôi đã thử với một số lời khen nhưng đó là những gì tôi nhận được: chroot: không chạy được lệnh '/ bin / bash': Không có tệp hoặc thư mục như vậy
badr

1
Đúng, nhưng bây giờ bạn đã nghe nói về nhà tù chroot, bạn có thể nghiên cứu thêm, tôi đã cập nhật câu trả lời với một số liên kết đến các tài liệu trên Digital Ocean, đưa ra lời giải thích phù hợp hơn với môi trường của họ.
X Tian
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.