Phân quyền các thư mục và file của trang web là vấn đề đau đầu mình gặp phải khi phát triển web trên Linux.
Mục Lục Vấn đề nảy sinh khi Linux chỉ trao quyền sở hữu file hoặc thư mục cho một user duy nhất: Ví dụ: Mình đăng nhập vào hệ thống bằng username thuanbui, và tạo một file mới tên “NEW.php” trong thư mục
Bạn có thể tuỳ chỉnh phân quyền riêng cho mỗi file và thư mục nhất định tuỳ vào mục đích. Tuy nhiên, về lâu dài, sẽ rất khó quản lý việc phân quyền và rất dễ gây lỗi với trang web/ ứng dụng web của bạn. Cách giải quyết: bindfsSau nhiều ngày tìm kiếm giải phát trên Google và mò thử nhiều cách khác nhau, cuối cùng mình đã tìm được phương pháp tốt nhất để giải quyết vấn đề: sử dụng bindfs. Bài viết gốc các bạn có thể xem ở đây: Netgusto Khu dùng bindfs, thư mục gốc của ứng dụng web được giả lập làm một thư mục con trong thư mục home của bạn ( Giải thích e rằng hơi khó hiểu. Đi vào chi tiết luôn cho trực quan nhé. Không cần hiểu sâu lắm, chỉ cần giải quyết được vấn đề là được rồi. Cài đặtCách này chỉ áp dụng cho Ubuntu/Debian. Trong hướng dẫn dưới đây, username của mình sử dụng là bindfs#/var/www/thuanbui.me /home/thuanbui/www/thuanbui.me fuse force-user=thuanbui,force-group=thuanbui,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0 0, thư mục web nằm ở bindfs#/var/www/thuanbui.me /home/thuanbui/www/thuanbui.me fuse force-user=thuanbui,force-group=thuanbui,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0 1
Sau đó, chỉnh sửa file /etc/fstab và thêm dòng này vào cuối file. Nhớ đổi lại đường dẫn và tên username thuanbui sang thông tin của bạn bindfs#/var/www/thuanbui.me /home/thuanbui/www/thuanbui.me fuse force-user=thuanbui,force-group=thuanbui,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0 Lưu file và làm tiếp bước giả lập hệ thống file
Kiểm traKiểm tra xem hệ thống có hoạt động như mong muốn không. Tạo file mới trong thư mục /home
Kiểm tra phân quyền file mới tạo trong thư mục giả lập /home/thuanbui
Kiểm tra phân quyền file mới tạo trong thư mục của ứng dụng web /var/www/thuanbui.me
File hello.txt được tạo bằng tài khoản bindfs#/var/www/thuanbui.me /home/thuanbui/www/thuanbui.me fuse force-user=thuanbui,force-group=thuanbui,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0 0, nhưng nó đã được tự động phân quyền sở hữu cho Hoạt động ngon lành rồi! Từ giờ bạn có thể thoải mái tạo và chỉnh sửa file mới trong thư mục giả lập, tất cả sẽ được tự động phân quyền sở hữu cho |