quyền 755 trên / nhà / <người dùng> /


14

Tôi tự hỏi tại sao theo mặc định thư mục của tôi /home/<user>/có quyền được đặt thành 755. Điều này cho phép người dùng khác nhập vào các thư mục và đọc các tập tin trong nhà của tôi. Có bất kỳ lý do chính đáng cho việc này?

Tôi có thể đặt quyền 700cho nhà của tôi và tất cả các thư mục phụ không, ví dụ:

chmod -R o-xw /home/<user>/ 
chmod -R g-xw /home/<user>/

mà không phá vỡ cái gì?

Ngoài ra, có thể đặt quyền trên nhà của tôi để tất cả các tệp mới được tạo sẽ có 600và thư mục 700không?


1
trong mặc định của RHEL / CentOS 5 là 700, nhưng trong Ubuntu 755
Rahul Patil

2
Nó phổ biến trong một số thiết lập nhất định sử dụng public_htmlđể cho phép máy chủ web truy cập vào thư mục. Mặc dù nó rất thuận tiện cho người dùng, tôi không phải là một fan hâm mộ lớn của nó.
Marco

Câu trả lời:


18

Nếu thư mục chính của bạn là riêng tư, thì không ai khác có thể truy cập bất kỳ tệp nào của bạn. Để truy cập một tệp, một quy trình cần phải có quyền thực thi đối với tất cả các thư mục trên đường dẫn xuống cây từ thư mục gốc. Ví dụ, cho phép người dùng khác để đọc /home/martin/public/readme, các thư mục /, /home, /home/martin/home/martin/publictất cả cần phải có các điều khoản d??x??x??x(nó có thể được drwxr-xr-x, hoặc drwx--x--xhoặc một số kết hợp khác), và bổ sung các tập tin readmephải được công khai có thể đọc được ( -r??r??r??).

Thông thường có các thư mục nhà có chế độ drwxr-xr-x(755) hoặc ít nhất drwx--x--x(711). Chế độ 711 (chỉ thực thi quyền) trên một thư mục cho phép người khác truy cập một tệp trong thư mục đó nếu họ biết tên của nó, nhưng không liệt kê nội dung của thư mục. Trong thư mục chính đó, tạo các thư mục con công cộng và riêng như mong muốn.

Nếu bạn không bao giờ, muốn người khác đọc bất kỳ tệp nào của bạn, bạn có thể tạo thư mục chính của mình drwx------(700). Nếu bạn làm điều đó, bạn không cần phải bảo vệ các tệp của mình. Điều này sẽ không phá vỡ bất cứ điều gì ngoài khả năng người khác đọc tệp của bạn.

Một điều phổ biến có thể phá vỡ, bởi vì đó là một trường hợp người khác đọc tệp của bạn, là nếu bạn có một thư mục như ~/public_htmlhoặc ~/wwwcó chứa trang web của bạn. Tùy thuộc vào cấu hình của máy chủ web, thư mục này có thể cần phải đọc được trên toàn thế giới.

Bạn có thể thay đổi quyền mặc định cho các tệp bạn tạo bằng cách đặt giá trị umask trong .profile. Umask là phần bổ sung của các quyền tối đa của một tập tin. Các giá trị phổ biến bao gồm 022 (chỉ có thể ghi bởi chủ sở hữu, mọi người có thể đọc và thực thi được), 077 (chỉ truy cập bởi chủ sở hữu) và 002 (như 022, nhưng cũng có thể ghi theo nhóm). Đây là các quyền tối đa: các ứng dụng có thể đặt nhiều quyền hạn chế hơn, ví dụ: hầu hết các tệp cuối cùng không thể thực thi được vì ứng dụng tạo ra chúng không đặt các bit quyền thực thi khi tạo tệp.


Tôi không chạy máy chủ web trên máy của mình, vì vậy tôi không cần cho phép truy cập ~/public_html. Có chương trình phổ biến nào khác ngoài Apache, có thể cần truy cập vào nhà tôi không? Những gì về postfix, ví dụ.
Martin Vegter

