Android

Lệnh Chmod trong linux (quyền truy cập tệp)

Bài 7 : Phân quyền CHMOD trong Linux

Bài 7 : Phân quyền CHMOD trong Linux

Mục lục:

Anonim

Trong Linux, quyền truy cập vào các tệp được quản lý thông qua các quyền, thuộc tính và quyền sở hữu tệp. Điều này đảm bảo rằng chỉ những người dùng và quy trình được ủy quyền mới có thể truy cập các tệp và thư mục.

Hướng dẫn này bao gồm cách sử dụng chmod để thay đổi quyền truy cập của các tệp và thư mục.

Quyền truy cập tệp Linux

Trước khi đi xa hơn, hãy giải thích mô hình cấp phép Linux cơ bản.

Trong Linux, mỗi tệp được liên kết với một chủ sở hữu và một nhóm và được gán quyền truy cập quyền cho ba lớp người dùng khác nhau:

  • Chủ sở hữu tập tin. Thành viên nhóm. Những người khác (mọi người khác).

Quyền sở hữu tập tin có thể được thay đổi bằng cách sử dụng các lệnh chown chgrp .

Có ba loại quyền truy cập tệp áp dụng cho mỗi lớp:

  • Sự cho phép đọc. Quyền viết. Sự cho phép thực thi.

Khái niệm này cho phép bạn chỉ định người dùng nào được phép đọc tệp, ghi vào tệp hoặc thực thi tệp.

Quyền truy cập tệp có thể được xem bằng ls :

ls -l filename.txt

-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt |- | | | | | | | | | | | | | +-----------> 7. Group | | | | | +-------------------> 6. Owner | | | | +--------------------------> 5. Alternate Access Method | | | +----------------------------> 4. Others Permissions | | +-------------------------------> 3. Group Permissions | +----------------------------------> 2. Owner Permissions +------------------------------------> 1. File Type

Ký tự đầu tiên hiển thị loại tệp. Nó có thể là một tệp thông thường ( - ), thư mục ( d ), liên kết tượng trưng ( l ) hoặc bất kỳ loại tệp đặc biệt nào khác.

Chín ký tự tiếp theo đại diện cho các quyền của tệp, ba bộ ba mỗi ký tự. Bộ ba đầu tiên hiển thị các quyền của chủ sở hữu, các quyền của nhóm thứ hai và bộ ba cuối cùng hiển thị các quyền khác. Các quyền có thể có một ý nghĩa khác nhau tùy thuộc vào loại tệp.

Trong ví dụ trên ( rw-r--r-- ) có nghĩa là chủ sở hữu tệp có quyền đọc và ghi ( rw- ), nhóm và những người khác chỉ có quyền đọc ( r-- ).

Mỗi trong ba bộ ba quyền có thể được xây dựng theo các ký tự sau và có các hiệu ứng khác nhau, tùy thuộc vào việc chúng được đặt thành một tệp hoặc vào một thư mục:

Hiệu lực của Quyền đối với Tệp

Giấy phép Tính cách Ý nghĩa trên tập tin
Đọc - Các tập tin không thể đọc được. Bạn không thể xem nội dung tập tin.
r Các tập tin có thể đọc được.
Viết - Các tập tin không thể được thay đổi hoặc sửa đổi.
w Các tập tin có thể được thay đổi hoặc sửa đổi.
Hành hình - Các tập tin không thể được thực thi.
x Các tập tin có thể được thực hiện.
s Nếu được tìm thấy trong bộ ba user nó sẽ thiết lập bit setuid . Nếu được tìm thấy trong bộ ba group , nó sẽ thiết lập bit setgid . Nó cũng có nghĩa là cờ x được đặt.

Khi các cờ setuid hoặc setgid được đặt trên một tệp thực thi, tệp sẽ được thực thi với các đặc quyền của chủ sở hữu và / hoặc nhóm của tệp.

