Cách dùng lệnh Chown trong Linux (quyền sở hữu file)
Trong bài này chúng ta sẽ tìm hiểu cách dùng lệnh chown trong Linux, đây là lệnh dùng để thay đổi quyền sở hữu của người dùng với các file.
Lệnh chown
cho phép bạn thay đổi quyền sở hữu của người dùng hoặc nhóm cho file, thư mục hoặc symbolic link.
Trong Linux, tất cả các file được liên kết với chủ sở hữu và một nhóm, và được chỉ định quyền truy cho chủ sở hữu file và các thành viên nhóm đó. Sau đây chúng ta cùng tìm hiểu nhé.
1. Cú pháp lệnh chown trong Linux
Trước khi đi vào cách sử dụng lệnh chown thì hãy xem cú pháp của nó trước đã nhé.
Bài viết này được đăng tại [free tuts .net]
Cú pháp lệnh chown có dạng sau:
chown [OPTIONS] USER[:GROUP] FILE(s)
USER là tên người dùng hoặc UID của chủ sở hữu mới. GROUP là tên nhóm hoặc GID nhóm mới. FILE là tên của một hoặc nhiều file, thư mục hoặc symbolic link, nó chính là file đích cần xử lý.
- Nếu chỉ một người dùng được chỉ định (USER) thì người dùng được chỉ định đó sẽ trở thành chủ sở hữu (ownership), nhóm sở hữu sẽ không có gì thay đổi.
- Nếu nhập nhiều người dùng vào mục USER và được ngăn cách bởi dấu hai chấm
:
, và GROUP không được nhập thì người dùng trở thành chủ sở hữu, còn group đó thành nhóm sở hữu của file. - Nếu cả USER và GROUP đều được chỉ định thì quyền sở hữu file sẽ thuộc về người dùng và nhóm sở hữu cũng chính là nhóm mà bạn đã chỉ định.
- Nếu bỏ qua USER và chỉ nhập GROUP thôi thì quyền sở hữu nhóm đổi thành group mà bạn chỉ định.
- Nếu chỉ có dấu hai chấm đưa ra, tức là không nhập USER và GROUP thì không có thay đổi nào được thực hiện.
Khi chạy lệnh này thành công thì lệnh chown không trả về bất kì gì cả và nó sẽ return vè 0.
2. Xem thông tin quyền của file
Để xem thông tin chi tiết về quyền của các file thì bạn sử dụng lệnh ls -l
. Ví dụ dưới đây mình muốn xem chủ sở hữu quyền của file filename.txt thì viết lệnh như sau:
ls -l filename.txt
Kết quả có dạng như sau:
-rw-r--r-- 12 freetuts users 12.0K Apr 8 20:51 filename.txt |[-][-][-]- [------] [---] | | | +-----------> Group +-------------------> Owner
Người dùng bình thường thì họ chỉ đổi chủ sở nhóm cho file thành những nhóm mà người dùng này đang thuộc về. Còn với tài khoản root hoặc người có đặc quyền sudo thì được phép đổi cho bất kì file nào.
3. Sử dụng chown đổi chủ sở hữu cho file
Trong Linux, để thay đổi chủ sở hữu của file thì hãy sử dụng lệnh chown, theo sau là tên người dùng của chủ sở hữu mới và file cần đổi:
chown USER FILE
Ví dụ dưới đây sẽ thay đổi quyền sở hữu cho file có tên file1 thành chủ sở hữu mới có tên freetuts.
chown freetuts file1
Để thay đổi quyền sở hữu nhiều file thì hãy chỉ định chúng dưới dạng danh sách được phân tách bằng dấu cách.
Lệnh bên dưới thay đổi quyền sở hữu file có tên file1 và thư mục dir1 thành chủ sở hữu mới có tên freetuts.
chown freetuts file1 dir1
Ngoài cách gán cho user name thì bạn cũng có thể gán cho UID.
chown 1000 file2
UID chính là mã số đặc biệt của user, mỗi user sẽ có một UID khác nhau.
4. Sử dụng chown đổi chủ sở hữu và nhóm sở hữu file
Trong Linux, để thay đổi cả chủ sở hữu và nhóm của file thì hãy sử dụng lệnh chown, theo sau là chủ sở hữu và nhóm mới được phân tách bằng dấu hai chấm (:) cần đổi.
Lưu ý là ngăn cách giữa User và Group không được có khoảng trắng nhé.
chown USER:GROUP FILE
Lệnh dưới đây sẽ đổi chủ sở hữu cho file file1 thành freetuts và nhóm sở hữu là freetutsteam.
chown freetuts:freetutsteam
Nếu bạn bỏ qua tên group thì group sở hữu chính là group của user được chỉ định.
chown freetuts: file1
5. Sử dụng chown đổi nhóm sở hữu của file
Trong Linux, để thay đổi nhóm sở hữu thì ta sẽ không nhập USER mà chỉ nhập GROUP thôi.
chown :GROUP FILE
Lệnh sau sẽ thay đổi nhóm sở hữu của file có tên file1 thành www-data.
chown :www-data file1
6. Thay đổi quyền sở hữu các file trong nhiều cập folder
Để duyệt qua tất cả các file nằm trong một thư mục có nhiều cấp thì ta phải sử dụng tùy chọn đệ quy -R (--recursive)
.
chown -R USER:GROUP DIRECTORY
Ví dụ sau sẽ thay đổi quyền sở hữu của tất cả các file và thư mục con trong thư mục /var/www
thành chủ sở hữu mới và nhóm có tên www-data
.
chown -R www-data: /var/www
Nếu thư mục có chứa symbolic links thì hãy sử dụng thêm tùy chọn -h.
chown -hR www-data: /var/www
7. Cách sử dụng tùy chọn --reference của lệnh chown
Tùy chọn --reference = ref_file
cho phép bạn thay đổi quyền sở hữu của người dùng và nhóm của các file giống với quyền sở hữu của file được chỉ định (ref_file).
Nếu file tham chiếu là một symbolic link thì chown sẽ sử dụng người dùng và nhóm của file đích.
chown --reference=REF_FILE FILE
Ví dụ: Lệnh sau sẽ chỉ định người dùng và quyền sở hữu nhóm của file cho file2.
chown --reference=file1 file2
Như vậy là chúng ta đã tìm hiểu xong cách sử dụng lệnh chown trong Linux. Đây là lệnh dùng trong việc quản lý phân quyền cho user khá phức tạp, vì vậy trong các ví dụ mình chỉ đưa ra những trường hợp đơn giản nhất để giúp bạn dễ hiểu hơn.