Bạn có thể giải thích ngắn gọn các khái niệm chính và các công cụ dòng lệnh được sử dụng để quản lý quyền truy cập tệp không?
Bạn có thể giải thích ngắn gọn các khái niệm chính và các công cụ dòng lệnh được sử dụng để quản lý quyền truy cập tệp không?
Câu trả lời:
Mỗi tệp có quyền cho ba loại khác nhau:
Quyền có nghĩa là quyền đọc tệp, quyền ghi vào tệp hoặc quyền thực thi tệp trong trường hợp tập lệnh hoặc chương trình.
Trên CLI, bạn có thể
chown
, ví dụchown guillermooo
chgrp
, vdchgrp root
chmod
, vd chmod u+w filename.ext
(Thêm quyền viết cho chủ sở hữu tệp filename.ext
)Nếu bạn muốn biết thêm về từng công cụ này, hãy mở một thiết bị đầu cuối và gõ man [tool]
, vd man chmod
.
chown guillermooo
cái này không nên chown guillermooo filename
sao?
Cảnh báo: Thay đổi quyền của tệp và thư mục có khả năng gây hại và có thể khiến hệ thống của bạn không thể sử dụng được. Khi chạy đệ quy với quyền root trên đường dẫn sai, chúng ta có thể đi đến điểm mà chúng ta sẽ phải cài đặt lại Ubuntu. Do đó, một ý tưởng tốt là không thay đổi các quyền bên ngoài các thư mục HOME và chạy các lệnh đệ quy như root nên tránh bất cứ khi nào có thể.
Ubuntu đã kế thừa khái niệm quyền từ Unix khi đối với các tệp hoặc thư mục có ba tác vụ chúng ta có thể cho phép hoặc từ chối:
( Vượt qua một thư mục cơ bản có nghĩa sử dụng nó như là một phần của một tên đường dẫn. Xem https://unix.stackexchange.com/a/13891 hoặc https://unix.stackexchange.com/questions/21251 cho giải thích thêm.)
Ngoài ra, chúng tôi có ba trường hợp mà chúng tôi cấp phép:
Bây giờ để có được sự kết hợp của các sắp xếp này, chúng tôi sử dụng một hệ thống nhị phân trong đó mỗi bit xác định một quyền. Điều này có thể được hiển thị tốt nhất trong Bảng sau
Permission | Binary | Octal | User | Group | Other |
======================================================
r | 100 | 4 | | | |
w | 010 | 2 | | | |
x | 001 | 1 | | | |
=======================================================
Number
Bây giờ nếu chúng ta muốn ví dụ
a) chủ sở hữu của một tập tin (= user) có r ead, w nghi thức, và e x ecute phép,
b) của tập tin nhóm cấp r ead và e x ecute quyền, và
c) tất cả những người khác chỉ nên có r truy cập ead.
Sau đó, quyền cho phép tệp sẽ là:
u g o
rwx r-x r--
Để có được điều này trong các số bát phân, ví dụ. đối với chmod
lệnh hoặc khi chúng ta phải hiểu một thông báo lỗi, chúng ta cần điền vào bảng trên như dưới đây:
Permission | Binary | Octal | User | Group | Other |
======================================================
r | 100 | 4 | 4 | 4 | 4 |
w | 010 | 2 | 2 | 0 | 0 |
x | 001 | 1 | 1 | 1 | 0 |
======================================================
Numbers add to 7 5 4
Mỗi số cho phép cần được thêm vào để tổng hợp cho người dùng (4 + 2 + 1 = 7), nhóm (4 + 0 + 1 = 5) và khác (4 + 0 + 0 = 4). Số kết quả sau đó là:
u g o
7 5 4
Bây giờ chúng ta có hai tùy chọn để thay đổi các bit cho phép với chmod
:
chmod u+rwx g+rx o+r filename
hoặc đơn giản hơn nhiều với
chmod 751 filename
Cả hai lệnh sẽ làm như vậy.
Quyền mặc định của một tệp mới được tạo trong nhà của chúng tôi sẽ là 664 (-rw-rw-r--).
Nếu chúng tôi muốn các tệp có thể được thực thi như các chương trình, chúng tôi sẽ phải thay đổi quyền này.
Lưu ý rằng chúng tôi cũng sẽ phải thay đổi quyền của thư mục mà tệp thực thi này có thể có. Chỉ khi cả hai, bit thực thi của tệp và thư mục được đặt, chúng tôi sẽ được phép chạy tệp này dưới dạng chương trình.
Khi sao chép một tập tin vào nhà của chúng tôi, nó sẽ mất các quyền đó sẽ được thay thế bằng các quyền mặc định của chúng tôi (trừ khi chúng tôi sao chép bằng các tùy chọn nâng cao, ví dụ như tùy chọn lưu trữ).
Cũng lưu ý rằng tập tin có thể kế thừa sự cho phép của họ từ điểm gắn kết của họ, resp. tùy chọn gắn kết. Điều này rất quan trọng khi gắn các ổ đĩa định dạng Windows không hỗ trợ quyền Unix.
Chúng tôi sớm nhận ra rằng đây chỉ là một nửa của câu chuyện. Chúng ta cũng cần sắp xếp đồ đạc. Để làm điều này, mỗi tệp hoặc thư mục có chủ sở hữu được xác định và thành viên nhóm được xác định.
Mỗi lần chúng tôi tạo một tệp, chúng tôi sẽ là chủ sở hữu của một tệp và nhóm của tệp cũng sẽ là chúng tôi. Với ls -l
chúng ta có thể thấy các quyền, quyền sở hữu và nhóm được nhìn thấy từ đầu ra ví dụ sau:
-rw-rw-r-- 1 takkat takkat 4096 Sep 12 20:25 test
- Chúng tôi chỉ được phép thay đổi quyền, nhóm hoặc quyền sở hữu tệp là của chúng tôi.
Nếu chúng tôi không phải là chủ sở hữu tập tin, chúng tôi sẽ gặp Permission denied
lỗi. Chỉ root mới có thể thay đổi điều này cho tất cả các tập tin. Đây là lý do tại sao chúng tôi phải sử dụng sudo
khi chỉnh sửa quyền của các tệp không phải của chúng tôi. Có hai lệnh tích hợp để làm như vậy chown
cho người dùng và chgrp
cho các nhóm.
Để thay đổi quyền sở hữu tệp từ bất kỳ ai, takkat
chúng tôi có thể ban hành lệnh này:
sudo chown takkat testfile
Để thay đổi nhóm của tệp takkat
chúng tôi phát hành
sudo chgrp takkat testfile
Đọc các trang của các lệnh để biết thêm chi tiết và các tùy chọn. Ngoài ra còn có hướng dẫn chi tiết hơn này được đề nghị để đọc thêm:
Cũng tìm thấy một số câu hỏi liên quan ở đây: