Nếu bạn chưa biết các quyền truy cập file và thư mục trên Linux cũng như cách thay đổi quyền truy cập trên Linux bằng lệnh Chmod thì hãy tham khảo ngay bài viết của chúng tôi nhé.
Trên Linux, điểm mạnh của nó là hệ thống phân quyền rất tốt, bạn có thể cho phép một người được phép sử dụng một file nào đó hay không. Điều này sẽ giúp dữ liệu luôn được an toàn, chỉ những ai đủ thẩm quyền mới có thể đọc và ghi lên chúng.
Ví dụ bạn chạy một web server, lúc này bạn không thể cho phép tất cả user đều có thể đọc được những file trên website đó, mà chỉ có chủ sở hữu mới có quyền. Đương nhiên với tài khoản root là cấp cao nhất nên có thể xem được mọi dữ liệu của tất cả các user.
>>> Việc phân quyền file trên Linux sẽ giúp đảm bảo dữ liệu được an toàn, chỉ những ai được phép thao tác trên file mới nhìn thấy và mở chúng.
Quyền truy cập file là một phần quan trọng của linux, có vai trò quan trọng trong việc nâng cao tính bảo mật và ổn định trên hệ thống linux.
Trên Windows, ví dụ máy tính của bạn có 2 user là tyson và jimi, thông thường thì mặc định cả hai đều là Administrator. Khi đó cả jimi và tyson đều có mọi quyền truy cập tới mọi file trên hệ thống kể cả những phần của hệ thống.
Trên linux thì quyền 2 user tách biệt hơn và 2 user jimi, tysonmặc định sẽ có quyền admin hạn chế hơn. Vì vậy khi virus xâm nhập máy Linux thì nó chỉ có thể chạy chương trình dưới quyền của user jimi hoặc tyson, nó không thể chạy với quyền root để gây ảnh hưởng rộng hơn trên cả hệ thống.
Lệnh ls -l
list ra file với đầy đủ thông tin về quyền truy cập
1
2
3
4
5
6 |
$ ls -l /home/tyson drwxrwxr-x 7 tyson tyson 4096 Jun 8 13:38 .vagrant.d/ drwxrwxr-x 6 tyson tyson 4096 May 13 2013 venv/ drwxr-xr-x 6 tyson tyson 4096 Jul 4 22:34 Videos/ drwxr-xr-x 11 tyson tyson 4096 Jun 25 11:22 .vim/ -rw-rw-r-- 1 tyson tyson 2140 Oct 27 2013 .vimrc |
d
và -
như bài về quản lý file mình đã giải thích, đây là kiểu file: d
là directory (thư mục), -
là file thông thường, l
là link …Ví dụ file .vimrc thì:
write-w
và chạy x-execute
không có).Đoạn sau mình sẽ giải thích rõ hơn về 3 quyền với file:
Quyền truy cập đối với thư mục cũng tương tự như với file. Chỉ có một số khác biệt nhỏ cần lưu ý như sau:
Quyền chạy thư mục không mang nhiều ý nghĩa như với file. Người dùng phải có quyền thực thi đối với thư mục bin
trong hệ thống thì mới có thể chạy các lệnh cd
, ls
... (các lệnh này đặt trong mục bin).
Với thư mục cũng vậy, nhưng khác một chút vì nó còn chứa các mục con trong nó.
Chúng ta chỉ cần vài lệnh đơn giản để quản lý quyền truy cập.
Khi làm việc thực tế vấn đề thường gặp phải là tìm cách gán quyền hạn thế nào và cho ai chứ ít khi là vấn đề về câu lệnh phức tạp. Trên linux có rất nhiều user vì nó coi một chương trình (phần mềm hay program) cũng là một user riêng.
Bây giờ chúng ta xem cách dùng các lệnh để thay đổi quyền truy cập.
Dùng chmod với quyền biểu diễn dạng ký tự
Lệnh chmod là để đổi quyền truy cập trên file, lệnh sau - chown
cho phép đổi luôn chủ sở hữu của file hay nhóm nào được sở hữu file.
Phép toán phân quyền | Mô tả |
+ | Thêm quyền cho file/thư mục |
- | Bớt quyền với file/thư mục |
= | Gán quyền cho file/thư mục |
Ví dụ ở đây mình hiển thị quyền truy cập cho mục Desktop:
Quyền của file Kawasaki25047.jpg
là rw-r-----
nghĩa là chủ (user owner) có quyền đọc+ghi, nhóm (group owner) chỉ có quyền đọc còn người khác (other) không có quyền gì.
Xét hình ảnh sau:
3 lệnh trong hình lần lượt như sau:
Thêm quyền x (chạy) cho owner:
1 |
chmod u+x Kawasaki25047.jpg (hoặc chmod u=rwx Kawasaki25047.jpg v ì owner hiện đã có quyền rw ) |
Thêm quyền rx (đọc + chạy) cho other:
1 |
chmod o+rx Kawasaki25047.jpg ( hoặc chmod o=rx Kawasaki25047.jpg ) |
Thêm quyền x (chạy) cho group:
1 |
chmod g+x Kawasaki25047.jpg ( hoặc chmod g=rx Kawasaki25047.jpg v ì group owner đã có quyền r ) |
Các bạn có thể gộp 3 lệnh trên làm một như sau:
1 |
chmod u+x,o+rx,g+x Kawasaki25047.jpg |
Còn đây là bớt quyền đi khi dùng dấu -
:
Bảng sau mô tả quyền truy cập theo dạng tuyệt đối (số):
Số | Mô tả quyền | Tham chiếu |
0 | Không có quyền nào | --- |
1 | Quyền chạy | --x |
2 | Quyền ghi | -w- |
3 | Quyền chạy và ghi 2 (ghi) + 1(chạy) = 3 | -wx |
4 | Quyền đọc | r-- |
5 | Quyền đọc và chạy 4(đọc) + 1(chạy) = 5 | r-x |
6 | Quyền đọc và ghi | rw- |
7 | Tất cả các quyền đọc-ghi-chạy 4(đọc) + 2(ghi) + 1(chạy) = 7 | rwx |
Dùng cách này nhanh và thường dùng hơn cách biểu diễn quyền theo ký tự ở trên.
Người thiết kế hệ thống đã khéo léo biểu diễn quyền theo nhị phân dùng 3 bít thông tin : 7 = 2^2 + 2^1 + 2^0 vừa đủ cho 7 khả năng của quyền truy cập + 1 (trường hợp không có quyền gì) = 2^3 = 8.
Ví dụ hiện tại quyền của file Kawasaki25047.jpg là rw-r-xr-x, nó có thể biểu diễn theo số
Bạn muốn thêm quyền chạy cho owner và quyền ghi cho group owner thì như sau:
1 |
chmod 775 ten_file |
Lý do: owner: rw = 6 thêm x = rwx ~ 7, group owner: r-x thêm w = rwx ~ 7, other r-x giữ nguyên = 5
Các bạn lưu ý là do owner hiện tại của file Kawa là evanclark nên khi mình là nickfarrow đổi quyền thì cần chạy dưới quyền sudo
Chúng ta dùng lệnh chown
(change owner)
Như các bạn thấy trong hình, việc đổi chủ sở hữu cần quyền root mới được phép. User nickfarrow không phải là root nhưng nó có thể chạy lệnh chown dưới quyền root bằng lệnh sudo. Chi tiết về lệnh sudo hay chạy lệnh dưới quyền của user/group khác nhau mình sẽ trình bày trong một bài khác.
Dùng lệnh chgrp
(change group):
Tương tự thao tác đổi chủ sở hữu, đổi nhóm sở hữu cũng cần quyền root:
Qua bài này các bạn đã nắm được các khái niệm về quyền truy cập như chủ sở hữu, nhóm sở hữu, quyền đọc ghi thi hành trên Linux.
Các lệnh sửa đổi quyền truy cập cũng dễ nắm bắt. Một ứng dụng web thực tế hay gặp vấn đề về quyền gây ra exception. Một số trường hợp khá tinh tế nguyên nhân do không xác định được ai đã thay đổi quyền cho một mục trên web.
Trên đây là một số quyền truy cập file và thư mục trên Linux mà chắc chắn bạn cần đến. Bắt tay vào thực hành ngay nhé.
Nguồn bài tham khảo: freetuts
Tips: Tham gia Channel Telegram KDATA để không bỏ sót khuyến mãi hot nào