Quản lý quyền sở hữu và quyền truy cập tệp có lẽ là nhiệm vụ quan trọng nhất của quản trị viên hệ thống. Trong bất kỳ hệ điều hành nhiều người dùng nào như Linux, việc chỉ định quyền sở hữu các tệp và thư mục một cách hợp lý là rất quan trọng.
Lệnh chown là công cụ hữu ích nhất cho việc này. Đừng nhầm lẫn với chmod, chown có thể sửa đổi quyền sở hữu tệp của người dùng và gán chúng cho các nhóm khác nhau. Đây là một lệnh cần thiết mà bất kỳ người dùng Linux nghiêm túc nào cũng phải thành thạo.
Đây là hướng dẫn giúp bạn bắt đầu.
Làm cách nào để kiểm tra quyền sở hữu tệp?
Trước khi bắt đầu chuyển tệp sang các chủ sở hữu và nhóm khác nhau, trước tiên bạn nên tìm hiểu cách kiểm tra chủ sở hữu hiện tại của tệp. Quá trình này rất đơn giản: thêm cờ -l vào lệnh ls thông thường bao gồm thông tin quyền sở hữu của tệp hoặc thư mục được truy vấn.
Giả sử bạn có một tệp có tên example.txt. Lệnh xem thông tin quyền sở hữu của nó sẽ như thế này:
ls -l example.txt
Sử dụng chown trên một tệp duy nhất
Cách đơn giản nhất để sử dụng chown là thay đổi người dùng sở hữu một tệp cụ thể. Cú pháp là sudo chown username filename, trong đó tên người dùng là tên của người dùng mà bạn muốn cung cấp tệp và filename là tên của tệp được đề cập. Thực tế nó trông như thế này:
sudo chown someone_else example.txt
Lưu ý rằng điều này không thay đổi quyền sở hữu nhóm đối với các tệp mà chỉ thay đổi người dùng. Để thay đổi chủ sở hữu nhóm, bạn phải sử dụng cú pháp khác – sudo chown :groupname filename
Trong trường hợp cụ thể này, điều này trở thành:
sudo chown :group2 example.txt
Bạn cũng có thể kết hợp cả hai lệnh thành một dòng để thay đổi quyền sở hữu của người dùng cũng như nhóm đối với tệp:
sudo chown me:group1 example.txt
Thay đổi quyền sở hữu nhiều tệp bằng Chown
Việc thay đổi quyền sở hữu của từng tệp riêng lẻ khá tẻ nhạt khi xử lý số lượng tệp lớn hơn. Rất may, hầu hết các lệnh Linux cho phép bạn xâu chuỗi nhiều tên tệp được phân tách bằng dấu cách lại với nhau trong một lệnh duy nhất. Như thế này:
sudo chown someone_else:group2 example1.txt example2.txt.
Sử dụng thủ thuật tương tự để kiểm tra quyền sở hữu của nhiều tệp:
ls -l example1.txt example2.txt
Ngay cả khi kết hợp nhiều tên tệp thành một lệnh duy nhất, quy trình này vẫn quá bất tiện đối với nhiều tệp. Cách tiếp cận tốt hơn là thay đổi quyền sở hữu toàn bộ nội dung của một thư mục cùng một lúc.
Điều này đạt được bằng cách thêm cờ -R vào lệnh chown. Điều này làm cho chown xem qua nội dung của thư mục và thay đổi đệ quy quyền sở hữu của mọi tệp bên trong. Đây là một minh chứng:
sudo chown -R someone_else:group2 ví dụ
Chúng ta có thể sử dụng lại cờ đệ quy để kiểm tra quyền sở hữu các tệp trong thư mục ví dụ.
ls -l -R ví dụ
Sửa đổi quyền sở hữu tệp bằng UID
Quản trị viên hệ thống quản lý nhiều người dùng sẽ nhanh chóng cảm thấy mệt mỏi khi phải nhập tên người dùng nhiều lần. Một lỗi đánh máy ở bất kỳ tên nào cũng gây ra lỗi khi sử dụng chown, làm mọi thứ chậm đi đáng kể.
Một giải pháp thay thế tốt hơn là sử dụng ID người dùng để thay thế. UID là một số có bốn chữ số được gán cho mỗi người dùng được tạo, bắt đầu từ 1000 trở lên. Việc nhập này dễ dàng hơn nhiều so với nhập chuỗi và ít xảy ra lỗi hơn.
Để sử dụng phương pháp này, chỉ cần thay thế tên người dùng bằng UID:
sudo chown 1001 example.txt
Nếu bạn không biết UID của người dùng, bạn có thể nhanh chóng kiểm tra nó bằng lệnh id. Chỉ cần nhậpid -u tên người dùngđể xem ID duy nhất của người dùng đó.
Phương pháp này cũng có thể được mở rộng cho tên nhóm. Để lấy UID của nhóm đăng nhập của người dùng và các nhóm khác mà họ thuộc về, hãy sử dụng lệnh id không có cờ -u.
id ai đó_else
Như bạn có thể thấy, chúng tôi có nhiều id nhóm khác nhau mà người dùng được chỉ định thuộc về. Kết hợp tất cả lại với nhau, chúng ta có thể sử dụng chown như thế này để chỉ định chủ sở hữu mới và thay đổi nhóm của tệp:
sudo chown 1001:1003 example.txt
Bạn có thể làm gì khác với lệnh chown?
Chúng ta đã chứng minh hầu hết cách sử dụng phổ biến của chown. Bây giờ bạn có thể thay đổi người dùng và nhóm sở hữu tệp thông qua nhiều phương pháp khác nhau. Nhưng đó không phải là giới hạn hoàn toàn về khả năng của lệnh..
Bạn có thể tham khảo các trang hướng dẫn chính thức để biết mô tả kỹ thuật và danh sách đầy đủ các đối số bạn có thể sử dụng với lệnh. Chỉ cần nhập man chown vào terminal để xem.
Chown có hữu ích không?
Nếu bạn là người dùng duy nhất trên máy tính của mình thì bạn sẽ không bao giờ cần sử dụng chown. Nhưng nếu bạn sử dụng hệ thống Linux trong môi trường chuyên nghiệp, có thể là máy chủ thương mại hoặc máy tính của trường đại học, thì việc nắm vững lệnh chown (ngoài chmod ) là điều vô cùng quan trọng.
Khả năng gán và xóa tệp cho người dùng và nhóm là điều cần thiết trong việc duy trì các ranh giới nghiêm ngặt trong hệ thống nhiều người dùng. Điểm hay nhất của chown là tính linh hoạt của nó – bạn có thể làm việc với từng tệp riêng lẻ hoặc toàn bộ thư mục bằng cùng một lệnh.
Bạn cũng có thể chỉ định quyền sở hữu cho người dùng và nhóm một cách riêng biệt và trong một câu lệnh kết hợp. Được sử dụng với các UID tiện lợi hơn, nó giúp việc xử lý ngay cả những hệ thống phân cấp người dùng phức tạp nhất trở nên dễ dàng.
.