Dịch Vụ WordPress Hosting | Áp dụng tiêu chuẩn cao nhất cho WordPress

Bài 4: File Types và Permissions trong Ubuntu

50 Likes comments off
Permissions trong ubuntu
5/5 - (2 votes)

Permissions trong Ubuntu – Trong bài này mình sẽ trình bày về các loại file (file types) và phân quyền trên file (file permissions) trong hệ thống Linux. Đây là một phần cơ bản và rất quan trọng đối với người quản trị Linux server. Những kiến thức này sẽ giúp ích rất nhiều trong quá trình làm việc và bảo mật hệ thống của bạn.

Nếu bạn sử dụng lệnh ls để liệt kê các file và folder trong thư mục nào đó:

Permissions trong ubuntu

Bạn sẽ dễ dàng nhận thấy file types và file permissions thể hiện ở 10 ký tự đầu tiên theo dạng drwxr-xr-x. Ký tự đầu tiên thể hiện file types và chín ký tự phía sau thể hiện file permissions.

File types trong Ubuntu

Ký tự đầu tiên trong dãy 10 ký tự thể hiện file types. Và có những kiểu file như sau:

  • : dấu gạch này thể hiện đó là một file bình thường. Có thể là file chứa dữ liệu, text, hoặc file thực thi binary.
  • d : Chữ d thể hiện đó là một thư mục (Directory).
  • l : Chữ L thể hiện đó là một Link (tưởng tượng nó như cái shortcut trong Windows vậy).
  • c : Chữ c thể hiện Character devices (kiểu thiết bị như bàn phím, chuột, card màn hình, card âm thanh…).
  • b : Chữ b thể hiện Block devices (dạng thiết bị lưu dữ liệu như ổ cứng, usb…).
  • s : Chữ s thể hiện Socket – một loại file đặc biệt dùng cho việc trao đổi thông tin giữa các process.
  • p : Chữ p thể hiện Named pipe – dùng cho trao đổi thông tin giữa các process.

File permissions trong Ubuntu

Chín ký tự tiếp theo mô tả quyền truy cập được gán cho file hoặc folder. Nó quy định một user hoặc group được phép làm gì trên file hoặc folder đó. Phân quyền trên file và folder là một kiến thức về bảo mật căn bản nhất trong Linux.

Những permissions thông dụng nhất là:

  • r (read) : có giá trị là 4 thể hiện quyền đọc file hoặc folder.
  • w (write) : có giá trị là 2 thể hiện quyền tạo mới file trong folder hoặc là chỉnh sửa nội dụng file.
  • x (execute) : có giá trị là 1 thể hiện quyền thực thi một file.

Những permissions trên thường được áp dụng cho các đối tượng:

  • u: User
  • g: Group
  • o: Other or everyone
  • a: All

Permissions trong ubuntu

1. Thay đổi permissions cho file hoặc folder.

Để thay đổi permission hoặc còn gọi là phân quyền cho file hoặc folder. Chúng ta sử dụng lệnh chmod. Chúng ta có thể sử dụng dạng chữ hoặc số thập phân để phân quyền.

Ví dụ: Mình muốn phân quyền trên file text.txt như sau:

  • User sở hữu file text.txt có quyền đọc, viết, thực thi.
  • Group sở hữu file text.txt có quyền đọc, viết, thực thi.
  • Other user không có quyền gì cả.

Mình có thể phân quyền bằng dạng số thập phân như sau:

chmod 770 text.txt

Hoặc phân quyền bằng dạng chữ như sau:

chmod ug+rwx,o-rwx text.txt

2. Khái niệm umask.

Có một khái niệm cần biết đó là umask. Bạn có thể hiểu đơn giản nó được dùng để phân quyền mặc định cho file hoặc folder khi nó vừa được tạo ra.

Mặc định thì:

  • Giá trị umask là 0002.
  • Khi chúng ta tạo ra một file permission sẽ là 0666 – 0002 = 0664. Nghĩa là user và group sở hữu nó có quyền đọc và ghi, other user chỉ được đọc.
  • Khi chúng ta tạo mới một folder permission sẽ là 0777 – 0002 = 0775. Nghĩa là user và group sở hữu nó có đầy đủ quyền, other user chỉ có quyền đọc và thực thi.

