Nếu bạn là một người dùng Linux hoặc là một quản trị trang web [có thể host được đặt trên server Linux], chắc hẳn bạn đã gặp phải những tình huống khi xóa hay chỉnh sửa một file nào đó và gặp phải lỗi "You do not have the permissions to modify this file". Và sau một vài tìm kiếm trên Google, bạn nhận được một số đề xuất giải pháp đơn giản như setting file permission thành
-rw-r--r-- 1 root root 251 Thg 1 11 14:25 /etc/hosts
2 hoặc -rw-r--r-- 1 root root 251 Thg 1 11 14:25 /etc/hosts
3. Vậy chính xác thì -rw-r--r-- 1 root root 251 Thg 1 11 14:25 /etc/hosts
3 thực chất có nghĩa là gì? Tại sao lại là -rw-r--r-- 1 root root 251 Thg 1 11 14:25 /etc/hosts
5 mà không phải là -rw-r--r-- 1 root root 251 Thg 1 11 14:25 /etc/hosts
6 hoặc -rw-r--r-- 1 root root 251 Thg 1 11 14:25 /etc/hosts
7?Nội dung chính
- Quyền truy cập file trong Linux
- Tìm lời giải mã về con số "777"
- Thiết lập quyền truy cập file
- Thay đổi quyền sở hữu file
- Kết luận
- Tài liệu tham khảo
Để hiểu được ý nghĩa của nó, trước tiên chúng ta hãy đi tìm hiểu về
-rw-r--r-- 1 root root 251 Thg 1 11 14:25 /etc/hosts
8Quyền truy cập file trong Linux
Tìm lời giải mã về con số "777"
9 và -rw-r--r-- 1 root root 251 Thg 1 11 14:25 /etc/hosts
0. Trong đó Classes xác định xem ai có thể truy cập vào file còn Permission xác định loại hành động mà người dùng có thể làm với file đó.chmod {number} filename
Thiết lập quyền truy cập fileClasses - Owner, Group và Others:
- Thay đổi quyền sở hữu file
- Kết luận
- Tài liệu tham khảo
Để hiểu được ý nghĩa của nó, trước tiên chúng ta hãy đi tìm hiểu về
-rw-r--r-- 1 root root 251 Thg 1 11 14:25 /etc/hosts
8Permission, có 3 loại hành động bạn có thể thực hiện đối với một file/folder. Bạn có thể chmod {number} filename
4, chmod {number} filename
5 hoặc
chmod {number} filename
6:- Hệ thống Linux đi kèm với một cơ chế kiểm soát file để xác định xem ai có thể truy cập vào một file hoặc folder cụ thể và những hành động họ có thể làm với nó. Có 2 phần trong cơ chế kiểm soát file này, đó là
9 và-rw-r--r-- 1 root root 251 Thg 1 11 14:25 /etc/hosts
0. Trong đó Classes xác định xem ai có thể truy cập vào file còn Permission xác định loại hành động mà người dùng có thể làm với file đó.chmod {number} filename
- Có 3 loại Classes - Owner, Group và Others:
1: thường là người tạo ra các files/folders. Trong Linux, những files/folders mà bạn tạo trong thư mục Home của mình sẽ thường thuộc về quyền sở hữu của mình, trừ khi bạn chuyển quyền sở hữu đó sang cho một user khác.chmod {number} filename
chmod {number} filename
2: chứa một nhóm người dùng có cùng chung permissionchmod {number} filename
3: Những người dùng khác trong hệ thốngTìm lời giải mã về con số "777"
Thiết lập quyền truy cập file
- Thay đổi quyền sở hữu file
- Kết luận
- Tài liệu tham khảo
Để hiểu được ý nghĩa của nó, trước tiên chúng ta hãy đi tìm hiểu về
-rw-r--r-- 1 root root 251 Thg 1 11 14:25 /etc/hosts
8- Hệ thống Linux đi kèm với một cơ chế kiểm soát file để xác định xem ai có thể truy cập vào một file hoặc folder cụ thể và những hành động họ có thể làm với nó. Có 2 phần trong cơ chế kiểm soát file này, đó là
9 và-rw-r--r-- 1 root root 251 Thg 1 11 14:25 /etc/hosts
0. Trong đó Classes xác định xem ai có thể truy cập vào file còn Permission xác định loại hành động mà người dùng có thể làm với file đó.chmod {number} filename
- Có 3 loại Classes - Owner, Group và Others:
1: thường là người tạo ra các files/folders. Trong Linux, những files/folders mà bạn tạo trong thư mục Home của mình sẽ thường thuộc về quyền sở hữu của mình, trừ khi bạn chuyển quyền sở hữu đó sang cho một user khác.chmod {number} filename
chmod {number} filename
2: chứa một nhóm người dùng có cùng chung permissionchmod {number} filename
3: Những người dùng khác trong hệ thống- Còn đối với Permission, có 3 loại hành động bạn có thể thực hiện đối với một file/folder. Bạn có thể
4,chmod {number} filename
5 hoặcchmod {number} filename
6:chmod {number} filename
7: Bạn chỉ có thể xem được file, không thể sửa đổi nội dung của file được. Khi áp dụng với Folder, bạn chỉ có thể xem được các files trong folder đó, không thể xóa hay thêm các file vào folder đó.chmod {number} filename
8: Bạn có thể sửa đổi nội dung của một file. Đối với folder, bạn có thể xóa hoặc thêm các files vào folder đó. [Lưu ý rằng: quyềnchmod {number} filename
8 đối với một folder sẽ cho phép xóa các files trong folder đó ngay cả khi user không có quyền write đối với file đó].chmod {number} filename
0: Được sử dụng chủ yếu khi bạn muốn run một file [thường là một script]. Đối với folder, ta có thể sử dụng nó để hạn chế/cho phép thay đổi thư mục hiện tại. Ví dụ như lệnhchmod 644 samplefile
1.chmod 644 samplefile
- Khi kết hợp
9 với-rw-r--r-- 1 root root 251 Thg 1 11 14:25 /etc/hosts
3, chúng ta có thể kiểm soát việc những ai có thể truy cập vào file và những hành động họ có thể làm đối với chúng.chmod 644 samplefile
- Ví dụ, một
1 thường sẽ có tất cả permissions [read, write và execute] để truy cập tới một file. Nếu bạn không phải là owner của file/folder, bạn phải thay đổichmod {number} filename
5 của file/folder đó thành tên của bạn, hoặc thay đổi permission của Group của bạn hoặc Others thành những permission phù hợp.chmod 644 samplefile
- Mọi file, folder trong Linux đều chứa 8 bits dữ liệu lưu quyền truy cập. Ở dạng nhị phân cơ bản của nó, nó sẽ là "000", tương đương với việc không có bất cứ quyền truy cập nào.
- Khi bạn muốn thiết lập quyền
7: nó sẽ thêm 4-bit vào dữ liệu, tạo thành "100" [dạng nhị phân] hoặc "4" dạng thập phân.chmod {number} filename
Thiết lập quyền
chmod {number} filename
8 sẽ tương đương với việc thêm 2-bit vào dữ liệu, tạo thành "010" [nhị phân] hoặc "2" dạng thập phân.- Cuối cùng, thiết lập quyền
0 sẽ thêm 1-bit vào dữ liệu, tạo thành "001" hoặc "1" dạng thập phân.chmod 644 samplefile
- Như vậy, nói ngắn gọn lại thì:
- Read [
9] tương đương vớichmod 644 samplefile
0chmod {options} filename
Write [
chmod {options} filename
1] tương đương với chmod {options} filename
2 - wExecute [
chmod {options} filename
3] tương đương với chmod {options} filename
4 - xls -l /etc/hosts
Khi bạn muốn thiếp lập một permissions đối với file/folder nào đó, bạn chỉ cần cộng thêm số thập phân tương ứng với permission đó là được. Ví dụ, khi bạn muốn thiết lập permission là read và execute, số tương ứng sẽ là 4[r] + 1[x] =
chmod {options} filename
5. Đối với read, write và execute sẽ là 4[r] + 2[w] + 1[x] = chmod {options} filename
6.-rw-r--r-- 1 root root 251 Thg 1 11 14:25 /etc/hosts
Ta có:
- owner = Read và Write [rw-]
- group = Read [r--]
- others = Read [r--]
Thiết lập quyền truy cập file
Trong Linux, bạn có thể dễ dàng thay đổi quyền truy cập file/folder bằng câu lệnh Terminal đơn giản:
chmod u+x file1
3. Có 2 cách để thay đổi quyền truy cập với chmod u+x file1
3, đó là sử dụng chmod u+x file1
5 và chmod u+x file1
6. chmod u+x file1
3. Có 2 cách để thay đổi quyền truy
cập với chmod u+x file1
3, đó là sử dụng chmod u+x file1
5 và chmod u+x file1
6.Octal mode
Sử dụng những numbers như đã phân tích ở phía trên [ví dụ
chmod {options} filename
7], ta có được cách thay đổi như sau:chmod {number} filename
Ví dụ:
chmod 644 samplefile
có nghĩa là chúng ta mới thiết lập quyền Read và Write cho Owner, quyền Read cho Group và Others đối với file có tên
chmod u+x file1
8Symbolic mode
Cú pháp của cách này như sau:
chmod {options} filename
với options được định nghĩa như sau:
u | Owner |
g | Group |
o | Other |
a | Tất cả [Owner, group và other], tương đương ugo |
r | read |
w | write |
x | execute |
+ | Thêm permission |
- | Loại bỏ permission |
= | Gán permission bằng như vậy |
Với cách này, chúng ta có thể thêm [+], bớt [-], gán [=] các quyền [r w x] cho từng nhóm [u g o] hoặc cả 3 nhóm [a hoặc ugo]. Ưu điểm của cách này là ta có thể kế thừa lại quyền truy cập trước đó.
Để hiểu hơn về cách này, chúng ta cùng đến với một số ví dụ sau đây:
Thêm quyền execute cho Owner:
chmod u+x file1
Thêm quyền write and execute cho Group:
chmod g+wx file2
Xóa quyền execute cho Other:
chmod o-x file3
Thêm tất cả quyền cho mọi users:
chmod a+rwx file4
Thay đổi quyền sở hữu file
Như đã nói ở phần trên, chúng ta có thể thay đổi quyền sở hữu một file từ người này sang người khác, sử dụng câu lệnh
chmod u+x file1
9. chmod u+x file1
9.Ví dụ, bạn muốn chuyển
chmod {number} filename
1 của file chmod g+wx file2
1 sang user chmod g+wx file2
2, cú pháp sẽ như sau:sudo chown vuonghung LinuxPermission
Để chuyển
chmod {number} filename
2 của file chmod g+wx file2
1 sang group chmod g+wx file2
5, cú pháp sẽ như sau:-rw-r--r-- 1 root root 251 Thg 1 11 14:25 /etc/hosts
0Để vừa chuyển
chmod {number} filename
1 của file chmod g+wx file2
1 sang chmod g+wx file2
2, vừa chuyển group sang chmod g+wx file2
5, cú pháp sẽ như sau:-rw-r--r-- 1 root root 251 Thg 1 11 14:25 /etc/hosts
1Kết luận
Sau bài viết này, hi vọng bạn đọc sẽ cảm thấy tự tin mỗi khi gặp phải những lỗi về permission trong Linux.
Tài liệu tham khảo
- //www.maketecheasier.com/file-permissions-what-does-chmod-777-means/
- //help.ubuntu.com/community/FilePermissions
- //blogchiasekienthuc.wordpress.com/2015/10/30/phan-quyen-trong-linux-bai-1-quan-ly-user-group-va-phan-quyen-tren-linux/