Làm cách nào tôi có thể ngăn người dùng truy cập bất cứ thứ gì ngoại trừ thư mục chính của họ?


22

Làm cách nào tôi có thể ngăn người dùng truy cập bất cứ thứ gì ngoại trừ thư mục chính của họ?

Ví dụ: tôi có một phân vùng NTFS được gắn bên dưới /media/ntfs, vì vậy nếu người dùng đăng nhập thông qua ssh, anh ta có thể tiếp cận phân vùng này. Làm thế nào tôi có thể vô hiệu hóa người dùng cdra khỏi thư mục nhà của họ?

Câu trả lời:


22

Đánh giá lại yêu cầu của bạn đầu tiên. Vấn đề bạn đang cố gắng giải quyết là gì? Tại sao bạn muốn ngăn người dùng rời khỏi thư mục nhà của họ? Không phải là bạn không muốn họ lục lọi trong các thư mục cụ thể khác - chẳng hạn như thư mục nhà của những người dùng khác?

Rất khó để ngăn chặn người dùng rời khỏi thư mục nhà của họ. Nó thực sự là một chút ngớ ngẩn quá (giải thích sau). Việc ngăn người dùng vào các thư mục mà bạn không muốn họ nhập sẽ đơn giản hơn nhiều.

Trước hết, có, bạn có thể cung cấp cho người dùng cái gọi là vỏ bị hạn chế , xem man rbash. Điều này sẽ ngăn chúng khỏi - cdở nơi khác, nhưng chỉ bên trong lớp vỏ đó. Nếu người dùng bắt đầu vihoặc nano(hoặc bất kỳ chương trình nào khác có khả năng mở tệp), họ có thể mở lại tệp ở bất kỳ đâu trên hệ thống. Như một vấn đề của thực tế, một vỏ bị hạn chế không ngăn chặn ví dụ cat /etc/passwd.

Bước tiếp theo là một nhà tù gốc. Thông tin thêm về wiki cộng đồng và trong câu hỏi này . Mặc dù một nhà tù gốc sẽ khóa người dùng trong một khu vườn có tường bao quanh, trong đó họ không có quyền truy cập vào gì ngoài các tệp và lệnh mà bạn cố tình đặt ở đó, các thư mục gốc thực sự được dùng để cách ly phần mềm không tin cậy hơn là người dùng. Cụ thể, chúng dành cho phần mềm cần chạy với các đặc quyền nâng cao - do đó là một nhà tù gốc .

Người dùng, mặt khác, đáng tin cậy : họ đã phải xác thực chạy mà không có đặc quyền nâng cao. Do đó, quyền truy cập tệp đủ để ngăn họ thay đổi các tệp mà họ không sở hữu và không nhìn thấy những thứ họ không phải xem. Để ngăn người dùng đọc nội dung của tệp, hãy xóa tính dễ đọc trên thế giới của nó chmod o-r FILE. Để giữ người dùng ra khỏi một thư mục, làm cho nó không thể truy cập được chmod o-rwx DIR.

Khả năng đọc thế giới là mặc định, vì lý do chính đáng: người dùng thực sự cần hầu hết những thứ trên hệ thống tệp. Đừng khóa người dùng trong nhà của họ chỉ vì có những bí mật bên ngoài.

Tại sao khóa người dùng trong thư mục nhà của họ là một chút ngớ ngẩn

Để làm bất cứ điều gì hữu ích, người dùng cần truy cập vào các lệnh và ứng dụng. Đây là trong các thư mục như /bin/usr/bin, vì vậy trừ khi bạn sao chép tất cả các lệnh họ cần từ đó vào thư mục chính của họ, người dùng sẽ cần truy cập vào /bin/usr/bin. Nhưng đó chỉ là khởi đầu. Các ứng dụng cần các thư viện từ /usr/lib/lib, đến lượt nó cần quyền truy cập vào tài nguyên hệ thống, trong đó /devvà các tệp cấu hình trong /etc/usr/share.

Đây chỉ là phần chỉ đọc. Các ứng dụng cũng sẽ muốn /tmpvà thường xuyên /varđể viết vào. Vì vậy, nếu bạn muốn hạn chế người dùng trong thư mục chính của anh ta, bạn sẽ phải sao chép rất nhiều vào nó. Trong thực tế, gần như toàn bộ hệ thống tệp cơ sở - mà bạn đã có, đặt tại /.


2
Điều này không có ý nghĩa với tôi, có thể có rất nhiều lý do tại sao bạn muốn người dùng chỉ có quyền truy cập vào 1 thư mục. Một ví dụ có thể là cấp quyền truy cập vì mục đích truyền tệp từ máy chủ này sang máy chủ khác. Tôi nghĩ rằng điều đó hơi ngớ ngẩn khi bất kỳ người dùng nào cũng có thể duyệt toàn bộ hệ thống.
Richard

Trong trường hợp của tôi, tôi đang thiết lập một người dùng để cho phép các thiết bị đảo ngược ssh vào máy để quản lý thiết bị từ xa. Vì vậy, tôi muốn giới hạn tài khoản người dùng đó càng nhiều càng tốt trong trường hợp nó bị xâm phạm - tôi chỉ cần kết nối thành công. Tôi sẽ không nói điều đó thật ngớ ngẩn, nó chỉ phụ thuộc vào những gì bạn đang cố gắng thực hiện.
Giăng

7

Tôi cần phải cung cấp quyền truy cập cho người sử dụng samtrên /var/xyzchỉ và nội dung khối niêm yết của các thư mục khác bên trong/var/

Tôi đã sử dụng chuỗi lệnh sau:

setfacl -R -m user:sam:--- /var/

setfacl -m user:sam:rx /var/

setfacl -R -m user:sam:rwx /var/xyz/

Vì vậy, người dùng có thể thấy các thư mục được liệt kê bên dưới /var/nhưng không thể xem nội dung trong các thư mục phụ ngoại trừ /var/xyz.


2
Chào mừng bạn đến với Askubfox! Tôi không xem đây là câu trả lời cho câu hỏi liên quan đến thư mục nhà.
Anh Cả Geek

3
@ElderGeek OP không thể sử dụng các lệnh tương tự, nhưng đối với thư mục chính?
Seth

@ Có, nhưng điều đó sẽ rõ ràng với người dùng trung bình?
Anh Cả Geek

3
@Elder Vâng, tôi tin là như vậy. Không hoàn hảo, nhưng vẫn là một câu trả lời
Seth

1

Ngoài việc hạn chế quyền truy cập vào các thư mục khác, đặc biệt là thư mục nhà của người dùng khác, tôi cũng không muốn người dùng ll /homevà xem tên của những người dùng khác trên hệ thống.

Để ngăn chặn điều này, như root chạy chmod 701 /home. Điều này làm cho /homethư mục tự "đọc / ghi / thực thi" thành root, nhưng chỉ "thực thi" cho mọi người khác. /homevẫn có thể truy cập được cd, nhưng người dùng không thể đọc nội dung của nó - các thư mục nhà của người dùng khác và do đó tên người dùng.


Điều này, mặc dù không hoàn toàn là một câu trả lời cho câu hỏi, nhưng vẫn rất thú vị ... Trong tình huống bạn vận hành một máy chủ từ xa mà khách hàng có thể ssh in, điều này thật tuyệt. Họ vẫn có thể di chuyển xung quanh như họ mong đợi, trong khi vẫn giữ quyền riêng tư của tên người dùng khác.
Jack_Hu
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.