NỘI DUNG
Giới thiệu
Trong bài hướng dẫn này, bạn sẽ học cách làm thế nào để đổi quyền của file/folder và chủ sở hữu dựa trên dòng lệnh trên hệ điều hành Linux / Unix. Có 2 command đơn giản bạn có thể dùng để làm việc này là: chmod và chown.
Bạn cần gì
Trước khi bạn đầu, bạn cần chuẩn bị:
- Truy cập được vào command line
Bước 1 — Đổi quyền của file và folder qua command line
chmod – Command này được dùng để đổi quyền của một file hoặc thư mục. Cơ bản, mỗi file có ba loại users tương tác với nó:
Loại | Giải thích |
---|---|
owner | Người dùng đã tạo thành file hoặc thư mục đó |
group | Tất cả người dùng thuộc cùng một group |
others | Tất cả người dùng khác, không phải owner hoặc những người dùng trong group. |
Lệnh ls -l, có thể được dùng để xem quyền của file và owner. Ví dụ, ls -l file1.txt sẽ hiện ra kết quả:
-rwxr–rw- 1 user user 0 Jan 19 12:59 file1.txt
- “-rwxr–rw-“ – Phần này thể hiện quyền (permissions). Có 4 chữ cái bạn sẽ thấy trong phần này là: r,w,x,d. d có nghĩa file này là thư mục (directory), trong ví dụ của chúng ta, không có chữ này (vì file này không phải thư mục, nếu là thư mục chữ d sẽ xuất hiện đầu tiên thay vì dấu “-” ). Dấu x có nghĩa là quyền quyền thực thi (execute) của một file/thư mục (chúng ta cần quyền để vào để truy cập một thư mục). w có nghĩa là quyền để ghi file/folder (sửa, xóa file, vâng vâng). Và chữ cuối cùng là r, có nghĩa là đọc (read). Nếu chúng ta có quyền read, chúng thể đọc nội dung của files, nhưng chỉ có vậy, không thể sửa hoặc thực thi nó (ví dụ, bạn chỉ có thể đọc code chứ không chạy được nó)
- 1 – Một số của của hard links. Cơ bản, hard link là một tên riêng cho một file đã tồn tại.
- user user – Phần này hiện chủ của file và group của chủ của file này.
- 0 – Thể hiện kích thước của file.
- Jan 19 12:59 – Ngày chỉnh sửa cuối cùng.
- file1.txt – Tên của thư mục / file
Vậy lệnh chmod làm gì? Lệnh này cho phép chúng ta đổi quyền của file hoặc thư mục. Chúng tôi sẽ chỉ làm cách nào để làm việc này chỉ bằng cách thêm số cho đúng. Mỗi loại có số riêng của nó:
- r (read) – 4
- w (write) – 2
- x (execute) – 1
Vì vậy nếu bạn muốn cài f file1.txt với các quyền sau:
-rwxr–rw- 1 user user 0 Jan 19 12:59 file1.txt
Chúng ta có thể gõ lệnh như sau: :
chmod 746 file1.txt
Cơ bản, mỗi số trong lệnh này đại diện cho một loại người dùng (chủ sở hữu, nhóm sở hữu owner, và khác). Vì vậy số đầu tiền là 7, cách duy hất để có số 7 trong 4,2,1 là: 4+2+1 (=7). Có nghĩa là có Toàn quyền (đọc, ghi và thực thi – rwx). Số đầu tiên để phân quyền cho chủ sở hữu của file này. Số thứ 2 là để, có nghĩa là có quyền r (đọc) và số thứ 2 để phân quyền cho nhóm sở hữu. Số thứ 3 là 6, cách duy nhất để đạt 6 là 4+2 (=6_ có nghĩa là những người khác có quyền đọc (4) và ghi (2). Phần thứ 3 (file.txt) của lệnh này là tên file, chúng ta viết tên file vào để phân quyền cho nó.
Một ví dụ khác là: chmod 777 file2.txt, lệnh này cho Tất cả quyền cho tất cả người dùng (owner, group and other).
Đây là danh sách một số quyền phổ biến của file:
Giá trị | Giá trị số | Giải thích |
---|---|---|
-rw——- | 600 | Chủ sở hữu có quyền đọc viết. |
-rw-r–r– | 644 | Chủ sở hữu có quyền đọc viết, nhóm và những người khác có thể đọc. |
-rw-rw-rw- | 666 | Chủ sở hữu, nhóm và những người khác có quyền đọc viết. |
-rwx—— | 700 | Chủ sở hữu có thể đọc, viết và thực thi, nhóm và những người khác không thể làm gì với file này. |
-rwx–x–x | 711 | Chủ sở hữu có thể đọc, viết, và thực thi, nhóm và những người khác có thể thực thi. |
-rwxr-xr-x | 755 | Chủ sở hữu có thể đọc, viết và thực thi, nhóm và những người khác có thể đọc và thực thi. |
-rwxrwxrwx | 777 | Chủ sở hữu, nhóm và những người khác có thể đọc, viết và thực thi. |
Chủ sở hữu, nhóm và những người khác có thể xem thư mục, nhưng chỉ chủ sở hữu có thể thay đổi nội dung.
Có nhiều cách khác để thay đổi thư mục bằng cách sử dụng command chmod nhưng chúng tôi khuyên bạn nên học một trong số chúng và sử dụng chúng nhiều lần (trong trường hợp này, cách sử dụng số để đổi quyền). Nếu bạn muốn biết các cách khác nhau để đổi quyền, bạn có thể xem qua tại đây
Bước 2 — Đổi chủ sở hữu file và thư mục qua command line
chown – Lệnh này được dùng để đổi owners (chủ sở hữu) của file và folder. Cấu trúc lệnh này cơ bản là:
chown [owner/group owner] [file name]
Cơ bản, nếu chúng ta có một file tên là “demo.txt” và muốn đổi quyền sở hữu của file tới cho “jerry” và group owner thành “clients”, cần dùng lệnh sau:
chown jerry:clients demo.txt
Như bạn thấy, chúng tôi phân biệt giữa owner và group owner với dâu “:” (2 chấm). Nếu chỉ muốn đổi chủ sở hữu của file, chúng ta dùng lệnh sau:
chown jerry demo.txt
Như bạn thấy, chỉ cần bỏ bớt nhóm sở hữu và chỉ cần điền tên chủ sở hữu mới của file, trong trường hợp này, nhóm sở hữu sẽ không đổi. Một ví dụ tương tự sẽ là nếu muốn đổi nhóm sở hữu của file, lệnh cần được viết như sau:
chown :clients demo.txt
Trong trường hợp này, chỉ nhóm chủ sở hữu được đổi thành clients (chủ sở hữu sẽ không đổi).
Bước 3 — Sử dụng các options với lệnh chmod và chown
Một trong các option hoạt động với cả 2 lệnh là -R, có nghĩa là recursive. Option này cho phép bạn đổi quyền / owners trong một thư mục và Tất cả các file và thư mục khác bên trong của thư mục đó.
CẨN THẬN! Hãy cực kỳ thận trọng với option này, nếu được dùng sai, bạn có thể bất cẩn đổi quyền hoặc owners của TẤT CẢ file trong hệ thống, có thể dẫn đến lỗi ngihe6m trong hoặc bạn phải rất tốn sức để sửa lại permission và owner cho đúng.
Một số option của “chmod” và “chown”:
- “-f” – Bắt buộc chạy một cách âm thầm (force). Sẽ không hiển thị tất cả các lỗi.
- “-v” – Cho bạn biết thông tin của tất cả file bị ảnh hưởng bởi command này.
- “-c” – Giống với -v, nhưng chỉ hiện thông tin khi có thay đổi.
Kết luận
Trong bài hướng dẫn này, bạn sẽ học cách đổi quyền và chủ sở hữu của files và folders qua dòng lệnh. Có được những kỹ năng này sẽ bạn quản lý server dễ dàng hơn.Nếu bạn muốn tiếp tục học, hãy tham khảo những bài viết hữu dụng khác bên dưới:
- Lệnh SSH cơ bản
- Hướng dẫn IPtables – bảo mật Ubuntu VPS với Linux Firewall
- Hướng dẩn sử dụng Wget Command