.3| Phân quyền trên hệ thống tập tin

Một phần của tài liệu Giáo trình quản trị hệ thống Linux 1 Truyền thông và mạng máy tính (Trang 63 - 72)

Để quản trị hệ thống tài nguyên trên Linux thì việc phân chia quyền hạn cho mỗi user tƣơng ứng với tài nguyên sử dụng là rất quan trọng. Điều này nhằm đảm bảo tính bảo mật tài nguyên giữa các users trong hệ thống.

5.3.1| Dùng lệnh ls: xem nội dung của thƣ mục, tập tin:

Cú pháp: ls [option] [file]

ls –a : Xem tất cả ( kể cả tập tin ẩn ).

ls –l : Xem chi tiết các thông tin của tập tin. ls –x : Xem tập tin trên nhiều cột.

ls –R : Xem trong các thƣ mục con. ls –F : Xem thông tin mô tả vào sau tên.

vd: ls – l /etc

-rw-r--r-- 1 root root 920 jun 25 2001 im_palette- small.pal

Cột 1: Ký tự đầu tiên: - chỉ tập tin thƣờng d chỉ thƣ mục l chỉ link liên kết

c hoặc b chỉ tập tin đặc biệt Cột 2: chỉ số liên kết với tập tin này.

Cột 3, 4: ngƣời sở hữu và nhóm sở hữu. Cột 5: kích thƣớt tập tin, thƣ mục. Cột 6: chỉ ngày, giờ sửa đổi cuối cùng. Cột 7: tên tập tin, thƣ mục.

5.3.2| Lệnh thay đổi sở hữu tài nguyên

 Định nghĩa quyền sở hữu tập tin:

Tài liệu giảng dạy Quản trị hệ thống Linux 1 Trang 63

 Tập tin đƣợc sở hữu bởi một User nhất định.  Tập tin đƣợc sở hữu bởi một Group nhất định.

 Thay đổi quyền sở hữu của tập tin:  Thay đổi User sở hữu:

Cú pháp:

chown <user sẽ sở hữu> <tên tập tin>

Ví dụ:

Hiện tại myfile đang đƣợc sở hữu bởi user1 ls –l myfile

-rw-r--r-- 1 user1 group1 myfile Đổi quyền sở hữu:

chown user2 myfile ls –l myfile

-rw-r--r-- 1 user2 group1 myfile  Thay đổi Group sở hữu:

Cú pháp

chgrp <group sẽ sở hữu> <tên tập tin>

Ví dụ:

Hiện tại myfile đang đƣợc sở hữu bởi group1 ls –l myfile

-rw-r--r-- 1 user2 group1 myfile Đổi quyền sở hữu:

chown group3 myfile

ls –l myfile

Tài liệu giảng dạy Quản trị hệ thống Linux 1 Trang 64

5.3.3| Phân quyền cho các User trên tập tin:

 Nhóm quyền dành cho file:

Bất kỳ một File nào cũng sẽ có ba nhóm quyền: - 1 nhóm quyền là dành cho User tạo nên File đó

- 1 nhóm quyền là dành cho Group có User tạo nên File đó - 1 nhóm quyền là dành cho các User khác.

 ký tự đại diện cho 3 nhóm quyền là:

u: (User); g: (Group); o : (Others)

và 1 ký tự đại diện cho tất cả các nhóm quyền là a: All Đối với mỗi 1 nhóm quyền thì lại có 3 quyền cơ bản là:

 Read (r)

Đối với một file thì quyền Read chính là quyền đƣợc xem nội dung của file, cịn đối với một folder thì quyền Read chính là quyền xem đƣợc danh sách các subfolder và file bên trong folder đó.

 Write (w)

Đối với một file thì quyền Write là cho phép thêm, sửa nội dùng file, cịn đối với một folder thì Write cho phép thêm, xóa một subfolder hay file trong thƣ mục đó.

 Execute (x)

Đây là quyền thực thi. Đối với một file thì Execute cho phép thực thi file trong trƣờng hợp file này thuộc dạng program hoặc script, còn đối với một folder Execute cho phép cd vào thƣ mục này.

 Deny (-)

Khơng có quyền làm một thao tác gì đó đối với một file hay folder xác định. Read ( đọc ) Write (viết ) Excute ( thi hành )

