Một cách khác là đặt người dùng apache và "người sử dụng của khách hàng" trong một nhóm mới. Thêm thư mục nên sử dụng bit dính SGID
để mỗi tệp mới được gán nhóm cho nhóm mới này. Bằng cách này, máy chủ web và "người sử dụng khách hàng" có thể làm việc với các tập tin mà không cần bất kỳ vấn đề
[17:57] [email protected] /tmp/test $ ls -al /tmp/test
total 9
drwxrwsr-x 2 root users 48 Apr 1 17:55 .
drwxrwxrwt 36 root root 9264 Apr 1 17:53 ..
Như bạn thấy thư mục có cây gậy chút SGID
và chủ sở hữu là "người sử dụng" nhóm trong đó I (progman
) là. Không nếu người dùng khác thêm tệp mà nhóm sẽ tự động được đặt thành nhóm này
[17:55] proglap ~ # touch /tmp/test/x
Điều này được thực thi từ gốc. Bây giờ chúng ta nhận được:
[17:57] [email protected] /tmp/test $ ls -la /tmp/test
total 9
drwxrwsr-x 2 root users 72 Apr 1 17:59 .
drwxrwxrwt 36 root root 9264 Apr 1 17:53 ..
-rw-r--r-- 1 root users 0 Apr 1 17:59 x
Như bạn thấy các tập tin bổ sung là từ gốc, nhưng nhóm được thiết lập để users
và cách này tôi thể gỡ bỏ nó
[18:00] [email protected] /tmp/test $ rm x
rm: remove write-protected regular empty file `x'? y
[18:01] [email protected] /tmp/test $ ls -la /tmp/test
total 9
drwxrwsr-x 2 root users 48 Apr 1 18:01 .
drwxrwxrwt 36 root root 9264 Apr 1 17:53 ..
Hãy ghi nhớ rằng bạn vẫn cần thay đổi chmod
nếu bạn muốn chỉnh sửa tệp là rw-r--r--
chỉ là quyền truy cập đọc nhóm. Nhưng thay đổi chmod
, thậm chí có thể làm việc với umask
, là tốt hơn so với giao dịch với quyền truy cập root và sử dụng chown
.
Điều này làm việc Sanhe - Cảm ơn bạn –
** Cảnh báo Tính năng này đã được DEPRECATED là của PHP 5.3.0 và REMOVED là của PHP 5.4.0. ** – Jim