Hướng dẫn chmod cácthư mục trên xenforo năm 2024

Tham gia ngày: 22/10/16 Bài viết: 220 Đã được thích: 0

Hướng dẫn này sẽ cung cấp cho bạn một giải thích về những quyền được sử dụng trong Linux/Unix, chúng làm việc như thế nào, và làm thế nào quản lý chúng. Một số ví dụ sẽ được cung cấp để minh họa làm thế nào để thiết lập và thay đổi quyền cho cả user và group.

Quyền của user và group Hệ điều hành Linux / Unix có khả năng đa nhiệm một cách tương tự như các hệ điều hành khác. Tuy nhiên, sự khác biệt lớn của Linux so với các hệ điều hành khác là khả năng có nhiều user sử dụng. Linux được thiết kế để cho phép nhiều user có quyền truy cập vào hệ thống cùng một lúc. Để thiết kế này làm việc đúng, cần phải có một phương pháp giúp bảo vệ user này với user khác. Đây là lúc quyền được sử dụng.

Quyền đọc, viết và thực thi

Quyền được sử dụng trên một tập tin hoặc thư mục. Các quyền cơ bản là đọc [read], viết [write], và thực thi [execute]. Đọc - đối với một tập tin, cho phép xem nội dung của tập tin đó. Đối với một thư mục, sẽ cho phép bạn xem danh sách [bao gồm các thư mục con hoặc các tập tin] của một thư mục. Viết - đối với một tập tin, cho phép bạn chỉnh sửa nội dung của tập tin đó. Đối với một thư mục, sẽ cho phép bạn chỉnh sửa danh sách [bao gồm các thư mục con hoặc các tập tin] của một thư mục [ví dụ: thêm/xóa các tập tin hoặc các thư mục con]. Thực thi – đối với một tập tin, cho phép bạn chạy tập tin đó để thực hiện một chương trình hay script. Đối với một thư mục, cho phép bạn thay đổi sang một thư mục khác và làm cho nó trở thành thư mục làm việc hiện tại của bạn. User thường có một group mặc định, nhưng vẫn có thể thêm vào nhiều group khác.

Xem các quyền hiện có trên một tập tin Để xem các quyền trên một tập tin hoặc thư mục, sử dụng lệnh ls -l . Hãy nhớ thay thế các thông tin trong với tên các tập tin hoặc thư mục thực tế. Dưới đây là ví dụ:

-rw-r--r-- 1 root root 1031 Nov 18 09:22 /etc/passwd

Mười kí tự đầu tiên hiển thị các quyền truy cập. Gạch đầu dòng [-] đầu tiên cho thấy loại tập tin [d cho thư mục, s cho tập tin đặc biệt, và - cho một tập tin thông thường]. Ba kí tự tiếp theo [rw-] xác định sự cho phép của chủ sở hữu đến các tập tin.

Trong ví dụ này, chủ sở hữu tập tin chỉ có quyền đọc và ghi. Ba kí tự tiếp theo [r--] là quyền cho các user của cùng 1 nhóm [group] [trong ví dụ trên chỉ cho phép có quyền đọc]. Ba ký tự cuối cùng [r--] là quyền cho tất cả các user khác [trong ví dụ trên chỉ cho phép có quyền đọc].

Làm việc với các user, các nhóm và các thư mục Những phần sau sẽ đi qua các lệnh cần thiết để tạo, xóa, và sửa đổi tài khoản các user, cũng như các lệnh cho việc tạo và xóa thư mục. Bạn sẽ được cung cấp các lệnh và mô tả cần thiết để làm việc với user, nhóm, và thư mục.

Tạo và xóa tài khoản user Để tạo một user mới, sử dụng lệnh useradd. Cú pháp như sau:

Lệnh useradd sử dụng một loạt các biến, một trong số đó được trình bày dưới đây:

Bạn sẽ cần phải thiết lập một mật khẩu cho user mới bằng cách sử dụng lệnh passwd. Lưu ý, bạn sẽ cần quyền root để thay đổi mật khẩu người dùng. Cú pháp như sau: Người dùng sẽ có thể thay đổi mật khẩu của họ bất cứ lúc nào bằng cách sử dụng lệnh passwd.

Bạn cũng có thể tạo user bằng cách dùng gói phần mềm adduser. Các lệnh cài đặt cho Debian/Ubuntu là như sau:

Lệnh adduser tự động tạo ra một thư mục home và thiết lập nhóm mặc định, shell, vv Để tạo một user mới với lệnh adduser cú pháp như sau: Khi bạn nhập vào lệnh, bạn sẽ nhận được một loạt các nhắc nhở; hầu hết các thông tin này là tùy chọn.

