Đôi điều về hệ thống permission trên linux/mac
Post on 06-Aug-2015
121 Views
Preview:
TRANSCRIPT
Đôi điều về hệ thống permission trên Linux/Mac
Nguyễn Quang Tuyển
tuyen.nguyen@codelovers.vn
Vấn đề rất hay gặp phải khi làm việc với server Linux
• Upload source code lên – Và không chạy như ý muốn
• Nguyên nhân– Upload sai thư mục – Upload sai server – Permission
Nguyên nhân
• Đôi khi download file về được nhưng không upload lên server được – Vì không có quyền ghi (write)
• Chương trình khi muốn upload file hoặc ảnh lên đều báo lỗi – Vì không có quyền ghi (write)
• => Đều liên quan tới permission
Permission
• Permission (quyền) là khái niệm rất rõ ràng và hay gặp khi dùng CLI (Command LIne)
• Trên Windows tương đối ít gặp, trừ trường hợp share nhiều user trên 1 máy tính – Người dùng Mac phổ thông cũng vậy– Vì thế sẽ tương đối bỡ ngỡ khi làm việc với
server Linux
Permission
• $ ssh nginx@54.251.101.25• Câu lệnh trên có ý nghĩa gì?
– Mở 1 kết nối SSH tới server có IP là 54.251.101.25
– Cổng 22
– Với user là nginx
• Nếu kết nối thành công, ta sẽ đăng nhập server với tư cách của user nginx – nginx chỉ là cái tên, không liên quan tới Nginx
Webserver
Permission
$ ls –l
Để kiểm tra permission, ta gõ lệnh
Magneto - Marvel
• ls –l helmet • drwxr-xr-x 2 magneto marvel 4096 6 月 6 19:23 helmet
– d: thường gặp directory hoặc – (file)– rwx: quyền của user sở hữu file hoặc folder – r-x: quyền của group sở hữu file hoặc folder – r-x: quyền của các đối tượng còn lại, others– 2: số liên kết tới file/folder này.
• 1 => đây là file • >2 => đây là folder• Ví dụ: 7 => có 5 folder con trong folder này
– magneto : tên user sở hữu – marvel : tên group sở hữu – 6 月 6 19:23: tên ngày tháng sửa đổi cuối – helmet: tên file/folder
• => Đây là 1 folder, thuộc sở hữu của user magneto và group marvel. User magneto có quyền đọc, ghi và xoá file trong folder cũng như xoá nó. User thuộc group marvel chỉ có quyền đọc và xoá, không có quyền ghi
Áp dụng
• Đối với webserver chạy nginx hoặc apache, thường các request PHP sẽ được xử lý dưới tư cách của user tương ứng, nginx hoặc apache – Các user này được tự động tạo ra khi cài đặt – Có thể thay đổi sang user khác
• Vì thế, nếu ta dùng 1 user khác để upload/tạo file/folder trên server thì có thể gây xung đột khi nginx/apache không đủ quyền sửa/xoá file/folder – Hoặc không thể upload/git file trên folder không phải của
mình
Giải pháp
• Đổi permission – chmod –R 777 /var/www/html
• Đổi user – chown –R nginx /var/www/html
• Đổi group – chown –R :nginx /var/www/html
• Đổi user và group – chown –R nginx:nginx /var/www/html
Giải pháp
Giải pháp
• Dùng chính user nginx/apache để tương tác và sửa đổi file trên server
• User này không nên có quyền sudo
top related