Làm cách nào tôi có thể ngăn người khác xem nội dung của thư mục nhà của tôi, ngoại trừ thư mục công cộng?


3

Trên Mac OS X, việc ngăn mọi người nhìn thấy các tệp có trong thư mục chính của bạn là tương đối dễ dàng: chmod 700 ~

Tôi muốn thực hiện một biến thể của điều đó. Tôi muốn nó để khi mọi người mở / Người dùng / stalepretzel, họ chỉ thấy một thư mục được liệt kê: Công khai. Từ đó, tôi muốn đặt quyền của Công chúng để mọi người có thể vào thư mục đó và đọc bất cứ điều gì không được chỉ định khác.

Một lần nữa, để làm rõ, tôi muốn nó để một người dùng không phải quản trị viên khác có thể thực thi:

$ cd /Users/stalepretzel; ls
Public
$ cd Public
All     the     contents     of
my      public  folder

Câu trả lời:


3

Tôi sợ điều này là không thể. Người dùng không thể truy cập bất kỳ tệp hoặc thư mục ở bất kỳ đâu trong cây của thư mục mà anh ta không có quyền đọc. Nếu người dùng có quyền đọc cho một thư mục (và tất cả các siêu mục của nó), anh ta có thể lsvà xem tất cả các tệp mà nó chứa.

Nó có thể không cảm thấy khá gọn gàng, nhưng nếu bạn muốn ngăn người dùng không thể vào lsthư mục nhà của bạn, bạn sẽ phải tạo Publicmột nơi nào đó bên ngoài ~. Nếu bạn dễ dàng truy cập thư mục công cộng của riêng mình hơn ~/Public, hãy tạo một liên kết tượng trưng (ví dụ ln -s ~/Public /Users/Shared/stalepretzel).


Ah, ý kiến ​​hay đấy. Có lẽ tôi sẽ chấp nhận điều này nếu không có bài viết nào khác sớm. Cảm ơn!
stalepretzel

2

Tôi không nghĩ bạn có thể làm tốt hơn bất kỳ thứ gì (thứ Unix chuẩn):

$ chmod 711 ~/
$ chmod g-rx,o-rx ~/*
$ chmod 755 ~/Public

để làm cho thư mục nhà của bạn có thể truy cập được, nhưng không thể đọc được và mọi thứ khác ngoài 'Công khai' không thể truy cập được.

[Tóm tắt quyền hạn Unix - Thực thi các bit trên thư mục cho phép truyền tải, Đọc các bit cho phép xem nội dung.]

Thật không may, điều đó không cho phép bất cứ ai thấy rằng thư mục Công cộng của bạn tồn tại - và không có cách nào để làm điều đó, bởi vì sự tồn tại của thư mục Công cộng phụ thuộc vào việc có thể đọc thư mục chính của bạn dưới dạng "tệp" chứa nó (tên trong thư mục mẹ, quyền là một phần của tệp inode.)


-1

Mở thư mục nhà của bạn để được đọc:

$ chmod 0744 ~

và giấu mọi thứ trong đó:

$ chmod 700 ~/*

sau đó mở ra thư mục công cộng:

$ chmod 0744  ~/Public

Lưu ý: Đã chỉnh sửa thứ tự lệnh để làm cho chính xác


Điều này không hoạt động. Điều này cho phép mọi người xem danh sách toàn bộ thư mục chính của tôi (xấu) và không cho phép mọi người xem nội dung của hoặc nhập thư mục Công cộng (xấu). Ngoài ra, người dùng không thể mở các tệp có trong thư mục Công cộng của tôi nếu họ biết vị trí của họ (xấu). À!
stalepretzel

Ý tưởng là mở thư mục chính của bạn, sau đó ẩn mọi thứ bên trong nó, sau đó chỉ mở thư mục Công cộng. Bạn sẽ phải nhớ để ẩn bất kỳ tập tin / thư mục mới nào ở nhà không ở nơi Công cộng, nhưng nó thực hiện những gì bạn yêu cầu. Tôi đã chỉnh sửa thứ tự lệnh để làm cho nó rõ ràng hơn
Robert Swisher
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.