HMH's Blog

Quyền truy cập, sở hữu file trong Unix/Linux.

Posted by hmha trên Tháng Mười 27, 2008

-Trước hết hãy nhớ rằng Unix/Linux coi tất cả đều là file, trong hệ thống *nix có 6 kiểu file:

  • file thông thường (regular file) : đơn giản là những tập tin text, binary file, những chương trình … Theo quan điểm của hệ thống thì những tập tin này là những bit liên tiếp nhau.
  • thư mục (directory) : như đã nói ở trên thư mục cũng là file, chúng dùng để xác định vị trí của tập tin trong cây hệ thống.
  • thiết bị đặc biệt (special device file) : dùng để kết nối với các thiết bị vật lý. Tồn tại 2 loại thiết bị là character deviceblocked device. Character device: được sử dụng để trao đổi dữ liệu tuy nhiên không sử dụng buffer. Còn blocked device cho phép trao đối dữ liệu dạng block
  • named pipe : đây là file sử dụng để trao đổi dữ liệu giữa các tiến trình.
  • liên kết (link)
  • socket : phối hợp các tiến trình


-Trong hệ thống *nix, quyền truy cập tập tin chia ra làm 3 kiểu: Read, Write và Execute tương ứng với các ký tự: r, w và x:

  • Read (r) : cho phép đọc
  • Write (w) : cho phép thay đổi nội dung
  • Execute (x) : cho phép chạy chương trình (script).

-Đối với mỗi tập tin trong *nix tồn tại 3 kiểu sở hữu: User (u), Group (g) và Other (o):

  • User access (u) : xác định chủ sở hữu của file.
  • Group access (g) : xác định nhóm sở hữu file.
  • Other access (u) : những người còn lại.

Quyền truy cập

-Bây giờ hãy xem 1 ví dụ dưới đây:
debian@debian:~$ ls aaaa
-rw-r--r-- 1 debian debian 137 Sep 21 23:37 aaaa

-rw-r–r–: xác quyền truy cập file, như đã nói ở trên mỗi file có 3 dạng sở hữu, mỗi kiểu sở hữu có 3 loại quyền truy cập. Hãy tách -rw-r–r– ra làm 4 phần là , rw-, r–r–. Dấu đầu tiên xác định kiểu file là dạng file thông thường, rw- tiếp theo xác định quyền truy cập của chủ sở (User access) là đọc (r) và ghi (w). Hai r– tiếp theo xác định quyền truy cập của nhóm (Group access) và những người còn lại (Other access) chỉ đọc (r).
-Trong trường hợp ký tự đầu tiên là d điều đó có nghĩa aaaa là một thư mục. Nếu là l -> symbolic link, s -> socket, p -> named pipe, c -> character device fileb -> blocked device.

Thay đổi quyền truy cập file: chmod

-Để thay đổi quyền truy cập file chúng ta sử dụng lệnh chmod, bạn có thể sử dụng số để gán quyền với x=4, w=2 và x=1 (0 – không được làm gì).
-Ví dụ 1:
$ chmod 644 aaaa
gán quyền đọc và ghi cho User, quyền đọc cho Group và Other.
-Ví dụ 2:
$ chmod g-wx aaaa
xoá bỏ quyền đọc và thực thi của Group.
-Ví dụ 3:
$ chmod go=r aaaa
gán cho Group và Other quyền đọc
-Ví dụ 4:
$ chmod a+w aaaa
thêm quyền đọc cho tất cả mọi người, a = tất cả
-Ví dụ 5:
$ chmod u+w,og+r-w aaaa
thêm quyền ghi cho User, đọc cho Group và Other. Xoá quyền ghi của Group và Other.

Thiết lập quyền sở hữu: chown, chgrp

-Vẫn xem với ví dụ:
$ ls aaaa
-rw-r--r-- 1 debian debian 137 Сен 21 23:37 aaaa

trong ví dụ trên quyền sở hữu tập tin thuộc về người dùng debian, nhóm cũng là debian.
-Để thay đổi chủ sở hữu của file chúng ta sử dụng lệnh chown, thay đổi nhóm sử dụng chgrp.
-Ví dụ thay đổi chủ sở hữu:
# chown pingvin aaaa
sau đó xem:
$ ls aaaa
-rw-r--r-- 1 pingvin debian 137 Сен 21 23:37 aaaa

như vậy chủ sở hữu file aaaa bây giờ là pingvin, nhóm vẫn là debian.
-Ví dụ thay đổi nhóm:
# chgrp www-data aaaa
sau đó:
$ ls aaaa
-rw-r--r-- 1 pingvin www-data 137 Сен 21 23:37 aaaa

nhóm sở hữu đã được thay đổi thành www-data
-Bạn cũng có thể thay đổi cả chủ sở hữu lẫn nhóm chỉ với một câu lệnh:
# chown debian:debian aaaa
sau đó thử xem lại:
$ ls aaaa
-rw-r--r-- 1 debian debian 137 Сен 21 23:37 aaaa

http://comnetsolution.vn/

Bình luận về bài viết này