Đá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 vi
hoặ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 và 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
và /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
và /usr/bin
. Nhưng đó chỉ là khởi đầu. Các ứng dụng cần các thư viện từ /usr/lib
và /lib
, đến lượt nó cần quyền truy cập vào tài nguyên hệ thống, trong đó /dev
và các tệp cấu hình trong /etc
và /usr/share
.
Đây chỉ là phần chỉ đọc. Các ứng dụng cũng sẽ muốn /tmp
và 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 /
.