S Tương tự s nhưng cờ x không được đặt. Cờ này hiếm khi được sử dụng trên các tập tin.
t Nếu tìm thấy trong bộ ba others nó đặt bit sticky .

Nó cũng có nghĩa là cờ x được đặt. Cờ này là vô dụng trên các tập tin.

T Tương tự như t nhưng cờ x không được đặt. Cờ này là vô dụng trên các tập tin.

Hiệu lực của Quyền đối với Thư mục (Thư mục)

Trong Linux, Thư mục là các loại tệp đặc biệt chứa các tệp và thư mục khác.

Giấy phép Tính cách Ý nghĩa trên thư mục
Đọc - Nội dung của thư mục không thể được hiển thị.
r Nội dung của thư mục có thể được hiển thị.

(ví dụ: Bạn có thể liệt kê các tệp trong thư mục bằng ls .)

Viết - Nội dung của thư mục không thể thay đổi.
w Nội dung của thư mục có thể được thay đổi.

(ví dụ: Bạn không thể tạo tệp mới, xóa tệp..v.v.)

Hành hình - Thư mục không thể thay đổi thành.
x Thư mục có thể được điều hướng bằng cách sử dụng cd .
s Nếu được tìm thấy trong bộ ba user , nó sẽ thiết lập bit setuid . Nếu được tìm thấy trong bộ ba group nó sẽ thiết lập bit setgid . Nó cũng có nghĩa là cờ x được đặt. Khi cờ setgid được đặt trên một thư mục, các tệp mới được tạo trong nó sẽ kế thừa ID nhóm thư mục (GID), thay vì ID nhóm chính của người dùng đã tạo tệp.

setuid không có hiệu lực trên các thư mục.

S Tương tự s nhưng cờ x không được đặt. Cờ này là vô dụng trên các thư mục.
t Nếu tìm thấy trong bộ ba others nó đặt bit sticky .

Nó cũng có nghĩa là cờ x được đặt. Khi bit dính được đặt trên một thư mục, chỉ chủ sở hữu tệp, chủ sở hữu của thư mục hoặc người dùng quản trị mới có thể xóa hoặc đổi tên các tệp trong thư mục.

T Tương tự như t nhưng cờ x không được đặt. Cờ này là vô dụng trên các thư mục.

Sử dụng chmod

Lệnh chmod có dạng chung sau:

chmod MODE FILE…

Lệnh chmod cho phép bạn thay đổi quyền trên một tệp bằng chế độ số hoặc ký hiệu hoặc tệp tham chiếu. Chúng tôi sẽ giải thích các chế độ chi tiết hơn sau. Lệnh có thể chấp nhận một hoặc nhiều tệp và / hoặc thư mục được phân tách bằng dấu cách làm đối số.

Chỉ root, chủ sở hữu tệp hoặc người dùng có quyền sudo mới có thể thay đổi quyền của tệp. Cẩn thận hơn khi sử dụng chmod , đặc biệt là khi thay đổi đệ quy các quyền.

Phương pháp tượng trưng (văn bản)

Cú pháp của chmod khi sử dụng chế độ ký hiệu có định dạng sau:

chmod perms… FILE…

Bộ cờ đầu tiên ( ), cờ người dùng, xác định lớp người dùng nào cấp quyền cho tệp được thay đổi.

  • u - Chủ sở hữu tập tin. g - Người dùng là thành viên của nhóm. o - Tất cả người dùng khác. a - Tất cả người dùng, giống hệt với ugo .

Nếu cờ người dùng bị bỏ qua, thì mặc định là a và các quyền được đặt bằng ô sẽ không bị ảnh hưởng.

Bộ cờ thứ hai ( ), các cờ hoạt động, xác định xem các quyền sẽ được xóa, thêm hoặc đặt:

  • - Loại bỏ các quyền được chỉ định. + Thêm quyền được chỉ định. = Thay đổi các quyền hiện tại thành các quyền được chỉ định. Nếu không có quyền nào được chỉ định sau ký hiệu = , tất cả các quyền từ lớp người dùng đã chỉ định sẽ bị xóa.