root@localhost:~# adduser cjones Adding user cjones' ... Adding new group `cjones' [1001] ... Adding new user `cjones' [1001] with group `cjones' ... Creating home directory /home/cjones' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for cjones Enter the new value, or press ENTER for the default

  Full Name []: Chuck Jones
  Room Number []: 213
  Work Phone []: 856-555-1212
  Home Phone []:
  Other []:
Is the information correct? [Y/n] Y

Điều quan trọng cần lưu ý, vấn đề bảo mật luôn luôn phải được đặt lên hàng đầu. Do đó, chúng tôi khuyên bạn nên sử dụng mật khẩu duy nhất cho mỗi tài khoản. Không bao giờ chia sẻ mật khẩu của bạn cho người khác.

Để loại bỏ một tài khoản user, nhập vào lệnh sau đây:

Sử dụng câu lệnh trên sẽ chỉ xóa tài khoản của user, còn các file và thư mục home sẽ không bị xóa. Để loại bỏ các user, thư mục home của chúng, và các tập tin của chúng, sử dụng lệnh này: Tìm hiểu lệnh sudo Khi muốn đăng nhập vào VPS chúng ta đều phải thông qua user tên là root. User root là user cấp cao nhất và có quyền làm bất cứ điều gì trên hệ thống. Nhưng suy cho cùng, việc sử dụng trực tiếp với user là root sẽ ẩn chứa nhiều rủi ro như bạn có thể bị lộ mật khẩu root nếu máy bị nhiễm spyware và soi mật khẩu khi bạn đang gõ, hoặc nếu bạn muốn người khác vào quản trị VPS mà đưa hẳn cái user root thì thật là nguy hiểm.

Vì vậy, để bảo vệ hệ thống thì giải pháp là chúng ta có thể sử dụng lệnh sudo. Lệnh sudo cho phép user và group truy cập vào các lệnh mà họ thường không thể sử dụng. Lệnh sudo sẽ cho phép user có quyền quản trị mà không cần đăng nhập như là user root. Một ví dụ về lệnh sudo là như sau:

sudo apt-get install

Trước khi sử dụng sudo, nó có thể cần phải được cài đặt. Câu lệnh như sau: Đối với Debian: Đối với CentOS : Để cung cấp cho user với khả năng sudo, tên của họ sẽ cần phải được thêm vào tập tin sudoers. Tập tin này là rất quan trọng và không nên chỉnh sửa trực tiếp với một trình soạn thảo văn bản. Nếu tập tin sudoers được chỉnh sửa không đúng cách nó có thể dẫn đến ngăn chặn truy cập vào hệ thống. Do đó lệnh visudo nên được sử dụng để chỉnh sửa tập tin sudoers. Tại dòng lệnh, đăng nhập vào hệ thống của bạn sử dụng user root và nhập lệnh visudo. Dưới đây là phần của tập tin sudoers cho thấy những user có quyền truy cập sudo.

User privilege specification

root ALL=[ALL:ALL] ALL cjones ALL=[ALL:ALL] ALL kbrown ALL=[ALL:ALL] ALL lmartin ALL=[ALL:ALL] ALL

Sau khi bạn đã nhận được quyền sudo đối với tài khoản user của bạn, lưu lại tập tin sudoers và đăng xuất khỏi user root. Bây giờ đăng nhập lại theo user của bạn và kiểm tra user của bạn đã có quyền truy cập sudo chưa. Khi một user mới cần truy cập sudo, bạn có thể chỉnh sửa file sudoers với user hiện tại của bạn bằng cách sử dụng lệnh sau: Làm việc với các nhóm Linux sử dụng các nhóm như là một cách để tổ chức các user, như là một biện pháp an ninh cho hệ thống. Kiểm soát các thành viên [user] trong nhóm được quản lý thông qua tập tin /etc/group, trong đó cho thấy một danh sách các nhóm và các thành viên của nó.

Mỗi user đều có một nhóm mặc định. Một user có thể truy cập vào các tập tin khác trong nhóm khác, miễn là họ cũng là một thành viên của nhóm đó và cho phép truy cập được thiết lập. Để chạy chương trình hay tạo ra một tập tin trong một nhóm khác nhau, user phải chạy lệnh newgrp để chuyển nhóm hiện tại của họ. Cú pháp lệnh newgrp là như sau:

trong đã group là một tên nhóm đã tồn tại trong hệ thống.

Ví dụ, một user tên là matma là thành viên của hai nhóm sale và marketing, với sale là tên nhóm hiện tại user matma đang sử dụng. Khi đăng nhập, user matma sẽ là thành viên của nhóm sale. Khi mong muốn sử dụng một số các chương trình thuộc quyền sở hữu của nhóm marketing, user matma cần gõ lệnh sau:

Điều quan trọng cần lưu ý rằng bất kỳ tập tin được tạo ra bây giờ sẽ được kết hợp với nhóm marketing hơn là nhóm mặc định sale của user matma. User cũng có thể thay đổi nhóm của họ bằng cách sử dụng các lệnh chgrp. Cú pháp của lệnh chgrp là như sau: Tạo và xóa thư mục Để tạo một thư mục sử dụng lệnh: Để tạo một thư mục và thiết lập quyền cùng một lúc, sử dụng tùy chọn và cú pháp sau:

mkdir -m a=rwx

Tùy chọn -m là viết tắt của mode, và a = rwx có nghĩa rằng tất cả user có quyền đọc, viết, và thực thi vào thư mục. Để xem danh sách đầy đủ của tất cả các tùy chọn của lệnh mkdir nhập lệnh man mkdir tại của sổ dòng lệnh

Để xóa một tập tin, sử dụng lệnh sau đây:

Để xóa một thư mục, sử dụng lệnh sau đây: Điều quan trọng là cần lưu ý rằng nếu bạn xóa một thư mục tất cả các tập tin hay thư mục con bên trong sẽ bị xóa theo.

Thay đổi thư mục và quyền tập tin Để xem quyền tập tin và quyền sở hữu trên các tập tin và thư mục, sử dụng lệnh ls -al. Tùy chọn -a là để hiển thị các tập tin ẩn hoặc tất cả các tập tin. Kết quả ra sẽ là tương tự như sau:

drwxr-xr-x 2 user user 4096 Jan 9 10:11 documents -rw-r--r-- 1 user user 675 Jan 7 12:05 .profile drwxr-xr-x 4 user user 4096 Jan 7 14:55 public

Cột đầu tiên với các chữ cái và dấu gạch ngang cho thấy quyền của các tập tin hoặc thư mục. Cột thứ hai cho thấy số lượng các tập tin hoặc thư mục con chứa trong thư mục đó. Cột tiếp theo cho biết user đang sở hữu, theo sau là tên nhóm đang sở hữu, kích thước, ngày tháng và thời gian truy cập mới nhất, và cuối cùng là tên của tập tin. Ví dụ, bằng cách sử dụng dòng đầu tiên từ kết quả ra ở trên, các chi tiết như sau:

drwxr-xr-x are the permissions 2 is the number of files or directories user is the owner user is the group 4096 is the size Jan 9 10:11 is the date/time of last access documents is the directory

Lưu ý: Thư mục bất kỳ sẽ luôn hiển thị 4096. Điều này không phản ánh kích thước của các nội dung trong thư mục.

Lệnh chmod Chmod được sử dụng để thay đổi quyền truy cập vào các tập tin và thư mục. Lệnh chmod có thể được sử dụng với cả chữ và số [còn được gọi là bát phân] để thiết lập quyền truy cập. Các chữ được sử dụng với chmod thể hiện trong bảng dưới đây:

Điều quan trọng là hãy nhớ rằng ký tự đầu tiên của cột đầu tiên một danh sách tập tin thể hiện đó là một thư mục, tập tin, hay tập tin thông thường. Chín kí tự khác là những quyền cho tập tin/thư mục. Ba ký tự đầu tiên là cho user, ba kí tự tiếp theo là dành cho nhóm, và cuối cùng ba kí tự còn lại dành cho những user khác. Ví dụ drwxrw-r-- được chia ra như sau: d đây là một thư mục rwx user có quyền đọc, viết, thực thi rw- nhóm có quyền đọc, viết r-- các user khác chỉ có quyền đọc Lưu ý rằng các dấu gạch ngang [-] biểu thị quyền bị loại bỏ. Ngược lại, các dấu cộng [+] là tương đương với cấp việc cấp quyền. Ví dụ:

chmod u + r, g + x

Ví dụ trên được giải thích như sau:

u is for user r is for read g is for group x is for execute

Nói cách khác, user đã được cấp quyền cho phép đọc và nhóm đã được cấp quyền cho phép thực thi các tập tin. Lưu ý, khi lập nhiều quyền cho một thiết lập, một dấu phẩy là cần thiết giữa các thiếp lập.

