Đôi điều về hệ thống permission trên linux/mac

Post on 06-Aug-2015

121 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

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