Làm cách nào để đặt quyền sở hữu nhóm mặc định cho các tệp trong một thư mục?


20

Tôi đang chạy một ứng dụng web cakephp trên Linode LAMP. Tôi thấy rằng các tệp tạm thời của tôi được tạo với quyền sở hữu root: root. Nhưng ứng dụng web đang chạy với quyền của Apache (dữ liệu www). Điều này gây ra cảnh báo bất cứ khi nào có tệp mới được tạo vì nó không thể ghi đối với dữ liệu www của người dùng.

Làm cách nào để thay đổi quyền sở hữu mặc định thành dữ liệu www trên bất kỳ tệp mới nào được tạo trong thư mục tạm thời?

Cảm ơn bạn đã giúp đỡ!

Câu trả lời:


23

Để gán quyền sở hữu nhóm theo dữ liệu www bất kể uid / gid của quá trình tạo tệp, bạn cần đặt bit setgid trên thư mục.

    sudo chown :www-data <dir>
    sudo chmod g+s <dir>

Lưu ý rằng bạn cũng phải làm cho thư mục có thể ghi được bằng bất kỳ quy trình nào sẽ tạo các tệp. Nếu đó là bất cứ ai trừ root, bạn cũng có thể cần chmod o+rwxlàm cho mọi thứ hoạt động tốt.


Còn thư mục con thì sao?
mcont 23/12/14

Việc gắn cờ -R để chown và chmod làm cho lệnh đó được đệ quy. Vì vậy, các lệnh bên dưới sẽ gán quyền sở hữu nhóm mặc định cho <dir> cũng như tất cả các thư mục con của <dir>: sudo chown -R :www-data <dir>sudo chmod -R g+s <dir>
Josh Wieder
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.