Chúng ta có thể thay đổi giá trị umask bằng lệnh:

umask <giá trị mới>

3. SETUID, SETGID và STICKY BIT permissions.

Có hai loại permissions mở rộng cho file và folder đó là SETUID / SETGID và STICKY BIT. Nó cũng rất quan trọng và bạn cần phải nắm.

a. SETUID / SETGID.

SETUID / SETGID permission cho phép một user thực thi một file giống như user đó là chủ sở hữu của file đó. Có nghĩa là nó cho phép user thực hiện những việc mà có thể khi bình thường nó bị cấm.

Một ví dụ điển hình nhất là khi chúng ta cần đổi mật khẩu. Khi sử dụng lệnh passwd để đổi mật khẩu nó cần phải viết lại thông tin vào file password mà chúng ta thì không có quyền. Bằng việc gán SETUID / SETGID cho nó chúng ta có thể thực thi nó như là user root vậy.

Khi chúng ta sử dụng lệnh ls -la để xem thông tin phân quyền của file passwd. Chúng ta sẽ thấy chỗ quyền thực thi của user thay vì là x thì sẽ là s.

ls -la /usr/bin/passwd

Permissions trong ubuntu

Để bật SETUID /SETGID cho một file bạn có thể sử dụng lệnh:

chmod 6755 text.txt

Trong chuỗi 4 số đó thì số đầu tiên để gán SETUID /SETGID (với SETUID có giá trị là 4 / SETGID có giá trị là 2) còn 3 số đằng sau là phân quyền cho user, groupother user.

Có một kiểu tấn công hệ thống sau đó SETUID / SETGID cho những file thực thi đặc biệt để có thể leo thang đặc quyền trong hệ thống.
Thông thường bạn sẽ không mong muốn một user không có quyền mà vẫn thực thi được lệnh đâu.

b. STICKY BIT

STICKY BIT là một permission được gán cho folder (nó chả có ý nghĩa gì khi gán cho file). Khi một folder được bật STICKY BIT thì những file trong folder đó chỉ có thể được xóa hoặc thay đổi bởi chủ sở hữu nó hoặc root mà thôi. Chúng ta thường áp dụng khi tạo ra một folder share dùng chung cho nhiều user trên một file server chẳng hạn. Ở trong folder này thì ai cũng có quyền được tạo file nhưng chỉ xóa được file do mình tạo ra thôi.

Để quan sát một thư mục được bật STICKY BIT chúng ta có thể quan sát thư mục /tmp trong hệ thống. Có thể nhận thấy là ở quyền execute cho other user thay vì là x thì sẽ là t.

ls -la / | grep tmp

Permissions trong ubuntu

Để bật STICKY BIT cho folder thì bạn có thể sử dụng lệnh:

chmod 1775 /home/sanvv/thumuc1

Thay đổi quyền sở hữu file và folder

Để thay đổi quyền sở hữu file và folder từ user/group này thành user/group khác thì ta dùng lệnh:

chown <user sở hữu mới>:<group sở hữu mới> <tên file hoặc folder>

Permissions trong ubuntu

 

Nguồn: Echip Pro

You might like

About the Author: sanvu88

Xin chào! Tôi là Sanvu88, người sáng lập Sanvu88.net. Tôi là một người yêu thích Linux . Hiện tại, tôi đang sử dụng Ubuntu làm hệ điều hành trên máy tính của tôi. Tôi có một công việc ban ngày với tư cách là một chuyên viên bơm vá săm xe các loại, và trang web này là một trong những hoạt động yêu thích của tôi, đặc biệt là trong những lúc rảnh rỗi. Hy vọng bạn thích sử dụng trang web này, và nó sẽ mang lại cho bạn nhiều điều bổ ích. Phản hồi từ người đọc sẽ truyền cảm hứng cho tôi để tôi có thể viết được nhiều hơn nữa !. Bạn chỉ cần để lại nhận xét bên dưới nếu bạn thấy bài viết này hữu ích. Chúc bạn ngày mới tốt lành!