Tài liệu giảng dạy Quản trị hệ thống Linux 1 Trang 65

Nhƣ vậy quyền của 1 tập tin sẽ gồm nhƣ sau:

User Group Other

r w x r w x r w x

Ví dụ: 1 tập tin abc.txt có quyền trên 3 nhóm nhƣ sau:

User Group Other

r w x r - - r - -

Có nghĩa là: User sở hữu tập tin có cả 3 quyền: đọc, ghi và thi hành

Còn tất cả các user trong Group sở hữu tập tin sẽ có quyền đọc và thi hành. Tất vả các user cịn lại chỉ có quyền đọc tập tin mà thôi.

 Thay đổi phân quyền trên các tập tin cho 3 nhóm ngƣời sử dụng: - Khi thay đổi quyền thì làm sao Linux biết bạn muốn bật hay tắt đối với quyền nào ? có thể sử dụng umask (Xem phần umask và sticky bit).

Linux quy định 3 quyền r w x sẽ tƣơng ứng với 3 bit hệ nhị phân. Tƣơng ứng nhƣ vậy

r = 4 w = 2 x = 1

Chúng ta có đƣợc bảng sau:

Thập phân Nhị phân Quyền Ký hiệu quyền

0 000 Khơng có quyền - - -

1 001 Thi hành - - x

2 010 Ghi - w -

3 011 Ghi + Thi Hanh - w x

4 100 Đọc r - -

5 101 Đọc + Thi Hành r – x

6 110 Đọc + Ghi r w -

Tài liệu giảng dạy Quản trị hệ thống Linux 1 Trang 66

Bảng 5.1 – Bảng biểu diễn các ký tự quyền dạng nhị phân và thập phân. Ví dụ:

UMASK của 1 số tập tin

022 tƣơng ứng với - - - - w - - w – 752 tƣơng ứng với r w x r – x – w -

- Lệnh để thay đổi quyền trên tập tin là chmod. Lệnh này có 2 cách sử dụng: + Cách 1: là dùng UMASK để xác định quyền

Câu lệnh

chmod <UMASK của tập tin> <tên tập tin>

Ví dụ: chmod 345 myfile.txt chmod 770 ass.ac

+ Cách 2: là dùng + - để thêm và bớt quyền.

Khi sử dụng cách này chúng ta sẽ quan tâm đến một số điều nhƣ sau: * Định danh quyền truy cập.

u : user, chủ sở hữu

g : group nhóm có user thành viên o : các user khác

a : tất cả

* Tác vụ trên quyền truy cập. + : Thêm

- : Loại bỏ = : Gán quyền Ví dụ:

g+w : thêm quyền ghi cho group

Tài liệu giảng dạy Quản trị hệ thống Linux 1 Trang 67

u+x : thêm quyền thi hành cho user +x : thêm quyền thi hành cho tất cả ug+r : thêm quyền đọc cho user và group Câu lệnh:

chmod <thêm bớt các quyền> <tên tập tin>

Ví dụ:

chmod –x *.php

chmod –R ug+rw lecture.abc chmod u=rwx,ug=r desktop.jpg

 Umask và sticky bit  Tìm hiểu umask:

Khi tạo một file hay thƣ mục trong hệ thống, những file/thƣ mục mới này sẽ đƣợc gán một quyền mặc định. Quyền mặc định này đƣợc quản lý bởi giá trị umask. Umask gồm 4 octal.

Để xem giá trị umask của user hiện tại có thể dùng lệnh umask trong terminal.

[tdc@server]$ umask 0002

Đối với file, mặc định khi mới đƣợc tạo ra sẽ có quyền là 0666, đối với thƣ mục là 0777. Hai giá trị này đƣợc gọi là Base Permission. Điều đó có nghĩa là khi một file mới đƣợc tao ra thì mọi user đều có quyền read và write đối với file đó và mọi user đều có full quyền trên thƣ mục mới đƣợc tạo ra.

Để hạn chế vấn đề này, umask đƣợc sử dụng để thiết lập quyền mặc định của file/thƣ mục khi mới đƣợc tạo ra.

Tài liệu giảng dạy Quản trị hệ thống Linux 1 Trang 68

