Bạn không thể đặt umask cho mỗi thư mục, đó là một giá trị cấp độ quy trình. Nếu bạn cần ngăn người khác đọc tệp trong một thư mục, hãy thu hồi các bit quyền tương ứng.
Ví dụ: nếu bạn có một thư mục /home/user/directory
chứa một số tệp và thư mục có thể nhận quyền như 777 từ một quy trình, hãy đặt các bit quyền của /home/user/directory
một thứ gì đó như 700. Điều đó sẽ khiến những người dùng khác (không bao gồm root superuser) không thể hạ xuống trong /home/user/directory
.
Tôi bị hoang tưởng và đặt quyền lên /home/user
750, vì vậy chỉ tôi mới có thể đọc, viết và hạ xuống trong thư mục nhà của mình. Điều này có hậu quả là những thư mục như /home/user/Public
không thể được người khác truy cập, nhưng tôi có thể sống với điều đó.
Mỗi lần cập nhật câu hỏi của bạn: vẫn vậy, bạn không thể kiểm soát điều đó trong hệ thống tệp (ngoài việc sử dụng một loại hệ thống tệp khác như FAT rất khó chịu), bạn cần phải làm điều đó trong ứng dụng web của mình. Nếu ứng dụng web của bạn được mã hóa bằng PHP, bạn có thể thay đổi ô ngay lập tức bằng cách sử dụng umask
chức năng:
<?php
umask(0022);
// other code
?>
Bạn có thể đặt tệp này trong tệp cấu hình, như tệp chứa mật khẩu kết nối cơ sở dữ liệu (suy nghĩ trong các ứng dụng như Wordpress).
Hãy nhớ rằng đó là một giá trị quy trình, một số máy chủ web cho phép bạn đặt nó trong các tệp cấu hình của chúng, nếu không bạn có thể sửa đổi các tập lệnh khởi động để đặt ô mong muốn. Hãy nhớ rằng các quyền như 755
và 644
khá nguy hiểm cho các ứng dụng web, nếu mã nhạy cảm, mọi người đều có thể đọc nó.