Định dạng chmod theo bát phân Để sử dụng các định dạng bát phân, bạn phải tính toán các quyền cho mỗi phần của tập tin hoặc thư mục. Mười kí tự đầu tiên được đề cập ở trên sẽ tương ứng với một số bốn chữ số trong bát phân. Việc cho phép thực thi tương đương với số một [1], cho phép ghi tương đương với số hai [2], và cho phép đọc tương đương với số bốn [4].

Vì vậy, khi bạn sử dụng các định dạng bát phân, bạn sẽ cần phải tính toán một số trong đoạn 0 và 7. Một bảng đã được cung cấp dưới đây để làm rõ.

Mặc dù định dạng bát phân có vẻ khó hiểu, nhưng nó rất dễ dàng để sử dụng nếu bạn hiểu về nó. Tuy nhiên, thiết lập quyền với r, w, x và có thể được dễ dàng hơn. Dưới đây là những ví dụ về cách sử dụng cả chữ và định dạng bát phân để thiết lập quyền truy cập vào một tập tin hoặc thư mục. Cú pháp đơn giản: chmod Định dạng chữ: chmod go-rwx Work Kết quả đầu ra của ls -al sau lệnh chmod ở trên sẽ trông như sau:

dr---- 2 user user 4096 Dec 17 14:38 Work

Định dạng bát phân: chmod 444 Work Kết quả đầu ra của ls -al sau lệnh chmod ở trên sẽ giống như sau:

root@localhost:~# adduser cjones Adding user cjones' ... Adding new group `cjones' [1001] ... Adding new user `cjones' [1001] with group `cjones' ... Creating home directory /home/cjones' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for cjones Enter the new value, or press ENTER for the default

  Full Name []: Chuck Jones
  Room Number []: 213
  Work Phone []: 856-555-1212
  Home Phone []:
  Other []:
Is the information correct? [Y/n] Y

0

Một bảng bát phân hiển thị tương đương với số cho phép được cung cấp dưới đây.

Cho phép bổ sung quyền Ngoài các quyền phổ biến nhất đọc/ghi/thực thi tập tin, có một số chế độ bổ sung mà bạn có thể tìm thấy hữu ích, đặc biệt là chế độ +t[sticky bit] và chế độ +s [setuid bit]. Các chức năng này mô tả hành vi của các tập tin và thực thi trong các tình huống đa người dùng.

Khi thiết lập vào một tập tin hoặc thư mục chế độ sticky bit hoặc chế độ +t, có nghĩa là chỉ có chủ sở hữu [hoặc root] có thể xóa các tập tin, bất kể là user có quyền ghi vào tập tin/thư mục này Để thiết lập chế độ sticky bit vào một tập tin có tên /root/sticky.txt, thực hiện lệnh sau:

root@localhost:~# adduser cjones Adding user cjones' ... Adding new group `cjones' [1001] ... Adding new user `cjones' [1001] with group `cjones' ... Creating home directory /home/cjones' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for cjones Enter the new value, or press ENTER for the default

  Full Name []: Chuck Jones
  Room Number []: 213
  Work Phone []: 856-555-1212
  Home Phone []:
  Other []:
Is the information correct? [Y/n] Y

1

Để loại bỏ chế độ sticky bit từ một tập tin, sử dụng lệnh chmod -t. Lưu ý, để thay đổi chế độ +t, bạn cần phải là user root hoặc chủ [user] sở hữu tập tin. User root sẽ có thể xóa các tập tin không phụ thuộc vào trạng thái của chế độ +t.

Setuid bit, hoặc +s, khi thiết lập trên các tập tin cho phép bất cứ user nào có quyền thực thi scripts file này đều có khả năng chạy script ấy với tư cách của chủ sở hữu tập tin đó

Ví dụ, nếu tập tin work được sở hữu bởi user root và nhóm marketing, các thành viên của nhóm marketing có thể chạy các tập tin work như thể họ là user root. Điều này có thể gây ra rủi ro an ninh trong một số trường hợp và cần được xem xét kĩ lưỡng trước khi ta sử dụng chế độ +s .

Ví dụ để thiết lập chế độ +s trên một tập tin có tên / usr/bin/work, thực hiện lệnh sau:

Trái ngược với chế độ +s đối với quyền sở hữu của một tập tin, ảnh hưởng của các chế độ s trên một thư mục có phần khác nhau. Những tập tin được tạo trong thư mục đã sử dụng chế độ +s sẽ nhận quyền sở hữu của user và nhóm của thư mục đó, chứ không phải là quyền sở hữu của user đã tạo ra các tập tin và nhóm mặc định. Để thiết lập setguid [group id] vào một thư mục, sử dụng lệnh sau đây:

root@localhost:~# adduser cjones Adding user cjones' ... Adding new group `cjones' [1001] ... Adding new user `cjones' [1001] with group `cjones' ... Creating home directory /home/cjones' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for cjones Enter the new value, or press ENTER for the default

  Full Name []: Chuck Jones
  Room Number []: 213
  Work Phone []: 856-555-1212
  Home Phone []:
  Other []:
Is the information correct? [Y/n] Y

2

Để thiết lập setuid [user id] vào một thư mục, sử dụng lệnh sau đây:

root@localhost:~# adduser cjones Adding user cjones' ... Adding new group `cjones' [1001] ... Adding new user `cjones' [1001] with group `cjones' ... Creating home directory /home/cjones' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for cjones Enter the new value, or press ENTER for the default

  Full Name []: Chuck Jones
  Room Number []: 213
  Work Phone []: 856-555-1212
  Home Phone []:
  Other []:
Is the information correct? [Y/n] Y

3

Thay đổi user sở hữu tập tin Theo mặc định, tất cả các tập tin được sở hữu bởi user đã tạo ra chúng và theo nhóm mặc định của user đó. Để thay đổi user sở hữu của một tập tin, sử dụng lệnh chown theo định dạng:

root@localhost:~# adduser cjones Adding user cjones' ... Adding new group `cjones' [1001] ... Adding new user `cjones' [1001] with group `cjones' ... Creating home directory /home/cjones' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for cjones Enter the new value, or press ENTER for the default

  Full Name []: Chuck Jones
  Room Number []: 213
  Work Phone []: 856-555-1212
  Home Phone []:
  Other []:
Is the information correct? [Y/n] Y

4

Trong ví dụ sau đây, user sở hữu của tập tin "list.html" sẽ được thay đổi cho người dùng "cjones" trong nhóm "marketing":

root@localhost:~# adduser cjones Adding user cjones' ... Adding new group `cjones' [1001] ... Adding new user `cjones' [1001] with group `cjones' ... Creating home directory /home/cjones' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for cjones Enter the new value, or press ENTER for the default

  Full Name []: Chuck Jones
  Room Number []: 213
  Work Phone []: 856-555-1212
  Home Phone []:
  Other []:
Is the information correct? [Y/n] Y

5

Để thay đổi user sở hữu của một thư mục và tất cả các tập tin chứa bên trong, sử dụng tùy chọn -R. Trong ví dụ sau, thay đổi user sở hữu /srv/smb/leadership/ sang user "cjones" trong nhóm "marketing":

root@localhost:~# adduser cjones Adding user cjones' ... Adding new group `cjones' [1001] ... Adding new user `cjones' [1001] with group `cjones' ... Creating home directory /home/cjones' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for cjones Enter the new value, or press ENTER for the default

  Full Name []: Chuck Jones
  Room Number []: 213
  Work Phone []: 856-555-1212
  Home Phone []:
  Other []:
Is the information correct? [Y/n] Y

6

Sử dụng User and Group Trong nhiều trường hợp, quyền user được sử dụng để cung cấp cho hệ thống của bạn sự bảo mật cao mà không cần bất kỳ sự tương tác trực tiếp.

Cách tốt nhất là cung cấp cho mỗi khách hàng một tài khoản user để truy cập tới hệ thống của bạn. Điều này bảo vệ các tập tin của user này từ tất cả các user khác. Hơn nữa, sử dụng các tài khoản cụ thể cho các user sẽ giúp việc đăng nhập được chính xác hơn, đặc biệt là khi kết hợp với các công cụ như sudo. Chúng tôi khuyên bạn nên tránh tình huống mà nhiều hơn một cá nhân biết mật khẩu của tài khoản để đảm bảo vấn đề an toàn bảo mật.

Ngược lại, nhóm rất hữu ích trong viêc cho phép nhiều tài khoản user độc lập kết hợp với nhau và chia sẻ tập tin. Nếu bạn tạo các nhóm cho công việc chung với từng nhiệm vụ cụ thể [ví dụ như biên tập web, cộng tác viên, nộp nội dung, hỗ trợ] và thêm user có liên quan đến các nhóm liên quan, các user đều có thể chỉnh sửa và chạy các tập tin với nhau mà không chia sẻ các tập tin với bên ngoài. Sử dụng các lệnh chown với quyền truy cập file 770 và 740 sẽ giúp hoàn thành mục tiêu này.

Chủ Đề