1
@MartinVegter Điểm tốt. Các chương trình email luôn chạy như người dùng của bạn khi họ gửi thư, nhưng một số hệ thống yêu cầu .forwardphải có thể đọc được bởi hệ thống thư chạy với tư cách là người dùng hệ thống. Postfix tuy nhiên là tốt với một tư nhân .forward.
Gilles 'SO- ngừng trở nên xấu xa'

3

Nếu bạn kiểm tra trong RHEL / CentOS 5.x, Quyền mặc định là 700, nhưng trong Ubuntu là 755.

Theo một nhân viên Ubuntuforms.org , đó là để giúp chia sẻ tệp giữa những người dùng mới dễ dàng hơn. Bạn có thể thay đổi quyền thành 700 hoặc 750 nếu bạn không muốn các tệp khác có thể đọc và thực thi được.

Ngoài ra, có thể đặt quyền cho nhà của tôi không, để tất cả các tệp mới được tạo sẽ có 600 và thư mục 700?

Bạn có thể thiết lập umask 0077cho điều đó

Nó sẽ hoạt động như sau:

Quyền mặc định cho thư mục là 0777, vì vậy khi bạn đặt umask 0077thì thư mục mới sẽ tạo với quyền (0777-0077) tức là 0700như bạn muốn.


không umaskáp dụng cho các tập tin là tốt? Nó dường như chỉ có hiệu lực khi tôi tạo các thư mục mới.
Martin Vegter

2
Có ... bạn có thể kiểm tra trình bao hiện tại của mình chỉ cần thiết lập umask 0077và tạo tệp, thư mục và kiểm tra quyềnstat filename
Rahul Patil

3

Vâng, có một lý do rất chính đáng. Lưu ý rằng những người dùng khác có thể đọc nhưng không ghi vào tệp của bạn. Điều này rất hữu ích trong các mạng chuyên nghiệp vì bạn có thể dễ dàng chia sẻ tệp của mình với đồng nghiệp.

Ví dụ, trong phòng thí nghiệm tôi từng làm việc, tất cả chúng tôi đều có quyền truy cập vào các $HOMEthư mục của nhau để chúng tôi có thể dễ dàng chia sẻ dữ liệu hoặc tập lệnh của chúng tôi với nhau. Nếu bạn tôi Alice có một kịch bản hay để làm X, tôi sẽ chỉ chạy nó:

~alice/bin/scriptX.pl mydata

Như những người khác đã đề cập, để thay đổi điều này, bạn sẽ cần phải đặt ô. Ví dụ: để bạn có thể đọc các tệp và thư mục mới, hãy thêm tệp này vào ~/.bashrc:

umask 0077

3
Một chút về việc sử dụng kịch bản Perl của Alice thật đáng sợ. Sao chép tập lệnh vào thư mục chính của bạn, kiểm tra nó và sau đó chỉ sử dụng bản sao của bạn.
AlexWebr

6
@AlexWebr trước hết, tôi sẽ đọc nó trước, Alice thứ hai trong trường hợp này là người ngồi cạnh tôi, người vừa viết một kịch bản hay. Chúng tôi có thể giả định rằng tôi tin tưởng họ nhiều như bất kỳ nhà phát triển nào có công việc mà tôi sẽ cài đặt và thực thi một cách mù quáng trên máy của mình. Nhiều hơn thực tế. Ngoài ra, đây là một phòng thí nghiệm nên chúng tôi thường tải xuống một vài GB bộ gen và đó là một cách dễ dàng để cung cấp cho nhau quyền truy cập vào chúng.
terdon

1

Bạn cần thay đổi ô, để thay đổi cách tạo tệp mới trong thư mục nhà của bạn. Điều này thường được thực hiện bằng cách chỉnh sửa tập lệnh khởi động shell của bạn, có một tổng quan khá tốt ở đây

Đối với việc thay đổi tất cả các quyền trong thư mục nhà của bạn thành 700, tôi tự hỏi điều đó sẽ ảnh hưởng đến các dịch vụ chạy trong tài khoản dịch vụ cần thông tin cấu hình từ thư mục nhà của bạn như thế nào ... Cuối cùng, bạn có thể ngăn các dịch vụ này đọc các tệp cấu hình mà họ yêu cầu .

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.