Các quyền ( perms… ) có thể được đặt rõ ràng bằng cách sử dụng 0 hoặc một hoặc nhiều chữ cái sau: r , w , x , X , s t . Sử dụng một chữ cái từ tập hợp u , g o khi sao chép quyền từ lớp này sang lớp người dùng khác.

Khi đặt quyền cho nhiều hơn một lớp người dùng ( ), sử dụng dấu phẩy (không có dấu cách) để phân tách các chế độ biểu tượng.

Dưới đây là một số ví dụ về cách sử dụng chmod trong chế độ tượng trưng:

  • Cho phép các thành viên của nhóm đọc tệp, nhưng không được viết và thực thi nó:

    chmod g=r filename

    Xóa quyền thực thi cho tất cả người dùng:

    chmod ax filename

    Tuyệt đối xóa quyền ghi cho người dùng khác:

    chmod -R ow dirname

    Xóa quyền đọc, ghi và thực thi quyền đối với tất cả người dùng ngoại trừ chủ sở hữu tệp:

    chmod og-rwx filename

    Điều tương tự cũng có thể được thực hiện bằng cách sử dụng mẫu sau:

    chmod og= filename

    Cấp quyền đọc, viết và thực thi cho chủ sở hữu tệp, đọc quyền đối với nhóm của tệp và không có quyền đối với tất cả người dùng khác:

    chmod u=rwx, g=r, o= filename

    Thêm quyền của chủ sở hữu tệp vào các quyền mà các thành viên trong nhóm của tệp có:

    chmod g+u filename

    Thêm một bit dính vào một thư mục nhất định:

    chmod o+t dirname

Phương pháp số

Cú pháp của chmod khi sử dụng phương thức số có định dạng sau:

chmod NUMBER FILE…

Khi sử dụng chế độ số, bạn có thể đặt quyền cho cả ba lớp người dùng (chủ sở hữu, nhóm và tất cả những người khác) cùng một lúc.

NUMBER có thể là số có 3 hoặc 4 chữ số.

Khi số 3 chữ số được sử dụng, chữ số đầu tiên thể hiện quyền của chủ sở hữu tệp, số thứ hai trong nhóm của tệp và số cuối cùng cho tất cả người dùng khác.

Mỗi quyền ghi, đọc và thực thi có giá trị số sau:

  • r (đọc) = 4 w (ghi) = 2 x (thực thi) = 1no quyền = 0

Số quyền của một lớp người dùng cụ thể được biểu thị bằng tổng giá trị của các quyền cho nhóm đó.

Để tìm ra các quyền của tệp trong chế độ số, chỉ cần tính tổng cho tất cả các lớp người dùng. Ví dụ: để cấp quyền đọc, viết và thực thi cho chủ sở hữu tệp, đọc và thực thi quyền đối với nhóm của tệp và chỉ đọc quyền cho tất cả người dùng khác mà bạn sẽ làm như sau:

  • Chủ sở hữu: rwx = 4 + 2 + 1 = 7group: rx = 4 + 0 + 1 = 5 Người khác: rx = 4 + 0 + 0 = 4

Sử dụng phương pháp trên, chúng tôi đưa ra số 754 , đại diện cho các quyền mong muốn.

Để thiết lập các cờ setuid , setgid sticky bit sử dụng số có bốn chữ số.

Khi số 4 chữ số được sử dụng, chữ số đầu tiên có nghĩa như sau:

  • setuid = 4setgid = 2sticky = 1no thay đổi = 0

Ba chữ số tiếp theo có cùng ý nghĩa như khi sử dụng số có 3 chữ số.

Nếu chữ số đầu tiên là 0 thì có thể bỏ qua và chế độ có thể được biểu thị bằng 3 chữ số. Chế độ số 0755 giống như 755 .