Giả sử umask hiện tại là 0002 thì khi file mới đƣợc tạo ra, quyền mặc định của file đó sẽ là 664 và thƣ mục sẽ có quyền là 775.

[tdc@server]$ mkdir test [tdc@server]$ touch myfile [tdc@server]$ ll

total 4

-rw-rw-r--. 1 cuong cuong 0 Dec 3 11:32 myfile drwxrwxr-x. 2 cuong cuong 4096 Dec 3 11:32 test

 Umask mặc định của user

Mặc định đối với normal user sẽ có giá trị umask mặc định là 002. Còn đối với các super user thì umask là 022. Giá trị mặc định này đƣợc định nghĩa trong /etc/bashrc hoặc /etc/profile. Nhƣ vậy khi root tạo file thì file đó sẽ có quyền là 644, còn thƣ mục là 755. Lƣu ý đối với thƣ mục thì quyền execute chính là quyền để list thƣ mục đó.

Quyền mặc định của file/thƣ mục sau khi đã bị umask ảnh hƣởng đƣợc tính nhƣ sau:

Base permission AND (NOT umask)

Ví dụ: quyền mặc định của thƣ mục là 777, umask là 002, khi đó quyền của thƣ mục khi mới đƣợc tạo ra là:

Umask: 000 000 010 NOT: 111 111 101 AND 111 111 111 ------------------ 111 111 101 ------------------

Tài liệu giảng dạy Quản trị hệ thống Linux 1 Trang 69

7 7 5

Nhƣ vậy quyền đối với thƣ mục mới đƣợc tạo ra là 775.  Tính tốn umask

Với phép tính trên ta có thể tính tốn đƣợc umask sau khi đã có yêu cầu về việc phân quyền. Tƣơng ứng với các giá trị octal nhƣ sau:

0 : read, write and execute 1 : read and write

2 : read and execute 3 : read only

4 : write and execute 5 : write only

6 : execute only 7 : no permissions

Ví dụ, với thƣ mục mới tạo ra, không cho group và others có bất cứ quyền gì đối với thƣ mục, ta có thể sử dụng bảng trên để truy ra umask Owner: full 0

Group: nothing 7 Others:nothing 7

Nhƣ vậy, giá trị umask sẽ là 077. [cuong@F16 check]$ umask 0077

[tdc@server]$ mkdir new [tdc@server]$ touch newfile [tdc@server]$ ll

Tài liệu giảng dạy Quản trị hệ thống Linux 1 Trang 70

drwx------. 2 cuong cuong 4096 Dec 3 11:34 new -rw-------. 1 cuong cuong 0 Dec 3 11:34 newfile

 Sticky bit

Sticky bit là một flag dùng để xác định quyền truy cập đối với file/thƣ mục.

Một thƣ mục đƣợc thiết lập sticky bit có nghĩa là chỉ có owner và superuser mới có thể xóa các files trong thƣ mục đó. Các user khác khơng có quyền xóa mặc cho việc phân quyền đối với user thế nào. [tdc@server]$ ll

total 0

-rw-rw-r--. 1 newuser Guest 0 Dec 3 11:50 afile -rw-rw-r--. 1 newuser Guest 0 Dec 3 11:50 bfile -rw-rw-r--. 1 Guest Guest 0 Dec 3 11:48 dfile [tdc@server]$ id

uid=1001(Guest) gid=1001(Guest) groups=1001(Guest) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 [tdc@server]$ rm afile

rm: cannot remove `afile': Operation not permitted <--Ko cho phép Guest xóa file của newuser.

[tdc@server]$ rm bfile

rm: cannot remove `bfile': Operation not permitted [tdc@server]$ su newuser

Password:

[tdc@server]$ id

uid=1002(newuser) gid=1001(Guest) groups=1001(Guest) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

Tài liệu giảng dạy Quản trị hệ thống Linux 1 Trang 71

[tdc@server]$ rm afile <-- newuser xóa file của chính mình [tdc@server]$ rm dfile

rm: cannot remove `dfile': Operation not permitted <-- ko cho phép xóa file của Guest

Một phần của tài liệu Giáo trình quản trị hệ thống Linux 1 Truyền thông và mạng máy tính (Trang 63 - 72)

Tải bản đầy đủ (PDF)

(105 trang)