Để tính toán chế độ số, bạn cũng có thể sử dụng một phương thức khác (phương thức nhị phân), nhưng nó phức tạp hơn một chút. Biết cách tính toán chế độ số bằng 4, 2 và 1 là đủ cho hầu hết người dùng.

Bạn có thể kiểm tra quyền của tệp trong ký hiệu số bằng lệnh stat :

stat -c "%a" filename

644

Dưới đây là một số ví dụ về cách sử dụng chmod trong chế độ số:

  • Cung cấp cho chủ sở hữu tệp quyền đọc và ghi và chỉ đọc quyền cho các thành viên nhóm và tất cả người dùng khác:

    chmod 644 dirname

    Cung cấp cho chủ sở hữu tệp đọc, viết và thực thi quyền, đọc và thực thi quyền cho các thành viên nhóm và không có quyền cho tất cả người dùng khác:

    chmod 750 dirname

    Cung cấp cho đọc, viết và thực thi quyền, và một bit dính vào một thư mục nhất định:

    chmod 1777 dirname

    Đặt đệ quy các quyền đọc, ghi và thực thi quyền cho chủ sở hữu tệp và không có quyền cho tất cả người dùng khác trên một thư mục nhất định:

    chmod -R 700 dirname

Sử dụng tệp tham chiếu

Tùy chọn --reference=ref_file cho phép bạn đặt các quyền của tệp giống như các quyền của tệp tham chiếu đã chỉ định ( ref_file ).

chmod --reference=REF_FILE FILE

Ví dụ: lệnh sau sẽ gán các quyền của file1 cho file2

chmod --reference=file1 file2

Thay đổi đệ quy Quyền của tệp

Để hoạt động đệ quy trên tất cả các tệp và thư mục trong thư mục đã cho, hãy sử dụng tùy chọn -R ( --recursive ):

chmod -R MODE DIRECTORY

Ví dụ: để thay đổi quyền của tất cả các tệp và thư mục con trong thư mục /var/www thành 755 bạn sẽ sử dụng:

chmod -R 755 /var/www

Hoạt động trên các liên kết tượng trưng

Liên kết tượng trưng luôn có 777 quyền.

Theo mặc định, khi thay đổi quyền của symlink, chmod sẽ thay đổi quyền trên tệp mà liên kết đang trỏ tới.

chmod 755 symlink

Rất có thể là thay vì thay đổi quyền sở hữu mục tiêu, bạn sẽ nhận được một lượt truy cập không thể truy cập 'symlink': Quyền bị từ chối lỗi.

Lỗi xảy ra do theo mặc định trên hầu hết các liên kết phân phối Linux được bảo vệ và bạn không thể hoạt động trên các tệp đích. Tùy chọn này được chỉ định trong /proc/sys/fs/protected_symlinks . 1 có nghĩa là kích hoạt và 0 bị vô hiệu hóa. Không nên vô hiệu hóa bảo vệ symlink.

Thay đổi hàng loạt quyền

Đôi khi có những tình huống mà bạn sẽ cần phải thay đổi hàng loạt quyền và thư mục quyền.

Kịch bản phổ biến nhất là thay đổi đệ quy các quyền của tệp trang web thành 644 và quyền của thư mục thành 755 .

Sử dụng phương thức số:

find /var/www/my_website -type d -exec chmod 755 {} ; find /var/www/my_website -type f -exec chmod 644 {} ;

Sử dụng phương pháp tượng trưng:

find /var/www/my_website -type d -exec chmod u=rwx, go=rx {} ; find /var/www/my_website -type f -exec chmod u=rw, go=r {} ;

Lệnh find sẽ tìm kiếm các tệp và thư mục trong /var/www/my_website và chuyển từng tệp và thư mục tìm thấy vào chmod để đặt quyền.

Phần kết luận

Lệnh chmod thay đổi quyền của tập tin. Các quyền có thể được đặt bằng chế độ tượng trưng hoặc số.

Để tìm hiểu thêm về chmod hãy truy cập trang người đàn ông chmod.

thiết bị đầu cuối chmod